Compare commits

...

31 commits

Author SHA1 Message Date
Serraniel d49cad63b9
Added storage package 2022-11-15 21:07:07 +01:00
Serraniel eb9ac22a37
Fixed some project settings 2022-11-15 20:20:28 +01:00
dependabot[bot] 2e7c1a46f3
Merge pull request #3 from Serraniel/dependabot/nuget/SweetLib.Demo.Console/System.Net.Http-4.3.4 2021-04-23 17:12:44 +00:00
dependabot[bot] 3395f97de8
Merge pull request #2 from Serraniel/dependabot/nuget/SweetLib.Demo/System.Net.Http-4.3.4 2021-04-23 17:12:34 +00:00
dependabot[bot] 97fe09cd78
Bump System.Net.Http from 4.3.0 to 4.3.4 in /SweetLib.Demo.Console
Bumps System.Net.Http from 4.3.0 to 4.3.4.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-21 19:34:58 +00:00
dependabot[bot] de135f9306
Bump System.Net.Http from 4.3.0 to 4.3.4 in /SweetLib.Demo
Bumps System.Net.Http from 4.3.0 to 4.3.4.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-21 19:34:40 +00:00
Serraniel 74b7c36dc2
Demo settings 2020-04-06 20:45:55 +02:00
Serraniel d0b2398abd
Upodated project files... 2020-04-06 20:41:17 +02:00
Serraniel 7dd7f9f923
Updated dotnet core version 2020-04-06 20:37:45 +02:00
Serraniel 92c3f6a7de
Updated package 2020-04-06 20:33:33 +02:00
Serraniel 5a66c69957
Merge branch 'feature/DHP-features' into develop 2020-04-06 20:12:23 +02:00
Serraniel 0b95c41108
Automatically process queue 2019-02-02 00:53:31 +01:00
Daniel babe1a71be
Update README.md
Switched build server status badge
2019-02-01 23:54:33 +01:00
Serraniel c2c0c389d8
Fixed build
XML docs had an error
2019-02-01 23:51:49 +01:00
Serraniel 6eb5db83f7 Finalizations and build 2018-04-06 21:57:55 +02:00
Serraniel 70001154b3 Changed nuget icon 2018-04-06 21:20:00 +02:00
Serraniel 8031d30644 Merge branch 'feature/Streaming' into develop
* feature/Streaming:
  Some nuget configurations
  Did some doc texts
  Did some inline implementations
  Added most other streaming implementations
  Added interface for streamable objects
  Refactored method names and added missing conversions from byte arrays
  First draft for StreamManager including implementation for int values
  Removed unneccessarry uses
  Fixed target framework
  Some restructurings Added IO project
  Added some class extensions for byte array conversion
2018-04-06 21:12:00 +02:00
Serraniel 6a3b21bb7b Some nuget configurations 2018-04-06 21:11:42 +02:00
Serraniel 90268e899b Did some doc texts 2018-04-06 21:10:46 +02:00
Serraniel 18107c64c7 Did some inline implementations 2018-04-06 17:45:53 +02:00
Serraniel c419fa2757 Added most other streaming implementations 2018-04-06 17:37:54 +02:00
Serraniel d393bd184d Added interface for streamable objects 2018-04-06 17:33:41 +02:00
Serraniel 84e67b1e5c Refactored method names and added missing conversions from byte arrays 2018-04-06 17:31:36 +02:00
Serraniel 066f320a36 First draft for StreamManager including implementation for int values 2018-04-06 12:39:33 +02:00
Serraniel c7ea85f912 Removed unneccessarry uses 2018-04-06 12:39:00 +02:00
Serraniel f1934c525a Fixed target framework 2018-04-06 12:38:32 +02:00
Serraniel e2a7b4e310 Some restructurings
Added IO project
2018-04-06 12:23:03 +02:00
Serraniel 6a664c52e0 Added some class extensions for byte array conversion 2018-04-06 12:16:50 +02:00
Serraniel f6fbb203f8 Merge branch 'bugfix/Logger' into develop
* bugfix/Logger:
  Fixed default logger behaviour on closing
2018-04-06 00:08:03 +02:00
Serraniel 66ba0cf287 Fixed default logger behaviour on closing 2018-04-06 00:07:23 +02:00
Daniel defa69f03b Update README.md 2017-10-26 20:49:53 +02:00
38 changed files with 4029 additions and 130 deletions

538
Docs/SweetLib Normal file
View file

