Skip to content

Commit

Permalink
* Added code comments
Browse files Browse the repository at this point in the history
* Added ability to export Ram Analyzer data
  • Loading branch information
CodeDead committed Feb 24, 2018
1 parent 02dca77 commit 63dd3d7
Show file tree
Hide file tree
Showing 6 changed files with 159 additions and 10 deletions.
3 changes: 3 additions & 0 deletions MemPlus/Classes/EXPORT/ExportTypes.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
namespace MemPlus.Classes.EXPORT
{
/// <summary>
/// Sealed class containing all different export types that MemPlus supports
/// </summary>
internal sealed class ExportTypes
{
/// <summary>
Expand Down
8 changes: 4 additions & 4 deletions MemPlus/Classes/LOG/LogExporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
namespace MemPlus.Classes.LOG
{
/// <summary>
/// Interaction logic for exporting logs
/// Static class containing the logic for exporting logs
/// </summary>
internal static class LogExporter
{
Expand All @@ -19,11 +19,11 @@ internal static void ExportHtml(string path, List<Log> logList)
string exportData = "<html>";

exportData += "<head>";
exportData += "<title>MemPlus - Export</title>";
exportData += "<title>MemPlus - Log Export</title>";
exportData += "</head>";

exportData += "<body>";
exportData += "<h1>MemPlus - Export (" + DateTime.Now + ")</h1>";
exportData += "<h1>MemPlus - Log Export (" + DateTime.Now + ")</h1>";
exportData += "<table border=\"1\">";
exportData += "<thead>";
exportData += "<tr><th>Time</th><th>Data</th></tr>";
Expand Down Expand Up @@ -54,7 +54,7 @@ internal static void ExportHtml(string path, List<Log> logList)
/// <param name="logList">The list of Log objects that should be exported</param>
internal static void ExportTxt(string path, List<Log> logList)
{
string exportData = "MemPlus - Export (" + DateTime.Now + ")";
string exportData = "MemPlus - Log Export (" + DateTime.Now + ")";
exportData += Environment.NewLine;

for (int i = 0; i < logList.Count; i++)
Expand Down
1 change: 0 additions & 1 deletion MemPlus/Classes/RAM/RamAnalyzer.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using System.Management;
using MemPlus.Classes.RAM.ViewModels;

namespace MemPlus.Classes.RAM
{
Expand Down
26 changes: 25 additions & 1 deletion MemPlus/Classes/RAM/RamStick.cs
Original file line number Diff line number Diff line change
@@ -1,26 +1,50 @@
using System.Collections.Generic;

namespace MemPlus.Classes.RAM.ViewModels
namespace MemPlus.Classes.RAM
{
/// <summary>
/// Internal sealed class containing logic behind a physical RAM stick
/// </summary>
internal sealed class RamStick
{
#region Variables
/// <summary>
/// List of data that is associated to the RAM stick
/// </summary>
private readonly List<RamData> _ramData;
#endregion

/// <summary>
/// Initialize a new RamStick object
/// </summary>
internal RamStick()
{
_ramData = new List<RamData>();
}

/// <summary>
/// Add a new RamData object to the list of RamData
/// </summary>
/// <param name="ramData">The RamData object that needs to be added to the list</param>
internal void AddRamData(RamData ramData)
{
_ramData.Add(ramData);
}

/// <summary>
/// Get the list of RamData objects that is associated with the RamStick object
/// </summary>
/// <returns>The list of RamData objects that is associated with the RamStick object</returns>
internal List<RamData> GetRamData()
{
return _ramData;
}

/// <summary>
/// Get the value for a RamData key
/// </summary>
/// <param name="key">The key that needs to be found</param>
/// <returns>The value for the RamData key</returns>
internal string GetValue(string key)
{
foreach(RamData r in _ramData)
Expand Down
130 changes: 127 additions & 3 deletions MemPlus/Classes/RAM/RamSticksExporter.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.IO;
using MemPlus.Classes.RAM.ViewModels;

namespace MemPlus.Classes.RAM
{
Expand All @@ -9,6 +9,11 @@ namespace MemPlus.Classes.RAM
/// </summary>
internal static class RamDataExporter
{
/// <summary>
/// Export data to a specific path
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="data">The data that should be exported</param>
private static void Export(string path, string data)
{
using (StreamWriter sw = new StreamWriter(path))
Expand All @@ -17,24 +22,143 @@ private static void Export(string path, string data)
}
}

/// <summary>
/// Export a list of RamStick objects to a specific path in text format
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="ramSticks">The list of RamStick objects that need to be exported</param>
internal static void ExportText(string path, List<RamStick> ramSticks)
{
string exportData = "MemPlus - Ram Analyzer Data (" + DateTime.Now + ")";
exportData += Environment.NewLine;
exportData += "---";
exportData += Environment.NewLine;

for (int index = 0; index < ramSticks.Count; index++)
{
RamStick stick = ramSticks[index];
List<RamData> ramDataList = stick.GetRamData();
for (int i = 0; i < ramDataList.Count; i++)
{
exportData += ramDataList[i].Key + "\t" + ramDataList[i].Value;
if (i != ramDataList.Count - 1)
{
exportData += Environment.NewLine;
}
}

if (index != ramSticks.Count - 1)
{
exportData += Environment.NewLine;
exportData += "----------";
exportData += Environment.NewLine;
}
}

Export(path, exportData);
}

/// <summary>
/// Export a list of RamStick objects to a specific path in HTML format
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="ramSticks">The list of RamStick objects that need to be exported</param>
internal static void ExportHtml(string path, List<RamStick> ramSticks)
{
string exportData = "<html>";

exportData += "<head>";
exportData += "<title>MemPlus - Ram Analyzer Data</title>";
exportData += "</head>";

exportData += "<body>";
exportData += "<h1>MemPlus - Ram Analyzer Data (" + DateTime.Now + ")</h1>";

for (int index = 0; index < ramSticks.Count; index++)
{
RamStick stick = ramSticks[index];
exportData += "<table border=\"1\">";
exportData += "<thead>";
exportData += "<tr><th>Key</th><th>Value</th></tr>";
exportData += "</thead>";
exportData += "<tbody>";

foreach (RamData data in stick.GetRamData())
{
exportData += "<tr>";
exportData += "<td>" + data.Key + "</td>";
exportData += "<td>" + data.Value + "</td>";
exportData += "</tr>";
}

exportData += "</tbody>";
exportData += "</table>";

if (index != ramSticks.Count - 1)
{
exportData += "<br />";
}
}

exportData += "</body>";

exportData += "</html>";

Export(path, exportData);
}

/// <summary>
/// Export a list of RamStick objects to a specific path in CSV format
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="ramSticks">The list of RamStick objects that need to be exported</param>
internal static void ExportCsv(string path, List<RamStick> ramSticks)
{

ExportDelimiter(path, ",", ramSticks);
}

/// <summary>
/// Export a list of RamStick objects to a specific path in Excel format
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="ramSticks">The list of RamStick objects that need to be exported</param>
internal static void ExportExcel(string path, List<RamStick> ramSticks)
{
ExportDelimiter(path, ";", ramSticks);
}

/// <summary>
/// Export a list of RamStick objects using a specific delimiter character
/// </summary>
/// <param name="path">The path where the data should be stored</param>
/// <param name="delimiter">The delimiter that should be used to split the data</param>
/// <param name="ramSticks">The list of RamStick objects that need to be exported</param>
private static void ExportDelimiter(string path, string delimiter, List<RamStick> ramSticks)
{
string exportData = "Key" + delimiter + "Value";
exportData += Environment.NewLine;

for (int i = 0; i < ramSticks.Count; i++)
{
List<RamData> ramData = ramSticks[i].GetRamData();
for (int index = 0; index < ramData.Count; index++)
{
exportData += ramData[index].Key + delimiter + ramData[index].Value;
if (index != ramData.Count - 1)
{
exportData += Environment.NewLine;
}
}

if (i != ramSticks.Count - 1)
{
exportData += Environment.NewLine;
exportData += "----------" + delimiter + "----------";
exportData += Environment.NewLine;
}
}

Export(path, exportData);
}
}
}
1 change: 0 additions & 1 deletion MemPlus/Windows/AnalyzerWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using MemPlus.Classes.GUI;
using MemPlus.Classes.LOG;
using MemPlus.Classes.RAM;
using MemPlus.Classes.RAM.ViewModels;
using Microsoft.Win32;

namespace MemPlus.Windows
Expand Down

0 comments on commit 63dd3d7

Please sign in to comment.