@ -0,0 +1,538 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>SweetLib</name>
</assembly>
<members>
<member name="T:SweetLib.Classes.Exceptions.RegistryStorerException">
<summary>
Exception thrown by <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/>.
</summary>
</member>
<member name="M:SweetLib.Classes.Exceptions.RegistryStorerException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.Classes.Exceptions.RegistryStorerException"/>.
</summary>
</member>
<member name="M:SweetLib.Classes.Exceptions.RegistryStorerException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.Classes.Exceptions.RegistryStorerException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.Classes.Storer.IniFileStorer">
<summary>
Implementation of an <see cref="T:SweetLib.Classes.Storer.IStorer"/> interface which stores the data inside an ini file.
</summary>
</member>
<member name="P:SweetLib.Classes.Storer.IniFileStorer.FileName">
<summary>
Ini file path.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.IniFileStorer.#ctor(System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.IniFileStorer"/> with a specified file name.
</summary>
<param name="fileName">The file name of the ini file.</param>
</member>
<member name="T:SweetLib.Classes.Storer.IStorer">
<summary>
Interface, which provides several methods to store simple data.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadString(System.String,System.String,System.String)">
<summary>
Reads a string value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadInteger(System.String,System.String,System.Int32)">
<summary>
Reads an integer value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadBool(System.String,System.String,System.Boolean)">
<summary>
Reads a bool value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.HasKey(System.String,System.String)">
<summary>
Checks, if a key exists inside a section.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<returns>True, if <see cref="!:key"/> is found inside <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteString(System.String,System.String,System.String)">
<summary>
Writes a string value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteInteger(System.String,System.String,System.Int32)">
<summary>
Writes an integer value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteBool(System.String,System.String,System.Boolean)">
<summary>
Writes a bool value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.DeleteKey(System.String,System.String)">
<summary>
Deletes a key inside a <see cref="!:section"/>.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key to be deleted.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.DeleteSection(System.String)">
<summary>
Deletes a section with all its keys.
</summary>
<param name="section">Represents the section to be deleted.</param>
</member>
<member name="T:SweetLib.Classes.Storer.RegistryStorer">
<summary>
Implementation of an <see cref="T:SweetLib.Classes.Storer.IStorer"/> interface which stores the data inside the registry.
</summary>
<remarks>
Sections will be interpreted as subkeys on registry level.
</remarks>
</member>
<member name="P:SweetLib.Classes.Storer.RegistryStorer.OperatingRegistryKey">
<summary>
The base registry key in which will be operated.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.RegistryStorer.#ctor(System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/> with a specified application name.
</summary>
<param name="appName">The applications base name. This will be used as name for a sub key inside the software key below the base key.</param>
<remarks>
This will use current user as the base key.
</remarks>
</member>
<member name="M:SweetLib.Classes.Storer.RegistryStorer.#ctor(Microsoft.Win32.RegistryKey,System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/> with a specified application name.
</summary>
<param name="baseRegistryKey">Provide a key of <see cref="T:Microsoft.Win32.Registry"/>, e.G. <i>Registry.CurrentUser</i>.</param>
<param name="appName">The applications base name. This will be used as name for a sub key inside the software key below the base key.</param>
</member>
<member name="T:SweetLib.Utils.Extensions.BaseTypeExtensions">
<summary>
Defines extensions to some general classes.
</summary>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int16)">
<summary>
Converts a <see cref="T:System.Int16"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt16)">
<summary>
Converts a <see cref="T:System.UInt16"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int32)">
<summary>
Converts a <see cref="T:System.Int32"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt32)">
<summary>
Converts a <see cref="T:System.UInt32"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int64)">
<summary>
Converts a <see cref="T:System.Int64"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt64)">
<summary>
Converts a <see cref="T:System.UInt64"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Single)">
<summary>
Converts a <see cref="T:System.Single"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Double)">
<summary>
Converts a <see cref="T:System.Double"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Boolean)">
<summary>
Converts a <see cref="T:System.Boolean"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.DateTime)">
<summary>
Converts a <see cref="T:System.DateTime"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.String)">
<summary>
Converts a <see cref="T:System.String"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
<remarks>Using <see cref="T:System.Text.UTF32Encoding"/> for converting.</remarks>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Char)">
<summary>
Converts a <see cref="T:System.Char"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt16(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int16"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt16(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt16"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt32(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int32"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt32(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt32"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt64(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int64"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt64(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt64"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsSingle(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Single"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsDouble(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Double"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBool(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Boolean"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsDateTime(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.DateTime"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsString(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.String"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
<remarks>Using <see cref="T:System.Text.UTF32Encoding"/> for converting.</remarks>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsChar(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Char"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="T:SweetLib.Utils.Extensions.DateTimeExtensions">
<summary>
Defines extensions to classes which are related to <see cref="T:System.DateTime"/>.
</summary>
</member>
<member name="M:SweetLib.Utils.Extensions.DateTimeExtensions.ToUnixTimeStamp(System.DateTime)">
<summary>
Converts a <see cref="T:System.DateTime"/> into an Unix timestamp.
</summary>
<param name="date"><see cref="T:System.DateTime"/> to convert into Unix timestamp.</param>
<returns>Converted Unix timestamp.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.DateTimeExtensions.ToDateTime(System.Double)">
<summary>
Converts an Unix timestamp into a <see cref="T:System.DateTime"/>.
</summary>
<param name="timestamp">Unix timestamp to convert.</param>
<returns>Converted <see cref="T:System.DateTime"/>.</returns>
</member>
<member name="T:SweetLib.Utils.Logger.LogLevel">
<summary>
Enum which contains the several log levels.
</summary>
</member>
<member name="T:SweetLib.Utils.Logger.Logger">
<summary>
Global logger class providing several methods to log events by the application.
</summary>
<remarks>
As <see cref="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory"/> a <see cref="T:SweetLib.Utils.Logger.Memory.ArchivableConsoleLogMemory"/> will be used. You can change this to any other implementation at any time while runtime.
Default log levels are set as bitflags in <see cref="P:SweetLib.Utils.Logger.Logger.GlobalLogLevel"/>.
</remarks>
</member>
<member name="P:SweetLib.Utils.Logger.Logger.GlobalLogLevel">
<summary>
The global log level. Only messages with the set <see cref="T:SweetLib.Utils.Logger.LogLevel"/> will be procedered.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory">
<summary>
The default <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> which will be used for any logging action, if no custom <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> is set as parameter.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)">
<summary>
Will log a message into the global <see cref="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory"/>.
</summary>
<param name="logLevel">The log level of this message.</param>
<param name="message">The message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String,SweetLib.Utils.Logger.Memory.ILogMemory)">
<summary>
Will log a message into the provided <see cref="!:logMemory"/>.
</summary>
<param name="logLevel">The log level of this message.</param>
/// <param name="message">The message to log.</param>
<param name="logMemory">The <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> to store the <see cref="!:message"/> into.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.Message.LogMessage,SweetLib.Utils.Logger.Memory.ILogMemory)">
<summary>
Will log a message into the provided <see cref="!:logMemory"/>.
</summary>
<param name="message">A <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object to store.</param>
<param name="logMemory">The <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> to store the <see cref="!:message"/> into.</param>
<remarks>In general use cases you should either use one of the <see cref="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)"/> or <see cref="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)"/> methods which will generate a call to this method.</remarks>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Trace(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Trace"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Debug(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Debug"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Info(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Info"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Warn(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Warn"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Error(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Error"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="T:SweetLib.Utils.Logger.Memory.ILogMemory">
<summary>
Interface for a class to store and proceed <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Remember(SweetLib.Utils.Logger.Message.LogMessage)">
<summary>
Adds a <see cref="!:message"/> into the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/>.
</summary>
<param name="message"><see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> to be stored.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Forget(SweetLib.Utils.Logger.Message.LogMessage)">
<summary>
Removes a <see cref="!:message"/> from the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/>.
</summary>
<param name="message"><see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> to be removed.</param>
<remarks>This might not have any effect depending on the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> implementation.</remarks>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Archive(System.String)">
<summary>
Saves all remembered <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects into a persistent file.
</summary>
<param name="fullFileName">File name to store the <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.</param>
</member>
<member name="T:SweetLib.Utils.Logger.Message.LogMessage">
<summary>
<see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> contains all event log data which should be logged in as a single log message.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.LogLevel">
<summary>
The <see cref="P:SweetLib.Utils.Logger.Message.LogMessage.LogLevel"/> of this event log.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.Message">
<summary>
The message of this event log.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.LogDateTime">
<summary>
The date and time of this event log.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.#ctor(SweetLib.Utils.Logger.LogLevel,System.String)">
<summary>
Creates a new <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> instance. <see cref="P:System.DateTime.Now"/> will be the <see cref="P:SweetLib.Utils.Logger.Message.LogMessage.LogDateTime"/>.
</summary>
<param name="logLevel">The log level of this event log.</param>
<param name="message">The message of this event log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.#ctor(SweetLib.Utils.Logger.LogLevel,System.String,System.DateTime)">
<summary>
Creates a new <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> instance.
</summary>
<param name="logLevel">The log level of this event log.</param>
<param name="message">The message of this event log.</param>
<param name="logDateTime">The <see cref="T:System.DateTime"/> of this event log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.ToString">
<summary>
Generates a formatted <see cref="T:System.String"/> of this event log. <see cref="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.DefaultFormatString"/> will be used to format this event log.
</summary>
<returns>A formated <see cref="T:System.String"/> of this event log.</returns>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.ToString(System.String,System.IFormatProvider)">
<summary>
Generates a formatted <see cref="T:System.String"/> of this event log with a given format.
</summary>
<param name="format">The format to be used. See <see cref="T:SweetLib.Utils.Logger.Message.LogMessageFormatter"/> for more format information.</param>
<param name="formatProvider">Optional, an <see cref="T:System.IFormatProvider"/> interface to be used while formatting if needed.</param>
<returns>A formated <see cref="T:System.String"/> of this event log.</returns>
</member>
<member name="T:SweetLib.Utils.Logger.Message.LogMessageFormatter">
<summary>
A <see cref="T:System.ICustomFormatter"/> which is used to format <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.
</summary>
<remarks>This class implements a singleton pattern.</remarks>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.FormatterInstance">
<summary>
Accesses the global instance of the <see cref="T:SweetLib.Utils.Logger.Message.LogMessageFormatter"/>.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.Instance">
<summary>
The default format string which is used to format <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects, if no custom format string is provided.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessageFormatter.Format(System.String,System.Object,System.IFormatProvider)">
<summary>
Formats a <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object.
</summary>
<param name="format">The format string. If <see cref="!:null"/>, <see cref="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.DefaultFormatString"/> will be used.</param>
<param name="arg">The <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object to be formatted.</param>
<param name="formatProvider">Optional, an <see cref="T:System.IFormatProvider"/> interface to be used while formatting if needed.</param>
<returns>A formatted <see cref="T:System.String"/> of the <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/>.</returns>
<remarks>
If <see cref="!:arg"/> is not a <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object, it will either be returned the formatted string implemented by the type of <see cref="!:arg"/>, if <see cref="T:System.IFormattable"/> is implemented by it, or the <see cref="!:arg.ToString()"/> result."
</remarks>
</member>
<member name="T:SweetLib.Utils.SweetUtils">
<summary>
A generic class containing useful methods.
</summary>
</member>
<member name="M:SweetLib.Utils.SweetUtils.LegalizeFilename(System.String)">
<summary>
Legalizes a file name with the <see cref="P:SweetLib.Utils.SweetUtils.DefaultFileNameReplaceChar"/> character.
</summary>
<param name="fileName">File name to legalize.</param>
<returns>Legalized file name.</returns>
</member>
<member name="M:SweetLib.Utils.SweetUtils.LegalizeFilename(System.String,System.Char)">
<summary>
Legalizes a file name by a given replace character.
</summary>
<param name="fileName">File name to legalize.</param>
<param name="replaceChar">Character to be used as replace character.</param>
<returns>Legalized file name.</returns>
</member>
</members>
</doc>

189
Docs/SweetLib.IO Normal file
View file

@ -0,0 +1,189 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>SweetLib.IO</name>
</assembly>
<members>
<member name="T:SweetLib.IO.Classes.Streaming.IStreamable">
<summary>
Streamable objects
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.IStreamable.SaveToStream(System.IO.Stream)">
<summary>
Saves the current object into a stream.
</summary>
<param name="stream">Stream in which the current object should be saved.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.IStreamable.LoadFromStream(System.IO.Stream)">
<summary>
Loads the object from a given stream.
</summary>
<param name="stream">Stream from which the object is loaded.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamException">
<summary>
Exception thrown by streaming related operations.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamException"/>.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamTypeException">
<summary>
Exception thrown by streaming related operations. May be thrown if the stream types do not match.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamTypeException"/>.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamTypeException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamManager">
<summary>
<see cref="T:SweetLib.IO.Classes.Streaming.StreamManager"/> wraps some useful methods for custom implementations of object streaming.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.String)">
<summary>
Adds a <see cref="T:System.String"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.String"/> will be added.</param>
<param name="value"><see cref="T:System.String"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Boolean)">
<summary>
Adds a <see cref="T:System.Boolean"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Boolean"/> will be added.</param>
<param name="value"><see cref="T:System.Boolean"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Char)">
<summary>
Adds a <see cref="T:System.Char"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Char"/> will be added.</param>
<param name="value"><see cref="T:System.Char"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int32)">
<summary>
Adds a <see cref="T:System.Int32"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Int32"/> will be added.</param>
<param name="value"><see cref="T:System.Int32"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int64)">
<summary>
Adds a <see cref="T:System.Int64"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Int64"/> will be added.</param>
<param name="value"><see cref="T:System.Int64"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Single)">
<summary>
Adds a <see cref="T:System.Single"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Single"/> will be added.</param>
<param name="value"><see cref="T:System.Single"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Double)">
<summary>
Adds a <see cref="T:System.Double"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Double"/> will be added.</param>
<param name="value"><see cref="T:System.Double"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.DateTime)">
<summary>
Adds a <see cref="T:System.DateTime"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.DateTime"/> will be added.</param>
<param name="value"><see cref="T:System.DateTime"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.IO.Stream,System.Boolean)">
<summary>
Adds a <see cref="T:System.IO.Stream"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.IO.Stream"/> will be added.</param>
<param name="value"><see cref="T:System.IO.Stream"/> value to add.</param>
<param name="resetSourceStream">If true, the full given <see cref="!:value"/> will be copied, otherwhise the stream will be copied from current position until its end.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.String@)">
<summary>
Loads a <see cref="T:System.String"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.String"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.String"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Boolean@)">
<summary>
Loads a <see cref="T:System.Boolean"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Boolean"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Boolean"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Char@)">
<summary>
Loads a <see cref="T:System.Char"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Char"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Char"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int32@)">
<summary>
Loads a <see cref="T:System.Int32"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Int32"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Int32"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int64@)">
<summary>
Loads a <see cref="T:System.Int64"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Int64"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Int64"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Single@)">
<summary>
Loads a <see cref="T:System.String"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.String"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.String"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Double@)">
<summary>
Loads a <see cref="T:System.Double"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Double"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Double"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.DateTime@)">
<summary>
Loads a <see cref="T:System.DateTime"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.DateTime"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.DateTime"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.IO.Stream@)">
<summary>
Loads a <see cref="T:System.IO.Stream"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.IO.Stream"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.IO.Stream"/> value.</param>
</member>
</members>
</doc>

405
Docs/SweetLib.IO.md Normal file
View file

@ -0,0 +1,405 @@
<a name='contents'></a>
# Contents [#](#contents 'Go To Here')
- [IStreamable](#T-SweetLib-IO-Classes-Streaming-IStreamable 'SweetLib.IO.Classes.Streaming.IStreamable')
- [LoadFromStream(stream)](#M-SweetLib-IO-Classes-Streaming-IStreamable-LoadFromStream-System-IO-Stream- 'SweetLib.IO.Classes.Streaming.IStreamable.LoadFromStream(System.IO.Stream)')
- [SaveToStream(stream)](#M-SweetLib-IO-Classes-Streaming-IStreamable-SaveToStream-System-IO-Stream- 'SweetLib.IO.Classes.Streaming.IStreamable.SaveToStream(System.IO.Stream)')
- [StreamException](#T-SweetLib-IO-Classes-Streaming-StreamException 'SweetLib.IO.Classes.Streaming.StreamException')
- [#ctor()](#M-SweetLib-IO-Classes-Streaming-StreamException-#ctor 'SweetLib.IO.Classes.Streaming.StreamException.#ctor')
- [#ctor(message)](#M-SweetLib-IO-Classes-Streaming-StreamException-#ctor-System-String- 'SweetLib.IO.Classes.Streaming.StreamException.#ctor(System.String)')
- [StreamManager](#T-SweetLib-IO-Classes-Streaming-StreamManager 'SweetLib.IO.Classes.Streaming.StreamManager')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-String@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.String@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Boolean@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Boolean@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Char@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Char@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int32@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int32@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int64@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int64@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Single@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Single@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Double@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Double@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-DateTime@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.DateTime@)')
- [LoadFromStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-IO-Stream@- 'SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.IO.Stream@)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-String- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.String)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Boolean- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Boolean)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Char- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Char)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int32- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int32)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int64- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int64)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Single- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Single)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Double- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Double)')
- [SaveToStream(stream,value)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-DateTime- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.DateTime)')
- [SaveToStream(stream,value,resetSourceStream)](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-IO-Stream,System-Boolean- 'SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.IO.Stream,System.Boolean)')
- [StreamTypeException](#T-SweetLib-IO-Classes-Streaming-StreamTypeException 'SweetLib.IO.Classes.Streaming.StreamTypeException')
- [#ctor()](#M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor 'SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor')
- [#ctor(message)](#M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor-System-String- 'SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor(System.String)')
<a name='assembly'></a>
# SweetLib.IO [#](#assembly 'Go To Here') [=](#contents 'Back To Contents')
<a name='T-SweetLib-IO-Classes-Streaming-IStreamable'></a>
## IStreamable [#](#T-SweetLib-IO-Classes-Streaming-IStreamable 'Go To Here') [=](#contents 'Back To Contents')
##### Namespace
SweetLib.IO.Classes.Streaming
##### Summary
Streamable objects
<a name='M-SweetLib-IO-Classes-Streaming-IStreamable-LoadFromStream-System-IO-Stream-'></a>
### LoadFromStream(stream) `method` [#](#M-SweetLib-IO-Classes-Streaming-IStreamable-LoadFromStream-System-IO-Stream- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads the object from a given stream.
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | Stream from which the object is loaded. |
<a name='M-SweetLib-IO-Classes-Streaming-IStreamable-SaveToStream-System-IO-Stream-'></a>
### SaveToStream(stream) `method` [#](#M-SweetLib-IO-Classes-Streaming-IStreamable-SaveToStream-System-IO-Stream- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Saves the current object into a stream.
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | Stream in which the current object should be saved. |
<a name='T-SweetLib-IO-Classes-Streaming-StreamException'></a>
## StreamException [#](#T-SweetLib-IO-Classes-Streaming-StreamException 'Go To Here') [=](#contents 'Back To Contents')
##### Namespace
SweetLib.IO.Classes.Streaming
##### Summary
Exception thrown by streaming related operations.
<a name='M-SweetLib-IO-Classes-Streaming-StreamException-#ctor'></a>
### #ctor() `constructor` [#](#M-SweetLib-IO-Classes-Streaming-StreamException-#ctor 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Creates a new [StreamException](#T-SweetLib-IO-Classes-Streaming-StreamException 'SweetLib.IO.Classes.Streaming.StreamException').
##### Parameters
This constructor has no parameters.
<a name='M-SweetLib-IO-Classes-Streaming-StreamException-#ctor-System-String-'></a>
### #ctor(message) `constructor` [#](#M-SweetLib-IO-Classes-Streaming-StreamException-#ctor-System-String- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Creates a new [StreamException](#T-SweetLib-IO-Classes-Streaming-StreamException 'SweetLib.IO.Classes.Streaming.StreamException').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Exception message. |
<a name='T-SweetLib-IO-Classes-Streaming-StreamManager'></a>
## StreamManager [#](#T-SweetLib-IO-Classes-Streaming-StreamManager 'Go To Here') [=](#contents 'Back To Contents')
##### Namespace
SweetLib.IO.Classes.Streaming
##### Summary
[StreamManager](#T-SweetLib-IO-Classes-Streaming-StreamManager 'SweetLib.IO.Classes.Streaming.StreamManager') wraps some useful methods for custom implementations of object streaming.
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-String@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-String@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') will be loaded. |
| value | [System.String@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String@ 'System.String@') | Contains the loaded [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Boolean@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Boolean@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') will be loaded. |
| value | [System.Boolean@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean@ 'System.Boolean@') | Contains the loaded [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Char@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Char@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') will be loaded. |
| value | [System.Char@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char@ 'System.Char@') | Contains the loaded [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int32@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int32@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') will be loaded. |
| value | [System.Int32@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32@ 'System.Int32@') | Contains the loaded [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int64@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Int64@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') will be loaded. |
| value | [System.Int64@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64@ 'System.Int64@') | Contains the loaded [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Single@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Single@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') will be loaded. |
| value | [System.Single@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Single@ 'System.Single@') | Contains the loaded [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Double@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-Double@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') will be loaded. |
| value | [System.Double@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double@ 'System.Double@') | Contains the loaded [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-DateTime@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-DateTime@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') will be loaded. |
| value | [System.DateTime@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime@ 'System.DateTime@') | Contains the loaded [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-IO-Stream@-'></a>
### LoadFromStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-LoadFromStream-System-IO-Stream,System-IO-Stream@- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Loads a [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') from which the [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') will be loaded. |
| value | [System.IO.Stream@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream@ 'System.IO.Stream@') | Contains the loaded [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') value. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-String-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-String- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') will be added. |
| value | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | [String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Boolean-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Boolean- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') will be added. |
| value | [System.Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') | [Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Char-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Char- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') will be added. |
| value | [System.Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') | [Char](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Char 'System.Char') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int32-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int32- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') will be added. |
| value | [System.Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') | [Int32](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int32 'System.Int32') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int64-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Int64- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') will be added. |
| value | [System.Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') | [Int64](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Int64 'System.Int64') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Single-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Single- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Single](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Single 'System.Single') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Single](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Single 'System.Single') will be added. |
| value | [System.Single](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Single 'System.Single') | [Single](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Single 'System.Single') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Double-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-Double- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') will be added. |
| value | [System.Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') | [Double](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Double 'System.Double') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-DateTime-'></a>
### SaveToStream(stream,value) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-DateTime- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') will be added. |
| value | [System.DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') | [DateTime](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.DateTime 'System.DateTime') value to add. |
<a name='M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-IO-Stream,System-Boolean-'></a>
### SaveToStream(stream,value,resetSourceStream) `method` [#](#M-SweetLib-IO-Classes-Streaming-StreamManager-SaveToStream-System-IO-Stream,System-IO-Stream,System-Boolean- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Adds a [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to a given [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| stream | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') to which the [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') will be added. |
| value | [System.IO.Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') | [Stream](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.IO.Stream 'System.IO.Stream') value to add. |
| resetSourceStream | [System.Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') | If true, the full given [](#!-value 'value') will be copied, otherwhise the stream will be copied from current position until its end. |
<a name='T-SweetLib-IO-Classes-Streaming-StreamTypeException'></a>
## StreamTypeException [#](#T-SweetLib-IO-Classes-Streaming-StreamTypeException 'Go To Here') [=](#contents 'Back To Contents')
##### Namespace
SweetLib.IO.Classes.Streaming
##### Summary
Exception thrown by streaming related operations. May be thrown if the stream types do not match.
<a name='M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor'></a>
### #ctor() `constructor` [#](#M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Creates a new [StreamTypeException](#T-SweetLib-IO-Classes-Streaming-StreamTypeException 'SweetLib.IO.Classes.Streaming.StreamTypeException').
##### Parameters
This constructor has no parameters.
<a name='M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor-System-String-'></a>
### #ctor(message) `constructor` [#](#M-SweetLib-IO-Classes-Streaming-StreamTypeException-#ctor-System-String- 'Go To Here') [=](#contents 'Back To Contents')
##### Summary
Creates a new [StreamTypeException](#T-SweetLib-IO-Classes-Streaming-StreamTypeException 'SweetLib.IO.Classes.Streaming.StreamTypeException').
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Exception message. |

189
Docs/SweetLib.IO.xml Normal file
View file

@ -0,0 +1,189 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>SweetLib.IO</name>
</assembly>
<members>
<member name="T:SweetLib.IO.Classes.Streaming.IStreamable">
<summary>
Streamable objects
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.IStreamable.SaveToStream(System.IO.Stream)">
<summary>
Saves the current object into a stream.
</summary>
<param name="stream">Stream in which the current object should be saved.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.IStreamable.LoadFromStream(System.IO.Stream)">
<summary>
Loads the object from a given stream.
</summary>
<param name="stream">Stream from which the object is loaded.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamException">
<summary>
Exception thrown by streaming related operations.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamException"/>.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamTypeException">
<summary>
Exception thrown by streaming related operations. May be thrown if the stream types do not match.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamTypeException"/>.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamTypeException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.IO.Classes.Streaming.StreamTypeException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.IO.Classes.Streaming.StreamManager">
<summary>
<see cref="T:SweetLib.IO.Classes.Streaming.StreamManager"/> wraps some useful methods for custom implementations of object streaming.
</summary>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.String)">
<summary>
Adds a <see cref="T:System.String"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.String"/> will be added.</param>
<param name="value"><see cref="T:System.String"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Boolean)">
<summary>
Adds a <see cref="T:System.Boolean"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Boolean"/> will be added.</param>
<param name="value"><see cref="T:System.Boolean"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Char)">
<summary>
Adds a <see cref="T:System.Char"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Char"/> will be added.</param>
<param name="value"><see cref="T:System.Char"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int32)">
<summary>
Adds a <see cref="T:System.Int32"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Int32"/> will be added.</param>
<param name="value"><see cref="T:System.Int32"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Int64)">
<summary>
Adds a <see cref="T:System.Int64"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Int64"/> will be added.</param>
<param name="value"><see cref="T:System.Int64"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Single)">
<summary>
Adds a <see cref="T:System.Single"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Single"/> will be added.</param>
<param name="value"><see cref="T:System.Single"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.Double)">
<summary>
Adds a <see cref="T:System.Double"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.Double"/> will be added.</param>
<param name="value"><see cref="T:System.Double"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.DateTime)">
<summary>
Adds a <see cref="T:System.DateTime"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.DateTime"/> will be added.</param>
<param name="value"><see cref="T:System.DateTime"/> value to add.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.SaveToStream(System.IO.Stream,System.IO.Stream,System.Boolean)">
<summary>
Adds a <see cref="T:System.IO.Stream"/> to a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> to which the <see cref="T:System.IO.Stream"/> will be added.</param>
<param name="value"><see cref="T:System.IO.Stream"/> value to add.</param>
<param name="resetSourceStream">If true, the full given <see cref="!:value"/> will be copied, otherwhise the stream will be copied from current position until its end.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.String@)">
<summary>
Loads a <see cref="T:System.String"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.String"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.String"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Boolean@)">
<summary>
Loads a <see cref="T:System.Boolean"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Boolean"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Boolean"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Char@)">
<summary>
Loads a <see cref="T:System.Char"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Char"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Char"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int32@)">
<summary>
Loads a <see cref="T:System.Int32"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Int32"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Int32"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Int64@)">
<summary>
Loads a <see cref="T:System.Int64"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Int64"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Int64"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Single@)">
<summary>
Loads a <see cref="T:System.String"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.String"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.String"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.Double@)">
<summary>
Loads a <see cref="T:System.Double"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.Double"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.Double"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.DateTime@)">
<summary>
Loads a <see cref="T:System.DateTime"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.DateTime"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.DateTime"/> value.</param>
</member>
<member name="M:SweetLib.IO.Classes.Streaming.StreamManager.LoadFromStream(System.IO.Stream,System.IO.Stream@)">
<summary>
Loads a <see cref="T:System.IO.Stream"/> from a given <see cref="T:System.IO.Stream"/>.
</summary>
<param name="stream"><see cref="T:System.IO.Stream"/> from which the <see cref="T:System.IO.Stream"/> will be loaded.</param>
<param name="value">Contains the loaded <see cref="T:System.IO.Stream"/> value.</param>
</member>
</members>
</doc>

1232
Docs/SweetLib.md Normal file

File diff suppressed because it is too large Load diff

538
Docs/SweetLib.xml Normal file
View file

@ -0,0 +1,538 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>SweetLib</name>
</assembly>
<members>
<member name="T:SweetLib.Classes.Exceptions.RegistryStorerException">
<summary>
Exception thrown by <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/>.
</summary>
</member>
<member name="M:SweetLib.Classes.Exceptions.RegistryStorerException.#ctor">
<summary>
Creates a new <see cref="T:SweetLib.Classes.Exceptions.RegistryStorerException"/>.
</summary>
</member>
<member name="M:SweetLib.Classes.Exceptions.RegistryStorerException.#ctor(System.String)">
<summary>
Creates a new <see cref="T:SweetLib.Classes.Exceptions.RegistryStorerException"/>.
</summary>
<param name="message">Exception message.</param>
</member>
<member name="T:SweetLib.Classes.Storer.IniFileStorer">
<summary>
Implementation of an <see cref="T:SweetLib.Classes.Storer.IStorer"/> interface which stores the data inside an ini file.
</summary>
</member>
<member name="P:SweetLib.Classes.Storer.IniFileStorer.FileName">
<summary>
Ini file path.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.IniFileStorer.#ctor(System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.IniFileStorer"/> with a specified file name.
</summary>
<param name="fileName">The file name of the ini file.</param>
</member>
<member name="T:SweetLib.Classes.Storer.IStorer">
<summary>
Interface, which provides several methods to store simple data.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadString(System.String,System.String,System.String)">
<summary>
Reads a string value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadInteger(System.String,System.String,System.Int32)">
<summary>
Reads an integer value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.ReadBool(System.String,System.String,System.Boolean)">
<summary>
Reads a bool value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="defaultValue">Default value, if this value does not exist.</param>
<returns>Value of the <see cref="!:key"/> in <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.HasKey(System.String,System.String)">
<summary>
Checks, if a key exists inside a section.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<returns>True, if <see cref="!:key"/> is found inside <see cref="!:section"/>.</returns>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteString(System.String,System.String,System.String)">
<summary>
Writes a string value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteInteger(System.String,System.String,System.Int32)">
<summary>
Writes an integer value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.WriteBool(System.String,System.String,System.Boolean)">
<summary>
Writes a bool value.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key of the stored data.</param>
<param name="value">Value to be stored.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.DeleteKey(System.String,System.String)">
<summary>
Deletes a key inside a <see cref="!:section"/>.
</summary>
<param name="section">Represents the section in which the data is stored.</param>
<param name="key">Represents the key to be deleted.</param>
</member>
<member name="M:SweetLib.Classes.Storer.IStorer.DeleteSection(System.String)">
<summary>
Deletes a section with all its keys.
</summary>
<param name="section">Represents the section to be deleted.</param>
</member>
<member name="T:SweetLib.Classes.Storer.RegistryStorer">
<summary>
Implementation of an <see cref="T:SweetLib.Classes.Storer.IStorer"/> interface which stores the data inside the registry.
</summary>
<remarks>
Sections will be interpreted as subkeys on registry level.
</remarks>
</member>
<member name="P:SweetLib.Classes.Storer.RegistryStorer.OperatingRegistryKey">
<summary>
The base registry key in which will be operated.
</summary>
</member>
<member name="M:SweetLib.Classes.Storer.RegistryStorer.#ctor(System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/> with a specified application name.
</summary>
<param name="appName">The applications base name. This will be used as name for a sub key inside the software key below the base key.</param>
<remarks>
This will use current user as the base key.
</remarks>
</member>
<member name="M:SweetLib.Classes.Storer.RegistryStorer.#ctor(Microsoft.Win32.RegistryKey,System.String)">
<summary>
Creates a new instance of <see cref="T:SweetLib.Classes.Storer.RegistryStorer"/> with a specified application name.
</summary>
<param name="baseRegistryKey">Provide a key of <see cref="T:Microsoft.Win32.Registry"/>, e.G. <i>Registry.CurrentUser</i>.</param>
<param name="appName">The applications base name. This will be used as name for a sub key inside the software key below the base key.</param>
</member>
<member name="T:SweetLib.Utils.Extensions.BaseTypeExtensions">
<summary>
Defines extensions to some general classes.
</summary>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int16)">
<summary>
Converts a <see cref="T:System.Int16"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt16)">
<summary>
Converts a <see cref="T:System.UInt16"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int32)">
<summary>
Converts a <see cref="T:System.Int32"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt32)">
<summary>
Converts a <see cref="T:System.UInt32"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Int64)">
<summary>
Converts a <see cref="T:System.Int64"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.UInt64)">
<summary>
Converts a <see cref="T:System.UInt64"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Single)">
<summary>
Converts a <see cref="T:System.Single"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Double)">
<summary>
Converts a <see cref="T:System.Double"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Boolean)">
<summary>
Converts a <see cref="T:System.Boolean"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.DateTime)">
<summary>
Converts a <see cref="T:System.DateTime"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.String)">
<summary>
Converts a <see cref="T:System.String"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
<remarks>Using <see cref="T:System.Text.UTF32Encoding"/> for converting.</remarks>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBytes(System.Char)">
<summary>
Converts a <see cref="T:System.Char"/> value into a byte array.
</summary>
<param name="value">Value to convert.</param>
<returns>Byte array representation of the value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt16(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int16"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt16(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt16"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt32(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int32"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt32(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt32"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsInt64(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Int64"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsUInt64(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.UInt64"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsSingle(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Single"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsDouble(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Double"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsBool(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Boolean"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsDateTime(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.DateTime"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsString(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.String"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
<remarks>Using <see cref="T:System.Text.UTF32Encoding"/> for converting.</remarks>
</member>
<member name="M:SweetLib.Utils.Extensions.BaseTypeExtensions.AsChar(System.Byte[])">
<summary>
Converts a byte array into a <see cref="T:System.Char"/> type.
</summary>
<param name="bytes">Byte array representation to convert.</param>
<returns>Converted value.</returns>
</member>
<member name="T:SweetLib.Utils.Extensions.DateTimeExtensions">
<summary>
Defines extensions to classes which are related to <see cref="T:System.DateTime"/>.
</summary>
</member>
<member name="M:SweetLib.Utils.Extensions.DateTimeExtensions.ToUnixTimeStamp(System.DateTime)">
<summary>
Converts a <see cref="T:System.DateTime"/> into an Unix timestamp.
</summary>
<param name="date"><see cref="T:System.DateTime"/> to convert into Unix timestamp.</param>
<returns>Converted Unix timestamp.</returns>
</member>
<member name="M:SweetLib.Utils.Extensions.DateTimeExtensions.ToDateTime(System.Double)">
<summary>
Converts an Unix timestamp into a <see cref="T:System.DateTime"/>.
</summary>
<param name="timestamp">Unix timestamp to convert.</param>
<returns>Converted <see cref="T:System.DateTime"/>.</returns>
</member>
<member name="T:SweetLib.Utils.Logger.LogLevel">
<summary>
Enum which contains the several log levels.
</summary>
</member>
<member name="T:SweetLib.Utils.Logger.Logger">
<summary>
Global logger class providing several methods to log events by the application.
</summary>
<remarks>
As <see cref="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory"/> a <see cref="T:SweetLib.Utils.Logger.Memory.ArchivableConsoleLogMemory"/> will be used. You can change this to any other implementation at any time while runtime.
Default log levels are set as bitflags in <see cref="P:SweetLib.Utils.Logger.Logger.GlobalLogLevel"/>.
</remarks>
</member>
<member name="P:SweetLib.Utils.Logger.Logger.GlobalLogLevel">
<summary>
The global log level. Only messages with the set <see cref="T:SweetLib.Utils.Logger.LogLevel"/> will be procedered.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory">
<summary>
The default <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> which will be used for any logging action, if no custom <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> is set as parameter.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)">
<summary>
Will log a message into the global <see cref="P:SweetLib.Utils.Logger.Logger.DefaultLogMemory"/>.
</summary>
<param name="logLevel">The log level of this message.</param>
<param name="message">The message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String,SweetLib.Utils.Logger.Memory.ILogMemory)">
<summary>
Will log a message into the provided <see cref="!:logMemory"/>.
</summary>
<param name="logLevel">The log level of this message.</param>
/// <param name="message">The message to log.</param>
<param name="logMemory">The <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> to store the <see cref="!:message"/> into.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.Message.LogMessage,SweetLib.Utils.Logger.Memory.ILogMemory)">
<summary>
Will log a message into the provided <see cref="!:logMemory"/>.
</summary>
<param name="message">A <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object to store.</param>
<param name="logMemory">The <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> to store the <see cref="!:message"/> into.</param>
<remarks>In general use cases you should either use one of the <see cref="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)"/> or <see cref="M:SweetLib.Utils.Logger.Logger.Log(SweetLib.Utils.Logger.LogLevel,System.String)"/> methods which will generate a call to this method.</remarks>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Trace(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Trace"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Debug(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Debug"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Info(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Info"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Warn(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Warn"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Logger.Error(System.String)">
<summary>
Will log a message with the <see cref="F:SweetLib.Utils.Logger.LogLevel.Error"/> log level.
</summary>
<param name="message">Message to log.</param>
</member>
<member name="T:SweetLib.Utils.Logger.Memory.ILogMemory">
<summary>
Interface for a class to store and proceed <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Remember(SweetLib.Utils.Logger.Message.LogMessage)">
<summary>
Adds a <see cref="!:message"/> into the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/>.
</summary>
<param name="message"><see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> to be stored.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Forget(SweetLib.Utils.Logger.Message.LogMessage)">
<summary>
Removes a <see cref="!:message"/> from the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/>.
</summary>
<param name="message"><see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> to be removed.</param>
<remarks>This might not have any effect depending on the <see cref="T:SweetLib.Utils.Logger.Memory.ILogMemory"/> implementation.</remarks>
</member>
<member name="M:SweetLib.Utils.Logger.Memory.ILogMemory.Archive(System.String)">
<summary>
Saves all remembered <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects into a persistent file.
</summary>
<param name="fullFileName">File name to store the <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.</param>
</member>
<member name="T:SweetLib.Utils.Logger.Message.LogMessage">
<summary>
<see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> contains all event log data which should be logged in as a single log message.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.LogLevel">
<summary>
The <see cref="P:SweetLib.Utils.Logger.Message.LogMessage.LogLevel"/> of this event log.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.Message">
<summary>
The message of this event log.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessage.LogDateTime">
<summary>
The date and time of this event log.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.#ctor(SweetLib.Utils.Logger.LogLevel,System.String)">
<summary>
Creates a new <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> instance. <see cref="P:System.DateTime.Now"/> will be the <see cref="P:SweetLib.Utils.Logger.Message.LogMessage.LogDateTime"/>.
</summary>
<param name="logLevel">The log level of this event log.</param>
<param name="message">The message of this event log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.#ctor(SweetLib.Utils.Logger.LogLevel,System.String,System.DateTime)">
<summary>
Creates a new <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> instance.
</summary>
<param name="logLevel">The log level of this event log.</param>
<param name="message">The message of this event log.</param>
<param name="logDateTime">The <see cref="T:System.DateTime"/> of this event log.</param>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.ToString">
<summary>
Generates a formatted <see cref="T:System.String"/> of this event log. <see cref="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.DefaultFormatString"/> will be used to format this event log.
</summary>
<returns>A formated <see cref="T:System.String"/> of this event log.</returns>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessage.ToString(System.String,System.IFormatProvider)">
<summary>
Generates a formatted <see cref="T:System.String"/> of this event log with a given format.
</summary>
<param name="format">The format to be used. See <see cref="T:SweetLib.Utils.Logger.Message.LogMessageFormatter"/> for more format information.</param>
<param name="formatProvider">Optional, an <see cref="T:System.IFormatProvider"/> interface to be used while formatting if needed.</param>
<returns>A formated <see cref="T:System.String"/> of this event log.</returns>
</member>
<member name="T:SweetLib.Utils.Logger.Message.LogMessageFormatter">
<summary>
A <see cref="T:System.ICustomFormatter"/> which is used to format <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects.
</summary>
<remarks>This class implements a singleton pattern.</remarks>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.FormatterInstance">
<summary>
Accesses the global instance of the <see cref="T:SweetLib.Utils.Logger.Message.LogMessageFormatter"/>.
</summary>
</member>
<member name="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.Instance">
<summary>
The default format string which is used to format <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> objects, if no custom format string is provided.
</summary>
</member>
<member name="M:SweetLib.Utils.Logger.Message.LogMessageFormatter.Format(System.String,System.Object,System.IFormatProvider)">
<summary>
Formats a <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object.
</summary>
<param name="format">The format string. If <see cref="!:null"/>, <see cref="P:SweetLib.Utils.Logger.Message.LogMessageFormatter.DefaultFormatString"/> will be used.</param>
<param name="arg">The <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object to be formatted.</param>
<param name="formatProvider">Optional, an <see cref="T:System.IFormatProvider"/> interface to be used while formatting if needed.</param>
<returns>A formatted <see cref="T:System.String"/> of the <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/>.</returns>
<remarks>
If <see cref="!:arg"/> is not a <see cref="T:SweetLib.Utils.Logger.Message.LogMessage"/> object, it will either be returned the formatted string implemented by the type of <see cref="!:arg"/>, if <see cref="T:System.IFormattable"/> is implemented by it, or the <see cref="!:arg.ToString()"/> result."
</remarks>
</member>
<member name="T:SweetLib.Utils.SweetUtils">
<summary>
A generic class containing useful methods.
</summary>
</member>
<member name="M:SweetLib.Utils.SweetUtils.LegalizeFilename(System.String)">
<summary>
Legalizes a file name with the <see cref="P:SweetLib.Utils.SweetUtils.DefaultFileNameReplaceChar"/> character.
</summary>
<param name="fileName">File name to legalize.</param>
<returns>Legalized file name.</returns>
</member>
<member name="M:SweetLib.Utils.SweetUtils.LegalizeFilename(System.String,System.Char)">
<summary>
Legalizes a file name by a given replace character.
</summary>
<param name="fileName">File name to legalize.</param>
<param name="replaceChar">Character to be used as replace character.</param>
<returns>Legalized file name.</returns>
</member>
</members>
</doc>

View file

@ -1 +1,10 @@
# SweetUtils
## License
This project is licensed under [EUPL v1.1](https://joinup.ec.europa.eu/page/eupl-text-11-12) with the owners location in Germany.
## Installation
Install the library to your project. The easiest way to do so is installing the [NuGet Package](https://www.nuget.org/packages/SweetLib/). Just right-click your project and choose *Manage NuGet Packages...* and search for *SweetLib* or install it via the console: `PM> Install-Package SweetLib`
## Status
Build: [![status badge](https://ci.serraniel.com/app/rest/builds/buildType:(DarkorbitHelperProgram_Build)/statusIcon)](https://ci.serraniel.com/viewType.html?buildTypeId=DarkorbitHelperProgram_Build)

View file

@ -1,29 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

View file

@ -1,5 +1,7 @@
using System.IO;
using System;
using System.IO;
using SweetLib.Classes.Storer;
using SweetLib.IO.Classes.Streaming;
using SweetLib.Utils.Logger;
namespace SweetLib.Demo.Console
@ -17,11 +19,33 @@ namespace SweetLib.Demo.Console
Logger.Warn("WARN!");
Logger.Error("Error :(");
System.Console.ReadLine();
var f = Path.GetTempFileName();
var ini = new IniFileStorer(f);
System.Console.WriteLine(ini.ReadString("sec","key"));
using (var stream = File.Create(@"S:\test.dat"))
{
StreamManager.SaveToStream(stream, 5);
StreamManager.SaveToStream(stream, "Hallo Wellt eksde");
StreamManager.SaveToStream(stream, 12d);
StreamManager.SaveToStream(stream, DateTime.UtcNow);
}
using (var stream = File.OpenRead(@"S:\test.dat"))
{
StreamManager.LoadFromStream(stream, out int iValue);
StreamManager.LoadFromStream(stream, out string sValue);
StreamManager.LoadFromStream(stream, out double dValue);
StreamManager.LoadFromStream(stream, out DateTime dtValue);
System.Console.WriteLine(iValue);
System.Console.WriteLine(sValue);
System.Console.WriteLine(dValue);
System.Console.WriteLine(dtValue);
}
System.Console.ReadLine();
}
}
}

View file

@ -1,4 +1,4 @@
using System.Reflection;
using System.Reflection;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
@ -31,5 +31,7 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.23.0")]
[assembly: AssemblyFileVersion("1.0.23.0")]
[assembly: AssemblyVersion("1.0.23.2")]
[assembly: AssemblyFileVersion("1.0.23.2")]
[assembly: AssemblyInformationalVersion("1.0.0-alpha-02")]

View file

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SweetLib.Demo.Console</RootNamespace>
<AssemblyName>SweetLib.Demo.Console</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
@ -40,9 +40,6 @@
<Reference Include="Microsoft.Win32.Registry, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Win32.Registry.4.3.0\lib\net46\Microsoft.Win32.Registry.dll</HintPath>
</Reference>
<Reference Include="SweetLib, Version=0.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SweetLib.0.2.0-alpha\lib\netstandard1.3\SweetLib.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
@ -115,6 +112,16 @@
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SweetLib.IO\SweetLib.IO.csproj">
<Project>{0874043e-42b3-43b2-b3bb-726cee4142e9}</Project>
<Name>SweetLib.IO</Name>
</ProjectReference>
<ProjectReference Include="..\SweetLib\SweetLib.csproj">
<Project>{7c15f2f3-2bf2-46fb-b813-9eec1b41d679}</Project>
<Name>SweetLib</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View file

@ -5,44 +5,44 @@
<package id="Microsoft.Win32.Registry" version="4.3.0" targetFramework="net46" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net46" />
<package id="SweetLib" version="0.2.0-alpha" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
<package id="System.Console" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Globalization" version="4.3.0" targetFramework="net46" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net46" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net46" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net46" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Threading" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net46" />

View file

@ -1,29 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
<assemblyIdentity name="System.IO.FileSystem" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

View file

@ -1,4 +1,4 @@
using System.Reflection;
using System.Reflection;
using System.Runtime.InteropServices;
// Allgemeine Informationen über eine Assembly werden über die folgenden
@ -31,5 +31,7 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.14.0")]
[assembly: AssemblyFileVersion("1.0.14.0")]
[assembly: AssemblyVersion("1.0.14.2")]
[assembly: AssemblyFileVersion("1.0.14.2")]
[assembly: AssemblyInformationalVersion("1.0.0-alpha-02")]

View file

@ -19,7 +19,7 @@ namespace SweetLib.Demo.Properties {
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {

View file

@ -12,7 +12,7 @@ namespace SweetLib.Demo.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View file

@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SweetLib.Demo</RootNamespace>
<AssemblyName>SweetLib.Demo</AssemblyName>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />

View file

@ -5,44 +5,44 @@
<package id="Microsoft.Win32.Registry" version="4.3.0" targetFramework="net46" />
<package id="NETStandard.Library" version="1.6.1" targetFramework="net46" />
<package id="SweetLib" version="0.2.0-alpha" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
<package id="System.AppContext" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Collections" version="4.3.0" targetFramework="net46" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net46" />
<package id="System.Console" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Globalization" version="4.3.0" targetFramework="net46" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" />
<package id="System.IO" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net46" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net46" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Http" version="4.3.0" targetFramework="net46" />
<package id="System.Linq" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net46" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net46" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net46" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net46" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net46" requireReinstallation="true" />
<package id="System.Threading" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net46" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net46" />

View file

@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace SweetLib.IO.Classes.Streaming
{
/// <summary>
/// Streamable objects
/// </summary>
public interface IStreamable
{
/// <summary>
/// Saves the current object into a stream.
/// </summary>
/// <param name="stream">Stream in which the current object should be saved.</param>
void SaveToStream(Stream stream);
/// <summary>
/// Loads the object from a given stream.
/// </summary>
/// <param name="stream">Stream from which the object is loaded.</param>
void LoadFromStream(Stream stream);
}
}

View file

@ -0,0 +1,38 @@
using System.IO;
namespace SweetLib.IO.Classes.Streaming
{
/// <summary>
/// Exception thrown by streaming related operations.
/// </summary>
public class StreamException : IOException
{
/// <summary>
/// Creates a new <see cref="StreamException"/>.
/// </summary>
public StreamException() { }
/// <summary>
/// Creates a new <see cref="StreamException"/>.
/// </summary>
/// <param name="message">Exception message.</param>
public StreamException(string message) : base(message) { }
}
/// <summary>
/// Exception thrown by streaming related operations. May be thrown if the stream types do not match.
/// </summary>
public class StreamTypeException : StreamException
{
/// <summary>
/// Creates a new <see cref="StreamTypeException"/>.
/// </summary>
public StreamTypeException() { }
/// <summary>
/// Creates a new <see cref="StreamTypeException"/>.
/// </summary>
/// <param name="message">Exception message.</param>
public StreamTypeException(string message) : base(message) { }
}
}

View file

@ -0,0 +1,261 @@
using System;
using System.IO;
using System.Runtime.InteropServices.ComTypes;
using SweetLib.Utils.Extensions;
namespace SweetLib.IO.Classes.Streaming
{
/// <summary>
/// <see cref="StreamManager"/> wraps some useful methods for custom implementations of object streaming.
/// </summary>
public static class StreamManager
{
enum StreamedObjectType : ushort // 2 bytes
{
Unknown = 0x0000,
StringValue = 0x1100,
BoolValue = 0x1200,
CharValue = 0x1300,
IntValue = 0x1400,
LongValue = 0x1410,
FloatValue = 0x1500,
DoubleValue = 0x1600,
DateTimeValue = 0x1700,
StreamValue = 0x1800,
}
private static bool SaveMetaToStream(Stream stream, StreamedObjectType type, long length)
{
stream.Write(((ushort)type).AsBytes(), 0, sizeof(ushort));
stream.Write(length.AsBytes(), 0, sizeof(long));
return true;
}
private static bool LoadMetaDataFromStream(Stream stream, out StreamedObjectType type, out long length)
{
type = StreamedObjectType.Unknown;
length = -1;
// read object type
var buffer = new byte[sizeof(ushort)];
stream.Read(buffer, 0, buffer.Length);
type = (StreamedObjectType)buffer.AsUInt16();
// read data length
buffer = new byte[sizeof(long)];
stream.Read(buffer, 0, buffer.Length);
length = buffer.AsInt64();
return true;
}
private static void SaveToStream(Stream stream, StreamedObjectType type, byte[] buffer)
{
SaveMetaToStream(stream, type, buffer.Length);
stream.Write(buffer, 0, buffer.Length);
}
private static byte[] LoadFromStream(Stream stream, StreamedObjectType type)
{
LoadMetaDataFromStream(stream, out StreamedObjectType foundType, out long length);
if (foundType != type)
throw new StreamTypeException($"Expected {type} but found {foundType} instead.");
var buffer = new byte[length];
stream.Read(buffer, 0, buffer.Length);
return buffer;
}
/// <summary>
/// Adds a <see cref="string"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="string"/> will be added.</param>
/// <param name="value"><see cref="string"/> value to add.</param>
public static void SaveToStream(Stream stream, string value)
{
SaveToStream(stream, StreamedObjectType.StringValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="bool"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="bool"/> will be added.</param>
/// <param name="value"><see cref="bool"/> value to add.</param>
public static void SaveToStream(Stream stream, bool value)
{
SaveToStream(stream, StreamedObjectType.BoolValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="char"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="char"/> will be added.</param>
/// <param name="value"><see cref="char"/> value to add.</param>
public static void SaveToStream(Stream stream, char value)
{
SaveToStream(stream, StreamedObjectType.CharValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="int"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="int"/> will be added.</param>
/// <param name="value"><see cref="int"/> value to add.</param>
public static void SaveToStream(Stream stream, int value)
{
SaveToStream(stream, StreamedObjectType.IntValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="long"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="long"/> will be added.</param>
/// <param name="value"><see cref="long"/> value to add.</param>
public static void SaveToStream(Stream stream, long value)
{
SaveToStream(stream, StreamedObjectType.LongValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="float"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="float"/> will be added.</param>
/// <param name="value"><see cref="float"/> value to add.</param>
public static void SaveToStream(Stream stream, float value)
{
SaveToStream(stream, StreamedObjectType.FloatValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="double"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="double"/> will be added.</param>
/// <param name="value"><see cref="double"/> value to add.</param>
public static void SaveToStream(Stream stream, double value)
{
SaveToStream(stream, StreamedObjectType.DoubleValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="DateTime"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="DateTime"/> will be added.</param>
/// <param name="value"><see cref="DateTime"/> value to add.</param>
public static void SaveToStream(Stream stream, DateTime value)
{
SaveToStream(stream, StreamedObjectType.DateTimeValue, value.AsBytes());
}
/// <summary>
/// Adds a <see cref="Stream"/> to a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> to which the <see cref="Stream"/> will be added.</param>
/// <param name="value"><see cref="Stream"/> value to add.</param>
/// <param name="resetSourceStream">If true, the full given <see cref="value"/> will be copied, otherwhise the stream will be copied from current position until its end.</param>
public static void SaveToStream(Stream stream, Stream value, bool resetSourceStream = false)
{
if (resetSourceStream)
value.Position = 0;
var buffer = new byte[value.Length - value.Position];
value.Read(buffer, 0, buffer.Length);
SaveToStream(stream, StreamedObjectType.StreamValue, buffer);
}
/// <summary>
/// Loads a <see cref="string"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="string"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="string"/> value.</param>
public static void LoadFromStream(Stream stream, out string value)
{
value = LoadFromStream(stream, StreamedObjectType.StringValue).AsString();
}
/// <summary>
/// Loads a <see cref="bool"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="bool"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="bool"/> value.</param>
public static void LoadFromStream(Stream stream, out bool value)
{
value = LoadFromStream(stream, StreamedObjectType.BoolValue).AsBool();
}
/// <summary>
/// Loads a <see cref="char"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="char"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="char"/> value.</param>
public static void LoadFromStream(Stream stream, out char value)
{
value = LoadFromStream(stream, StreamedObjectType.CharValue).AsChar();
}
/// <summary>
/// Loads a <see cref="int"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="int"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="int"/> value.</param>
public static void LoadFromStream(Stream stream, out int value)
{
value = LoadFromStream(stream, StreamedObjectType.IntValue).AsInt32();
}
/// <summary>
/// Loads a <see cref="long"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="long"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="long"/> value.</param>
public static void LoadFromStream(Stream stream, out long value)
{
value = LoadFromStream(stream, StreamedObjectType.LongValue).AsInt64();
}
/// <summary>
/// Loads a <see cref="string"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="string"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="string"/> value.</param>
public static void LoadFromStream(Stream stream, out float value)
{
value = LoadFromStream(stream, StreamedObjectType.FloatValue).AsSingle();
}
/// <summary>
/// Loads a <see cref="double"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="double"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="double"/> value.</param>
public static void LoadFromStream(Stream stream, out double value)
{
value = LoadFromStream(stream, StreamedObjectType.DoubleValue).AsDouble();
}
/// <summary>
/// Loads a <see cref="DateTime"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="DateTime"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="DateTime"/> value.</param>
public static void LoadFromStream(Stream stream, out DateTime value)
{
value = LoadFromStream(stream, StreamedObjectType.DateTimeValue).AsDateTime();
}
/// <summary>
/// Loads a <see cref="Stream"/> from a given <see cref="Stream"/>.
/// </summary>
/// <param name="stream"><see cref="Stream"/> from which the <see cref="Stream"/> will be loaded.</param>
/// <param name="value">Contains the loaded <see cref="Stream"/> value.</param>
public static void LoadFromStream(Stream stream, out Stream value)
{
var buffer = LoadFromStream(stream, StreamedObjectType.StreamValue);
value = new MemoryStream();
value.Read(buffer, 0, buffer.Length);
}
}
}

View file

@ -0,0 +1,42 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.1.0-alpha.1</Version>
<Description>SweetLib IO package</Description>
<Authors>Serraniel</Authors>
<Company />
<Copyright>Copyright © 2017-2020 by Serraniel</Copyright>
<PackageLicenseUrl></PackageLicenseUrl>
<PackageProjectUrl>https://github.com/Serraniel/SweetLib</PackageProjectUrl>
<RepositoryUrl>https://github.com/Serraniel/SweetLib</RepositoryUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageIconUrl>https://github.com/Serraniel/SweetLib/blob/develop/nuget_icon.png?raw=true</PackageIconUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<AssemblyVersion>0.1.0.3</AssemblyVersion>
<FileVersion>0.1.0.3</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile>bin\Release\netstandard1.3\SweetLib.IO.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>..\Docs\SweetLib.IO</DocumentationFile>
<OutputPath></OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SweetLib" Version="0.2.1-alpha" />
<PackageReference Include="Vsxmd" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<None Include="..\LICENSE">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>

View file

@ -0,0 +1,18 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$-alpha</version>
<title>$title$</title>
<authors>Serraniel</authors>
<owners>$author$</owners>
<licenseUrl>https://opensource.org/licenses/GPL-3.0</licenseUrl>
<projectUrl>https://github.com/Serraniel/SweetLib</projectUrl>
<iconUrl>https://github.com/Serraniel/SweetLib/blob/develop/nuget_icon.png?raw=true</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>First pre version just to try that nuget package thing :)</releaseNotes>
<copyright>Copyright © 2017 Serraniel</copyright>
<tags>Utility</tags>
</metadata>
</package>

View file

@ -0,0 +1,2 @@
nuget pack SweetLib.IO.csproj -properties Configuration=Release -symbols
pause

View file

@ -0,0 +1,42 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.1.0-alpha.1</Version>
<Description>SweetLib Storage package</Description>
<Authors>Serraniel</Authors>
<Company />
<Copyright>Copyright © 2017-2022 by Serraniel</Copyright>
<PackageLicenseUrl></PackageLicenseUrl>
<PackageProjectUrl>https://github.com/Serraniel/SweetLib</PackageProjectUrl>
<RepositoryUrl>https://github.com/Serraniel/SweetLib</RepositoryUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageIconUrl>https://github.com/Serraniel/SweetLib/blob/develop/nuget_icon.png?raw=true</PackageIconUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<AssemblyVersion>0.1.0.3</AssemblyVersion>
<FileVersion>0.1.0.3</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile>bin\Release\netstandard1.3\SweetLib.IO.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>..\Docs\SweetLib.Storage</DocumentationFile>
<OutputPath></OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="SweetLib" Version="0.2.1-alpha" />
<PackageReference Include="Vsxmd" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<None Include="..\LICENSE">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>

View file

@ -0,0 +1,18 @@
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$-alpha</version>
<title>$title$</title>
<authors>Serraniel</authors>
<owners>$author$</owners>
<licenseUrl>https://opensource.org/licenses/GPL-3.0</licenseUrl>
<projectUrl>https://github.com/Serraniel/SweetLib</projectUrl>
<iconUrl>https://github.com/Serraniel/SweetLib/blob/develop/nuget_icon.png?raw=true</iconUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>$description$</description>
<releaseNotes>First pre version just to try that nuget package thing :)</releaseNotes>
<copyright>Copyright © 2017 Serraniel</copyright>
<tags>Utility</tags>
</metadata>
</package>

View file

@ -0,0 +1,2 @@
nuget pack SweetLib.Storage.csproj -properties Configuration=Release -symbols
pause

View file

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.16
# Visual Studio Version 17
VisualStudioVersion = 17.5.33103.201
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SweetLib.Demo", "SweetLib.Demo\SweetLib.Demo.csproj", "{9350E0D4-9FE7-49D5-ACDE-E857E547889C}"
EndProject
@ -9,6 +9,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SweetLib.Demo.Console", "Sw
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SweetLib", "SweetLib\SweetLib.csproj", "{7C15F2F3-2BF2-46FB-B813-9EEC1B41D679}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Demo", "Demo", "{5C88E7F1-525D-4FF5-B7CE-2E02EC22BD9A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{9036EBA5-45D0-441D-9C81-AF4F86C8A8F8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SweetLib.IO", "SweetLib.IO\SweetLib.IO.csproj", "{0874043E-42B3-43B2-B3BB-726CEE4142E9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SweetLib.Storage", "SweetLib.Storage\SweetLib.Storage.csproj", "{E08BDA4B-BA1E-44F8-9D97-D11F80F8F9F0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -27,10 +35,25 @@ Global
{7C15F2F3-2BF2-46FB-B813-9EEC1B41D679}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C15F2F3-2BF2-46FB-B813-9EEC1B41D679}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C15F2F3-2BF2-46FB-B813-9EEC1B41D679}.Release|Any CPU.Build.0 = Release|Any CPU
{0874043E-42B3-43B2-B3BB-726CEE4142E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0874043E-42B3-43B2-B3BB-726CEE4142E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0874043E-42B3-43B2-B3BB-726CEE4142E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0874043E-42B3-43B2-B3BB-726CEE4142E9}.Release|Any CPU.Build.0 = Release|Any CPU
{E08BDA4B-BA1E-44F8-9D97-D11F80F8F9F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E08BDA4B-BA1E-44F8-9D97-D11F80F8F9F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E08BDA4B-BA1E-44F8-9D97-D11F80F8F9F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E08BDA4B-BA1E-44F8-9D97-D11F80F8F9F0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9350E0D4-9FE7-49D5-ACDE-E857E547889C} = {5C88E7F1-525D-4FF5-B7CE-2E02EC22BD9A}
{C8681E08-6F23-45E1-A16F-BBA72003219B} = {5C88E7F1-525D-4FF5-B7CE-2E02EC22BD9A}
{7C15F2F3-2BF2-46FB-B813-9EEC1B41D679} = {9036EBA5-45D0-441D-9C81-AF4F86C8A8F8}
{5C88E7F1-525D-4FF5-B7CE-2E02EC22BD9A} = {9036EBA5-45D0-441D-9C81-AF4F86C8A8F8}
{0874043E-42B3-43B2-B3BB-726CEE4142E9} = {9036EBA5-45D0-441D-9C81-AF4F86C8A8F8}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7AF4F0AF-F1C1-473C-BEE3-8C2B6DAEBF35}
EndGlobalSection

View file

@ -37,8 +37,7 @@ namespace SweetLib.Classes.Storer
public int ReadInteger(string section, string key, int defaultValue = 0)
{
int result;
if (!int.TryParse(ReadString(section, key, defaultValue.ToString()), out result))
if (!int.TryParse(ReadString(section, key, defaultValue.ToString()), out int result))
result = defaultValue;
return result;

View file

@ -47,8 +47,7 @@ namespace SweetLib.Classes.Storer
public int ReadInteger(string section, string key, int defaultValue = 0)
{
int result;
if (!int.TryParse(ReadString(section, key, defaultValue.ToString()), out result))
if (!int.TryParse(ReadString(section, key, defaultValue.ToString()), out int result))
result = defaultValue;
return result;

View file

@ -1,25 +1,46 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.3</TargetFramework>
<Version>0.2.0-alpha</Version>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.2.1-alpha.2</Version>
<Description>Sweet collection of helpful utils in .Net</Description>
<Authors>Serraniel</Authors>
<Company />
<Copyright>Copyright © 2017 by Serraniel</Copyright>
<PackageLicenseUrl>https://joinup.ec.europa.eu/page/eupl-text-11-12</PackageLicenseUrl>
<Copyright>Copyright © 2017-2020 by Serraniel</Copyright>
<PackageLicenseUrl></PackageLicenseUrl>
<PackageProjectUrl>https://github.com/Serraniel/SweetLib</PackageProjectUrl>
<RepositoryUrl>https://github.com/Serraniel/SweetLib</RepositoryUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageIconUrl>https://github.com/Serraniel/SweetLib/blob/develop/nuget_icon.png?raw=true</PackageIconUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<RepositoryType>Git</RepositoryType>
<AssemblyVersion>0.2.1.7</AssemblyVersion>
<FileVersion>0.2.1.7</FileVersion>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile>bin\Release\netstandard1.3\SweetLib.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DocumentationFile>..\Docs\SweetLib</DocumentationFile>
<OutputPath></OutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Win32.Registry" Version="4.3.0" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Vsxmd" Version="1.4.5">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Include="..\LICENSE">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
</Project>

View file

@ -0,0 +1,253 @@
using System;
using System.Text;
namespace SweetLib.Utils.Extensions
{
/// <summary>
/// Defines extensions to some general classes.
/// </summary>
public static class BaseTypeExtensions
{
/// <summary>
/// Converts a <see cref="short"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this short value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="ushort"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this ushort value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="int"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this int value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="uint"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this uint value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="long"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this long value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="ulong"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this ulong value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="float"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this float value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="double"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this double value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="bool"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this bool value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="DateTime"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this DateTime value)
{
return BitConverter.GetBytes(value.ToUnixTimeStamp());
}
/// <summary>
/// Converts a <see cref="string"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
/// <remarks>Using <see cref="UTF32Encoding"/> for converting.</remarks>
public static byte[] AsBytes(this string value)
{
return Encoding.UTF32.GetBytes(value);
}
/// <summary>
/// Converts a <see cref="char"/> value into a byte array.
/// </summary>
/// <param name="value">Value to convert.</param>
/// <returns>Byte array representation of the value.</returns>
public static byte[] AsBytes(this char value)
{
return BitConverter.GetBytes(value);
}
/// <summary>
/// Converts a byte array into a <see cref="short"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static short AsInt16(this byte[] bytes)
{
return BitConverter.ToInt16(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="ushort"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static ushort AsUInt16(this byte[] bytes)
{
return BitConverter.ToUInt16(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="int"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static int AsInt32(this byte[] bytes)
{
return BitConverter.ToInt32(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="uint"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static uint AsUInt32(this byte[] bytes)
{
return BitConverter.ToUInt32(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="long"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static long AsInt64(this byte[] bytes)
{
return BitConverter.ToInt64(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="ulong"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static ulong AsUInt64(this byte[] bytes)
{
return BitConverter.ToUInt64(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="float"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static float AsSingle(this byte[] bytes)
{
return BitConverter.ToSingle(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="double"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static double AsDouble(this byte[] bytes)
{
return BitConverter.ToDouble(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="bool"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static bool AsBool(this byte[] bytes)
{
return BitConverter.ToBoolean(bytes, 0);
}
/// <summary>
/// Converts a byte array into a <see cref="DateTime"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static DateTime AsDateTime(this byte[] bytes)
{
return BitConverter.ToDouble(bytes, 0).ToDateTime();
}
/// <summary>
/// Converts a byte array into a <see cref="string"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
/// <remarks>Using <see cref="UTF32Encoding"/> for converting.</remarks>
public static string AsString(this byte[] bytes)
{
return Encoding.UTF32.GetString(bytes);
}
/// <summary>
/// Converts a byte array into a <see cref="char"/> type.
/// </summary>
/// <param name="bytes">Byte array representation to convert.</param>
/// <returns>Converted value.</returns>
public static char AsChar(this byte[] bytes)
{
return BitConverter.ToChar(bytes, 0);
}
}
}

View file

@ -0,0 +1,30 @@
using System;
namespace SweetLib.Utils.Extensions
{
/// <summary>
/// Defines extensions to classes which are related to <see cref="DateTime"/>.
/// </summary>
public static class DateTimeExtensions
{
/// <summary>
/// Converts a <see cref="DateTime"/> into an Unix timestamp.
/// </summary>
/// <param name="date"><see cref="DateTime"/> to convert into Unix timestamp.</param>
/// <returns>Converted Unix timestamp.</returns>
public static double ToUnixTimeStamp(this DateTime date)
{
return date.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
}
/// <summary>
/// Converts an Unix timestamp into a <see cref="DateTime"/>.
/// </summary>
/// <param name="timestamp">Unix timestamp to convert.</param>
/// <returns>Converted <see cref="DateTime"/>.</returns>
public static DateTime ToDateTime(this double timestamp)
{
return new DateTime(1970, 1, 1).AddMilliseconds(timestamp);
}
}
}

View file

@ -37,7 +37,7 @@ namespace SweetLib.Utils.Logger
/// <summary>
/// The default <see cref="ILogMemory"/> which will be used for any logging action, if no custom <see cref="ILogMemory"/> is set as parameter.
/// </summary>
public static ILogMemory DefaultLogMemory = new ArchivableConsoleLogMemory();
public static ILogMemory DefaultLogMemory { get; set; } = new ArchivableConsoleLogMemory();
/// <summary>
/// Will log a message into the global <see cref="DefaultLogMemory"/>.

View file

@ -8,7 +8,7 @@ using SweetLib.Utils.Logger.Message;
namespace SweetLib.Utils.Logger.Memory
{
public class ArchivableConsoleLogMemory : ILogMemory
public class ArchivableConsoleLogMemory : ILogMemory, IDisposable
{
private string TempFile { get; } = Path.GetTempFileName();
@ -18,6 +18,8 @@ namespace SweetLib.Utils.Logger.Memory
public string ArchiveFile { get; set; }
public bool AutoProcessQueue { get; set; } = true;
public bool AutoArchiveOnDispose { get; set; } = true;
public ArchivableConsoleLogMemory() : this(null) { }
@ -26,40 +28,52 @@ namespace SweetLib.Utils.Logger.Memory
{
ArchiveFile = archiveFile;
QueueTimer = new Timer(e => ProcessQueue(), null, TimeSpan.Zero, TimeSpan.FromSeconds(30));
QueueTimer = new Timer(e =>
{
if (Monitor.TryEnter(this))
{
try
{
ProcessQueue();
}
finally
{
Monitor.Exit(this);
}
}
}, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(500));
}
~ArchivableConsoleLogMemory()
{
Dispose(false);
Dispose(true);
GC.SuppressFinalize(this);
}
private void ProcessQueue(bool isDisposing = false)
private void ProcessQueue(bool disposing = false)
{
// quick exit
if (LogQueue.IsEmpty)
return;
// if we are disposing no need to lock. This might cause issues!
if (!isDisposing)
if (!disposing)
{
lock (this)
{
if (LogQueue.IsEmpty)
return;
LogMessage message;
if (LogQueue.TryDequeue(out message))
File.AppendAllText(TempFile, message.ToString());
while (!LogQueue.IsEmpty)
{
if (LogQueue.TryDequeue(out LogMessage message))
File.AppendAllText(TempFile, message.ToString() + Environment.NewLine);
}
}
}
else
{
if (LogQueue.IsEmpty)
return;
LogMessage message;
if (LogQueue.TryDequeue(out message))
File.AppendAllText(TempFile, message.ToString());
while (!LogQueue.IsEmpty)
{
if (LogQueue.TryDequeue(out LogMessage message))
File.AppendAllText(TempFile, message.ToString() + Environment.NewLine);
}
}
}
@ -90,23 +104,23 @@ namespace SweetLib.Utils.Logger.Memory
LogQueue.Enqueue(message);
Console.ForegroundColor = consoleColor;
if (AutoProcessQueue)
ProcessQueue();
}
public void Forget(LogMessage message)
{
lock (this)
var lines = File.ReadAllLines(TempFile).ToList();
foreach (var line in lines)
{
var lines = File.ReadAllLines(TempFile).ToList();
foreach (var line in lines)
{
if (line == message.ToString())
lines.Remove(line);
}
File.WriteAllLines(TempFile, lines);
if (line == message.ToString())
lines.Remove(line);
}
File.WriteAllLines(TempFile, lines);
}
public void Archive(string fullFileName = null)
@ -152,8 +166,6 @@ namespace SweetLib.Utils.Logger.Memory
}
catch (FileNotFoundException)
{
if (disposing)
throw;
}
}

View file

@ -1,5 +1,4 @@
using System;
using System.IO;
using System.IO;
using System.Linq;
namespace SweetLib.Utils
@ -36,25 +35,5 @@ namespace SweetLib.Utils
return invalidChars.Aggregate(fileName, (current, c) => current.Replace(c, replaceChar));
}
/// <summary>
/// Converts a <see cref="DateTime"/> into an Unix timestamp.
/// </summary>
/// <param name="date"><see cref="DateTime"/> to convert into Unix timestamp.</param>
/// <returns>Converted Unix timestamp.</returns>
public static double DateTimeToUnixTimeStamp(DateTime date)
{
return date.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
}
/// <summary>
/// Converts an Unix timestamp into a <see cref="DateTime"/>.
/// </summary>
/// <param name="timestamp">Unix timestamp to convert.</param>
/// <returns>Converted <see cref="DateTime"/>.</returns>
public static DateTime UnixTimestampToDateTime(double timestamp)
{
return new DateTime(1970, 1, 1).AddMilliseconds(timestamp);
}
}
}

BIN
nuget_icon.old.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

After

Width:  |  Height:  |  Size: 542 KiB