<?xml version="1.0"?>
<doc>
    <assembly>
        <name>GSF.Core</name>
    </assembly>
    <members>
        <member name="T:GSF.Adapters.Adapter">
            <summary>
            Represents an adapter that could execute in isolation in a separate <see cref="T:System.AppDomain"/>.
            </summary>
            <seealso cref="T:GSF.Adapters.IAdapter"/>
            <seealso cref="T:GSF.Adapters.AdapterLoader`1"/>
        </member>
        <member name="E:GSF.Adapters.Adapter.StatusUpdate">
            <summary>
            Occurs when the <see cref="T:GSF.Adapters.Adapter"/> wants to provide a status update.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the <see cref="T:GSF.UpdateType"/>.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the update message.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.Adapter.ExecutionException">
            <summary>
            Occurs when the <see cref="T:GSF.Adapters.IAdapter"/> encounters an <see cref="T:System.Exception"/> during execution.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the text that describes the activity that was being performed by the <see cref="T:GSF.Adapters.IAdapter"/>.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the encountered <see cref="T:System.Exception"/>.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.Adapter.Disposed">
            <summary>
            Occurs when <see cref="T:GSF.Adapters.Adapter"/> is disposed.
            </summary>
        </member>
        <member name="M:GSF.Adapters.Adapter.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Adapters.Adapter"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.Adapter.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Adapters.Adapter"/> is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.TypeName">
            <summary>
            Gets or sets the text representation of the <see cref="T:GSF.Adapters.Adapter"/>'s <see cref="P:GSF.Adapters.Adapter.TypeName"/>.
            </summary>
            <remarks>
            This can be used for looking up the <see cref="P:GSF.Adapters.Adapter.TypeName"/> of the <see cref="T:GSF.Adapters.Adapter"/> when deserializing it using <see cref="T:System.Xml.Serialization.XmlSerializer"/>.
            </remarks>
        </member>
        <member name="P:GSF.Adapters.Adapter.HostFile">
            <summary>
            Gets or sets the path to the file where the <see cref="T:GSF.Adapters.Adapter"/> is housed.
            </summary>
            <remarks>
            This can be used to update the <see cref="T:GSF.Adapters.Adapter"/> when changes are made to the file where it is housed.
            </remarks>
        </member>
        <member name="P:GSF.Adapters.Adapter.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.Adapters.Adapter"/> is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:GSF.Adapters.Adapter"/> settings are to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.SettingsCategory">
            <summary>
            Gets or sets the category under which <see cref="T:GSF.Adapters.Adapter"/> settings are to be saved to the config file if the <see cref="P:GSF.Adapters.Adapter.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Adapters.Adapter.MemoryUsage">
            <summary>
            Gets the memory utilization of the <see cref="T:GSF.Adapters.Adapter"/> in bytes if executing in a separate <see cref="T:System.AppDomain"/>, otherwise <see cref="F:System.Double.NaN"/>.
            </summary>
            <remarks>
            <para>
            <see cref="P:GSF.Adapters.Adapter.MemoryUsage"/> gets updated only after a full blocking collection by <see cref="T:System.GC"/> (e.g. <see cref="M:System.GC.Collect"/>).
            </para>
            <para>
            This method always returns <c><see cref="F:System.Double.NaN"/></c> under Mono deployments.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Adapters.Adapter.ProcessorUsage">
            <summary>
            Gets the % processor utilization of the <see cref="T:GSF.Adapters.Adapter"/> if executing in a separate <see cref="T:System.AppDomain"/> otherwise <see cref="F:System.Double.NaN"/>.
            </summary>
            <remarks>
            This method always returns <c><see cref="F:System.Double.NaN"/></c> under Mono deployments.
            </remarks>
        </member>
        <member name="P:GSF.Adapters.Adapter.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.Adapters.Adapter"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.Adapters.Adapter"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.Adapter.Domain">
            <summary>
            Gets the <see cref="T:System.AppDomain"/> in which the <see cref="T:GSF.Adapters.Adapter"/> is executing.
            </summary>
        </member>
        <member name="M:GSF.Adapters.Adapter.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Adapters.Adapter"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.Adapter.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.Adapters.Adapter"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.Adapter.SaveSettings">
            <summary>
            Saves <see cref="T:GSF.Adapters.Adapter"/> settings to the config file if the <see cref="P:GSF.Adapters.Adapter.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Adapters.Adapter.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Adapters.Adapter.LoadSettings">
            <summary>
            Loads saved <see cref="T:GSF.Adapters.Adapter"/> settings from the config file if the <see cref="P:GSF.Adapters.Adapter.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Adapters.Adapter.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Adapters.Adapter.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Adapters.Adapter"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Adapters.Adapter.OnStatusUpdate(GSF.UpdateType,System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.Adapters.Adapter.StatusUpdate"/> event.
            </summary>
            <param name="updateType"><see cref="T:GSF.UpdateType"/> to send to <see cref="E:GSF.Adapters.Adapter.StatusUpdate"/> event.</param>
            <param name="updateMessage">Update message to send to <see cref="E:GSF.Adapters.Adapter.StatusUpdate"/> event.</param>
            <param name="args">Arguments to be used when formatting the <paramref name="updateMessage"/>.</param>
        </member>
        <member name="M:GSF.Adapters.Adapter.OnExecutionException(System.String,System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.Adapter.ExecutionException"/> event.
            </summary>
            <param name="activityDescription">Activity description to send to <see cref="E:GSF.Adapters.Adapter.ExecutionException"/> event.</param>
            <param name="encounteredException">Encountered <see cref="T:System.Exception"/> to send to <see cref="E:GSF.Adapters.Adapter.ExecutionException"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.Adapter.OnDisposed">
            <summary>
            Raises the <see cref="E:GSF.Adapters.Adapter.Disposed"/> event.
            </summary>
        </member>
        <member name="T:GSF.Adapters.AdapterFileFormat">
            <summary>
            Specifies the file format of the adapters to be loaded by the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterFileFormat.Assembly">
            <summary>
            Adapters are <see cref="T:System.Type"/>s inside <see cref="F:GSF.Adapters.AdapterFileFormat.Assembly"/> files (DLLs).
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterFileFormat.SerializedBin">
            <summary>
            Adapters are binary serialized instances persisted to files.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterFileFormat.SerializedXml">
            <summary>
            Adapters are XML serialized instances persisted to files.
            </summary>
        </member>
        <member name="T:GSF.Adapters.AdapterLoader`1">
            <summary>
            Represents a generic loader of adapters.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of adapters to be loaded.</typeparam>
            <example>
            This example show how to use the <see cref="T:GSF.Adapters.AdapterLoader`1"/> to isolate adapters in separate <see cref="T:System.AppDomain"/>s and monitor their resource usage:
            <code>
            using System;
            using System.Collections.Generic;
            using System.Text;
            using System.Threading;
            using GSF;
            using GSF.Adapters;
            using GSF.Security.Cryptography;
            
            class Program
            {
                static AdapterLoader&lt;PublishAdapterBase&gt; s_adapterLoader;
            
                static void Main(string[] args)
                {
                    // Enable app domain resource monitoring.
                    AppDomain.MonitoringIsEnabled = true;
            
                    // Load adapters that mimic data publishing.
                    s_adapterLoader = new AdapterLoader&lt;PublishAdapterBase&gt;();
                    s_adapterLoader.IsolateAdapters = true;
                    s_adapterLoader.MonitorAdapters = true;
                    s_adapterLoader.AdapterFileExtension = "*.exe";
                    s_adapterLoader.AllowableProcessMemoryUsage = 200;
                    s_adapterLoader.AllowableProcessProcessorUsage = 50;
                    s_adapterLoader.AllowableAdapterMemoryUsage = 100;
                    s_adapterLoader.AllowableAdapterProcessorUsage = 25;
                    s_adapterLoader.AdapterLoaded += OnAdapterLoaded;
                    s_adapterLoader.AdapterUnloaded += OnAdapterUnloaded;
                    s_adapterLoader.AdapterResourceUsageExceeded += OnAdapterResourceUsageExceeded;
                    s_adapterLoader.Initialize();
            
                    // Shutdown.
                    Console.ReadLine();
                    s_adapterLoader.Dispose();
                }
            
                static void OnAdapterLoaded(object sender, EventArgs&lt;PublishAdapterBase&gt; e)
                {
                    Console.WriteLine("{0} has been loaded\r\n", e.Argument.GetType().Name);
                }
            
                static void OnAdapterUnloaded(object sender, EventArgs&lt;PublishAdapterBase&gt; e)
                {
                    Console.WriteLine("{0} has been unloaded\r\n", e.Argument.GetType().Name);
                }
            
                static void OnAdapterResourceUsageExceeded(object sender, GSF.EventArgs&lt;PublishAdapterBase&gt; e)
                {
                    Console.WriteLine("{0} status:", e.Argument.Name);
                    Console.WriteLine(e.Argument.Status);
            
                    // Remove the adapter in order to reclaim the resources used by it.
                    lock (s_adapterLoader.Adapters)
                    {
                        s_adapterLoader.Adapters.Remove(e.Argument);
                    }
                }
            }
            
            /// &lt;summary&gt;
            /// Base adapter class.
            /// &lt;/summary&gt;
            public abstract class PublishAdapterBase : Adapter
            {
                public PublishAdapterBase()
                {
                    Data = new List&lt;byte[]&gt;();
                }
            
                public List&lt;byte[]&gt; Data { get; set; }
            
                public override void Initialize()
                {
                    base.Initialize();
                    new Thread(Publish).Start();
                }
            
                protected abstract void Publish();
            }
            
            /// &lt;summary&gt;
            /// Adapter that does not manage memory well.
            /// &lt;/summary&gt;
            public class PublishAdapterA : PublishAdapterBase
            {
                protected override void Publish()
                {
                    while (true)
                    {
                        for (int i = 0; i &lt; 10000; i++)
                        {
                            Data.Add(new byte[10]);
                        }
                        Thread.Sleep(100);
                    }
                }
            }
            
            /// &lt;summary&gt;
            /// Adapter that uses the processor in excess.
            /// &lt;/summary&gt;
            public class PublishAdapterB : PublishAdapterBase
            {
                protected override void Publish()
                {
                    string text = string.Empty;
                    System.Random random = new System.Random();
                    while (true)
                    {
                        for (int i = 0; i &lt; 10; i++)
                        {
                            for (int j = 0; j &lt; 4; j++)
                            {
                                text += (char)random.Next(256);
                            }
                            Data.Add(Encoding.ASCII.GetBytes(text.Encrypt("C1pH3r", CipherStrength.Aes256)).BlockCopy(0, 1));
                        }
                        Thread.Sleep(10);
                    }
                }
            }
            </code>
            </example>
            <seealso cref="T:GSF.Adapters.Adapter"/>
            <seealso cref="T:GSF.Adapters.IAdapter"/>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAdapterDirectory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterDirectory"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAdapterFileExtension">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterFileExtension"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAdapterFileFormat">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterFileFormat"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultWatchForAdapters">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.WatchForAdapters"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultIsolateAdapters">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.IsolateAdapters"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultMonitorAdapters">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.MonitorAdapters"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAllowableProcessMemoryUsage">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableProcessMemoryUsage"/> property
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAllowableProcessProcessorUsage">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableProcessProcessorUsage"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAllowableAdapterMemoryUsage">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterMemoryUsage"/> property.
            </summary>
        </member>
        <member name="F:GSF.Adapters.AdapterLoader`1.DefaultAllowableAdapterProcessorUsage">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterProcessorUsage"/> property.
            </summary>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.AdapterCreated">
            <summary>
            Occurs when a new adapter is found and instantiated.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the adapter that was created.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.AdapterLoaded">
            <summary>
            Occurs when a new adapter is loaded to the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> list.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the adapter that was loaded.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.AdapterUnloaded">
            <summary>
            Occurs when an existing adapter is unloaded from the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> list.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the adapter that was unloaded.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.AdapterResourceUsageExceeded">
            <summary>
            Occurs when an adapter has exceeded either the <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterMemoryUsage"/> or <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterProcessorUsage"/>.
            </summary>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the adapter that exceeded the allowable system resource utilization.
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.AdapterLoadException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered when loading an adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered when loading the adapter.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.OperationExecutionException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered while executing a queued operation on one the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the adapter on which the operation was being executed.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the <see cref="T:System.Exception"/> encountered when executing an operation on the adapter.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.AdapterLoader`1.Disposed">
            <summary>
            Occurs when the class has been disposed.
            </summary>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Adapters.AdapterLoader`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Adapters.AdapterLoader`1"/> is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AdapterDirectory">
            <summary>
            Gets or sets the directory where <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are located.
            </summary>
            <remarks>
            When an empty string is assigned to <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterDirectory"/>, <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are loaded from the directory where application is executing.
            </remarks>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null string.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AdapterFileExtension">
            <summary>
            Gets or sets the file extension of the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being set is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AdapterFileFormat">
            <summary>
            Gets or sets the file format of the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.WatchForAdapters">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterDirectory"/> is to be monitored for new <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.IsolateAdapters">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are loaded in separate <see cref="T:System.AppDomain"/> for isolated execution.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.MonitorAdapters">
            <summary>
            Gets or sets a boolean value that indicates whether resource utilization of <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> executing in <see cref="P:GSF.Adapters.AdapterLoader`1.IsolateAdapters">isolation</see> is to be monitored.
            </summary>
            <remarks>
            <para>
            Use <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableProcessMemoryUsage"/>, <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableProcessProcessorUsage"/>, <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterMemoryUsage"/> and 
            <see cref="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterProcessorUsage"/> properties to configure how adapter resource utilization is to be monitored.
            </para>
            <para>
            This option is ignored under Mono deployments.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AllowableProcessMemoryUsage">
            <summary>
            Gets or sets the memory in megabytes the current process is allowed to use before the internal monitoring process starts looking for offending <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is zero or negative.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AllowableProcessProcessorUsage">
            <summary>
            Gets or sets the processor time in % the current process is allowed to use before the internal monitoring process starts looking for offending <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is zero or negative.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterMemoryUsage">
            <summary>
            Gets or sets the memory in megabytes the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are allowed to use before being flagged as offending by the internal monitoring process.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is zero or negative.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AllowableAdapterProcessorUsage">
            <summary>
            Gets or sets the processor time in % the <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are allowed to use before being flagged as offending by the internal monitoring process.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is zero or negative.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:GSF.Adapters.AdapterLoader`1"/> settings are to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.SettingsCategory">
            <summary>
            Gets or sets the category under which <see cref="T:GSF.Adapters.AdapterLoader`1"/> settings are to be saved to the config file if the <see cref="P:GSF.Adapters.AdapterLoader`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.Adapters.AdapterLoader`1"/> is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.Adapters">
            <summary>
            Gets a list of adapters loaded from the <see cref="P:GSF.Adapters.AdapterLoader`1.AdapterDirectory"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.AdapterWatcher">
            <summary>
            Gets the <see cref="T:System.IO.FileSystemWatcher"/> object watching for new adapter assemblies added at runtime.
            </summary>
        </member>
        <member name="P:GSF.Adapters.AdapterLoader`1.OperationQueue">
            <summary>
            Gets the <see cref="T:GSF.Collections.ProcessQueue`1"/> object to be used for queuing operations to be executed on <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.Initialize(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Initializes the <see cref="T:GSF.Adapters.AdapterLoader`1"/>.
            </summary>
            <param name="adapterTypes">Collection of adapter <see cref="T:System.Type"/>s from which <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/> are to be created.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.SaveSettings">
            <summary>
            Saves <see cref="T:GSF.Adapters.AdapterLoader`1"/> settings to the config file if the <see cref="P:GSF.Adapters.AdapterLoader`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Adapters.AdapterLoader`1.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.LoadSettings">
            <summary>
            Loads saved <see cref="T:GSF.Adapters.AdapterLoader`1"/> settings from the config file if the <see cref="P:GSF.Adapters.AdapterLoader`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Adapters.AdapterLoader`1.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.ProcessAdapter(System.String)">
            <summary>
            Processes the <paramref name="adapterFile"/> by deserializing it.
            </summary>
            <param name="adapterFile">Path to the adapter file to be deserialized.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.ProcessAdapter(System.Type)">
            <summary>
            Processes the <paramref name="adapterType"/> by instantiating it.
            </summary>
            <param name="adapterType"><see cref="T:System.Type"/> of the adapter to be instantiated.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.MonitorAdapterResources">
            <summary>
            Monitors the resource utilization of <see cref="P:GSF.Adapters.AdapterLoader`1.Adapters"/>.
            </summary>
            <remarks>
            <see cref="T:System.AppDomain"/> monitoring is not enabled under Mono deployments.
            </remarks>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.GetMemoryUsage(System.Diagnostics.Process)">
            <summary>
            Gets the memory usage in bytes of the specified <paramref name="process"/>.
            </summary>
            <param name="process">The <see cref="T:System.Diagnostics.Process"/> whose memory usage is to be determined.</param>
            <returns>Memory usage in bytes of the specified <paramref name="process"/>.</returns>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.GetProcessorUsage(System.Diagnostics.Process)">
            <summary>
            Gets the % processor usage of the specified <paramref name="process"/>.
            </summary>
            <param name="process">The <see cref="T:System.Diagnostics.Process"/> whose processor usage is to be determined.</param>
            <returns>Processor usage in % of the specified <paramref name="process"/>.</returns>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.ExecuteAdapterOperation(`0,System.Object)">
            <summary>
            Executes an operation on the <paramref name="adapter"/> with the given <paramref name="data"/>.
            </summary>
            <param name="adapter">Adapter on which an operation is to be executed.</param>
            <param name="data">Data to be used when executing an operation.</param>
            <exception cref="T:System.NotSupportedException">Always</exception>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Adapters.AdapterLoader`1"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnAdapterCreated(`0)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterCreated"/> event.
            </summary>
            <param name="adapter">Adapter instance to send to <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterCreated"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnAdapterLoaded(`0)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterLoaded"/> event.
            </summary>
            <param name="adapter">Adapter instance to send to <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterLoaded"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnAdapterUnloaded(`0)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterUnloaded"/> event.
            </summary>
            <param name="adapter">Adapter instance to send to <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterUnloaded"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnAdapterResourceUsageExceeded(`0)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterResourceUsageExceeded"/> event.
            </summary>
            <param name="adapter">Adapter instance to send to <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterResourceUsageExceeded"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnAdapterLoadException(`0,System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterLoadException"/> event.
            </summary>
            <param name="adapter">Adapter instance that caused the <paramref name="exception"/>.</param>
            <param name="exception"><see cref="T:System.Exception"/> to send to <see cref="E:GSF.Adapters.AdapterLoader`1.AdapterLoadException"/> event.</param>
        </member>
        <member name="M:GSF.Adapters.AdapterLoader`1.OnOperationExecutionException(`0,System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Adapters.AdapterLoader`1.OperationExecutionException"/> event.
            </summary>
            <param name="adapter">Adapter instance to send to <see cref="E:GSF.Adapters.AdapterLoader`1.OperationExecutionException"/> event.</param>
            <param name="exception"><see cref="T:System.Exception"/> to send to <see cref="E:GSF.Adapters.AdapterLoader`1.OperationExecutionException"/> event.</param>
        </member>
        <member name="T:GSF.Adapters.IAdapter">
            <summary>
            Defines an adapter that could execute in isolation in a separate <see cref="T:System.AppDomain"/>.
            </summary>
        </member>
        <member name="E:GSF.Adapters.IAdapter.StatusUpdate">
            <summary>
            Occurs when the <see cref="T:GSF.Adapters.IAdapter"/> wants to provide a status update.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the <see cref="T:GSF.UpdateType"/>.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the update message.
            </remarks>
        </member>
        <member name="E:GSF.Adapters.IAdapter.ExecutionException">
            <summary>
            Occurs when the <see cref="T:GSF.Adapters.IAdapter"/> encounters an <see cref="T:System.Exception"/> during execution.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the text that describes the activity that was being performed by the <see cref="T:GSF.Adapters.IAdapter"/>.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the encountered <see cref="T:System.Exception"/>.
            </remarks>
        </member>
        <member name="P:GSF.Adapters.IAdapter.TypeName">
            <summary>
            Gets or sets the text representation of the <see cref="T:GSF.Adapters.IAdapter"/>'s <see cref="P:GSF.Adapters.IAdapter.TypeName"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.IAdapter.HostFile">
            <summary>
            Gets or sets the path to the file where the <see cref="T:GSF.Adapters.IAdapter"/> is housed.
            </summary>
        </member>
        <member name="P:GSF.Adapters.IAdapter.Domain">
            <summary>
            Gets the <see cref="T:System.AppDomain"/> in which the <see cref="T:GSF.Adapters.IAdapter"/> is executing.
            </summary>
        </member>
        <member name="P:GSF.Adapters.IAdapter.MemoryUsage">
            <summary>
            Gets the memory utilization of the <see cref="T:GSF.Adapters.IAdapter"/> in bytes if executing in a separate <see cref="T:System.AppDomain"/>, otherwise <see cref="F:System.Double.NaN"/>.
            </summary>
        </member>
        <member name="P:GSF.Adapters.IAdapter.ProcessorUsage">
            <summary>
            Gets the % processor utilization of the <see cref="T:GSF.Adapters.IAdapter"/> if executing in a separate <see cref="T:System.AppDomain"/> otherwise <see cref="F:System.Double.NaN"/>.
            </summary>
        </member>
        <member name="T:GSF.Adapters.NamespaceDoc">
            <summary>
            Contains classes that facilitate the development of adapter-driven architecture.
            </summary>
        </member>
        <member name="T:GSF.BigBinaryValue">
            <summary>
            Represents a big-endian ordered binary data sample stored as a byte array, 
            but implicitly castable to most common native types.
            </summary>
        </member>
        <member name="M:GSF.BigBinaryValue.#ctor(System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new big-endian ordered binary value from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.BigBinaryValue.#ctor(System.Byte[])">
            <summary>Creates a new big-endian ordered binary value from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.BigBinaryValue.#ctor(System.TypeCode,System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new big-endian ordered binary value from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
        </member>
        <member name="M:GSF.BigBinaryValue.#ctor(System.TypeCode,System.Byte[])">
            <summary>Creates a new big-endian ordered binary value from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
        </member>
        <member name="M:GSF.BigBinaryValue.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.ConvertToType(System.TypeCode)">
            <summary>
            Returns a <see cref="T:GSF.BigBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.
            </summary>
            <param name="typeCode">Desired <see cref="T:System.TypeCode"/> for destination value.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Unable to convert binary value to specified type.</exception>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Byte">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Byte"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Byte"/>.</param>
            <returns>A <see cref="T:System.Byte"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Byte)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Byte"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Byte"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Byte"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Int16">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Int16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Int16"/>.</param>
            <returns>A <see cref="T:System.Int16"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Int16)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int16"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int16"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Int16"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.UInt16">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.UInt16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.UInt16"/>.</param>
            <returns>A <see cref="T:System.UInt16"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.UInt16)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt16"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt16"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.UInt16"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~GSF.Int24">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:GSF.Int24"/>.</param>
            <returns>A <see cref="T:GSF.Int24"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.Int24)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:GSF.Int24"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~GSF.UInt24">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:GSF.UInt24"/>.</param>
            <returns>A <see cref="T:GSF.UInt24"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.UInt24)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:GSF.UInt24"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Int32">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Int32"/>.</param>
            <returns>A <see cref="T:System.Int32"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Int32)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int32"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int32"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Int32"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.UInt32">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.UInt32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.UInt32"/>.</param>
            <returns>A <see cref="T:System.UInt32"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.UInt32)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt32"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt32"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.UInt32"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Int64"/>.</param>
            <returns>A <see cref="T:System.Int64"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Int64)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int64"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int64"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Int64"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.UInt64">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.UInt64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.UInt64"/>.</param>
            <returns>A <see cref="T:System.UInt64"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.UInt64)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt64"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt64"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.UInt64"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Single">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Single"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Single"/>.</param>
            <returns>A <see cref="T:System.Single"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Single)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Single"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Single"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Single"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(GSF.BigBinaryValue)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.BigBinaryValue"/> to <see cref="T:System.Double"/>.
            </summary>
            <param name="value"><see cref="T:GSF.BigBinaryValue"/> to convert to <see cref="T:System.Double"/>.</param>
            <returns>A <see cref="T:System.Double"/> representation of <see cref="T:GSF.BigBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.BigBinaryValue.op_Implicit(System.Double)~GSF.BigBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Double"/> to <see cref="T:GSF.BigBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Double"/> to convert to <see cref="T:GSF.BigBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.BigBinaryValue"/> representation of <see cref="T:System.Double"/>.</returns>
        </member>
        <member name="T:GSF.BinaryCodedDecimal">
            <summary>
            Defines functions related to binary-coded decimals.
            </summary>
            <remarks>
            See <a href="http://en.wikipedia.org/wiki/Binary-coded_decimal">Binary-coded decimal</a> for details.
            </remarks>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Decode(System.Byte)">
            <summary>
            Gets binary value from binary-coded decimal.
            </summary>
            <param name="bcd">Binary-coded decimal value.</param>
            <returns>Standard binary representation of binary-coded decimal value.</returns>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Decode(System.UInt16)">
            <summary>
            Gets binary value from two-byte binary-coded decimal.
            </summary>
            <param name="bcd">Two-byte binary-coded decimal value.</param>
            <returns>Standard binary representation of binary-coded decimal value.</returns>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Decode(System.UInt32)">
            <summary>
            Gets binary value from four-byte binary-coded decimal.
            </summary>
            <param name="bcd">Four-byte binary-coded decimal value.</param>
            <returns>Standard binary representation of binary-coded decimal value.</returns>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Decode(System.UInt64)">
            <summary>
            Gets binary value from eight-byte binary-coded decimal.
            </summary>
            <param name="bcd">Eight-byte binary-coded decimal value.</param>
            <returns>Standard binary representation of binary-coded decimal value.</returns>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Encode(System.Byte)">
            <summary>
            Gets binary-coded decimal from binary value.
            </summary>
            <param name="value">Binary value.</param>
            <returns>Binary-coded decimal representation of standard binary value.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">A binary-coded decimal has a maximum value of 99 for a single byte.</exception>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Encode(System.UInt16)">
            <summary>
            Gets binary-coded decimal from binary value.
            </summary>
            <param name="value">Binary value.</param>
            <returns>Binary-coded decimal representation of standard binary value.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">A binary-coded decimal has a maximum value of 9,999 for two bytes.</exception>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Encode(System.UInt32)">
            <summary>
            Gets binary-coded decimal from binary value.
            </summary>
            <param name="value">Binary value.</param>
            <returns>Binary-coded decimal representation of standard binary value.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">A binary-coded decimal has a maximum value of 99,999,999 for four bytes.</exception>
        </member>
        <member name="M:GSF.BinaryCodedDecimal.Encode(System.UInt64)">
            <summary>
            Gets binary-coded decimal from binary value.
            </summary>
            <param name="value">Binary value.</param>
            <returns>Binary-coded decimal representation of standard binary value.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">A binary-coded decimal has a maximum value of 9,999,999,999,999,999 for eight bytes.</exception>
        </member>
        <member name="T:GSF.BinaryValueBase`1">
            <summary>
            Represents the base class for a binary data sample stored as a byte array, but implicitly castable to most common native types.
            </summary>
            <typeparam name="TEndianOrder">Type of <see cref="T:GSF.EndianOrder"/> class used to transpose byte order of derived implementation of <see cref="T:GSF.BinaryValueBase`1"/>.</typeparam>
        </member>
        <member name="M:GSF.BinaryValueBase`1.#ctor(System.TypeCode,System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new binary value from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
        </member>
        <member name="P:GSF.BinaryValueBase`1.TypeCode">
            <summary>
            Gets or sets <see cref="P:GSF.BinaryValueBase`1.TypeCode"/> that this binary data sample represents.
            </summary>
        </member>
        <member name="P:GSF.BinaryValueBase`1.Buffer">
            <summary>
            Gets or sets the binary representation of this data sample.
            </summary>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToByte">
            <summary>
            Returns a byte from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A byte from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToInt16">
            <summary>
            Returns a 16-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 16-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToUInt16">
            <summary>
            Returns a 16-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 16-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToInt24">
            <summary>
            Returns a 24-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 24-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToUInt24">
            <summary>
            Returns a 24-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 24-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToInt32">
            <summary>
            Returns a 32-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 32-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToUInt32">
            <summary>
            Returns a 32-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 32-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToInt64">
            <summary>
            Returns a 64-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 64-bit signed integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToUInt64">
            <summary>
            Returns a 64-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A 64-bit unsigned integer, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToSingle">
            <summary>
            Returns a single-precision floating point number, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A single-precision floating point number, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="M:GSF.BinaryValueBase`1.ToDouble">
            <summary>
            Returns a double-precision floating point number, accounting for <see cref="T:GSF.EndianOrder"/>, converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.
            </summary>
            <returns>A double-precision floating point number, accounting for <see cref="T:GSF.EndianOrder"/>,  converted from the <see cref="P:GSF.BinaryValueBase`1.Buffer"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Binary value buffer is too small to represent requested type.</exception>
        </member>
        <member name="F:GSF.BinaryValueBase`1.s_endianOrder">
            <summary>
            <see cref="T:GSF.EndianOrder"/> instance used to transpose byte order of derived implementation of <see cref="T:GSF.BinaryValueBase`1"/>.
            </summary>
        </member>
        <member name="T:GSF.Bits">
            <summary>
            Represents bits in a signed or unsigned integer value.
            </summary>
        </member>
        <member name="F:GSF.Bits.Nil">
            <summary>No bits set (0x0000000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit00">
            <summary>Bit 00 (0x0000000000000001)</summary>
        </member>
        <member name="F:GSF.Bits.Bit01">
            <summary>Bit 01 (0x0000000000000002)</summary>
        </member>
        <member name="F:GSF.Bits.Bit02">
            <summary>Bit 02 (0x0000000000000004)</summary>
        </member>
        <member name="F:GSF.Bits.Bit03">
            <summary>Bit 03 (0x0000000000000008)</summary>
        </member>
        <member name="F:GSF.Bits.Bit04">
            <summary>Bit 04 (0x0000000000000010)</summary>
        </member>
        <member name="F:GSF.Bits.Bit05">
            <summary>Bit 05 (0x0000000000000020)</summary>
        </member>
        <member name="F:GSF.Bits.Bit06">
            <summary>Bit 06 (0x0000000000000040)</summary>
        </member>
        <member name="F:GSF.Bits.Bit07">
            <summary>Bit 07 (0x0000000000000080)</summary>
        </member>
        <member name="F:GSF.Bits.Bit08">
            <summary>Bit 08 (0x0000000000000100)</summary>
        </member>
        <member name="F:GSF.Bits.Bit09">
            <summary>Bit 09 (0x0000000000000200)</summary>
        </member>
        <member name="F:GSF.Bits.Bit10">
            <summary>Bit 10 (0x0000000000000400)</summary>
        </member>
        <member name="F:GSF.Bits.Bit11">
            <summary>Bit 11 (0x0000000000000800)</summary>
        </member>
        <member name="F:GSF.Bits.Bit12">
            <summary>Bit 12 (0x0000000000001000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit13">
            <summary>Bit 13 (0x0000000000002000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit14">
            <summary>Bit 14 (0x0000000000004000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit15">
            <summary>Bit 15 (0x0000000000008000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit16">
            <summary>Bit 16 (0x0000000000010000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit17">
            <summary>Bit 17 (0x0000000000020000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit18">
            <summary>Bit 18 (0x0000000000040000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit19">
            <summary>Bit 19 (0x0000000000080000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit20">
            <summary>Bit 20 (0x0000000000100000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit21">
            <summary>Bit 21 (0x0000000000200000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit22">
            <summary>Bit 22 (0x0000000000400000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit23">
            <summary>Bit 23 (0x0000000000800000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit24">
            <summary>Bit 24 (0x0000000001000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit25">
            <summary>Bit 25 (0x0000000002000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit26">
            <summary>Bit 26 (0x0000000004000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit27">
            <summary>Bit 27 (0x0000000008000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit28">
            <summary>Bit 28 (0x0000000010000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit29">
            <summary>Bit 29 (0x0000000020000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit30">
            <summary>Bit 30 (0x0000000040000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit31">
            <summary>Bit 31 (0x0000000080000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit32">
            <summary>Bit 32 (0x0000000100000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit33">
            <summary>Bit 33 (0x0000000200000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit34">
            <summary>Bit 34 (0x0000000400000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit35">
            <summary>Bit 35 (0x0000000800000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit36">
            <summary>Bit 36 (0x0000001000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit37">
            <summary>Bit 37 (0x0000002000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit38">
            <summary>Bit 38 (0x0000004000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit39">
            <summary>Bit 39 (0x0000008000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit40">
            <summary>Bit 40 (0x0000010000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit41">
            <summary>Bit 41 (0x0000020000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit42">
            <summary>Bit 42 (0x0000040000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit43">
            <summary>Bit 43 (0x0000080000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit44">
            <summary>Bit 44 (0x0000100000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit45">
            <summary>Bit 45 (0x0000200000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit46">
            <summary>Bit 46 (0x0000400000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit47">
            <summary>Bit 47 (0x0000800000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit48">
            <summary>Bit 48 (0x0001000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit49">
            <summary>Bit 49 (0x0002000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit50">
            <summary>Bit 50 (0x0004000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit51">
            <summary>Bit 51 (0x0008000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit52">
            <summary>Bit 52 (0x0010000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit53">
            <summary>Bit 53 (0x0020000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit54">
            <summary>Bit 54 (0x0040000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit55">
            <summary>Bit 55 (0x0080000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit56">
            <summary>Bit 56 (0x0100000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit57">
            <summary>Bit 57 (0x0200000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit58">
            <summary>Bit 58 (0x0400000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit59">
            <summary>Bit 59 (0x0800000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit60">
            <summary>Bit 60 (0x1000000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit61">
            <summary>Bit 61 (0x2000000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit62">
            <summary>Bit 62 (0x4000000000000000)</summary>
        </member>
        <member name="F:GSF.Bits.Bit63">
            <summary>Bit 63 (0x8000000000000000)</summary>
        </member>
        <member name="T:GSF.BitExtensions">
            <summary>
            Defines extension methods related to bit operations.
            </summary>
        </member>
        <member name="M:GSF.BitExtensions.BitVal(System.Int32)">
            <summary>
            Gets the bit value for the specified bit index (0 - 63).
            </summary>
            <param name="bit">Bit index (0 - 63)</param>
            <returns>Value of the specified <paramref name="bit"/>.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Parameter must be between 0 and 63.</exception>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.SByte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.SByte,System.SByte)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Byte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Byte,System.Byte)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int16,System.Int16)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt16,System.UInt16)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(GSF.Int24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(GSF.Int24,GSF.Int24)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(GSF.UInt24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int32,System.Int32)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt32,System.UInt32)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.Int64,System.Int64)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to set.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetBits(System.UInt64,System.UInt64)">
            <summary>
            Returns value with specified <paramref name="bits"/> set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to set.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> set.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.SByte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.SByte,System.SByte)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Byte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Byte,System.Byte)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int16,System.Int16)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt16,System.UInt16)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(GSF.Int24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(GSF.Int24,GSF.Int24)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(GSF.UInt24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int32,System.Int32)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt32,System.UInt32)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.Int64,System.Int64)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to clear.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ClearBits(System.UInt64,System.UInt64)">
            <summary>
            Returns value with specified <paramref name="bits"/> cleared.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to clear.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> cleared.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.SByte,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.SByte,System.SByte)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.SByte,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.SByte,System.SByte,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Byte,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Byte,System.Byte)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Byte,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Byte,System.Byte,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int16,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int16,System.Int16)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int16,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int16,System.Int16,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt16,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt16,System.UInt16)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt16,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt16,System.UInt16,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.Int24,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.Int24,GSF.Int24)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.Int24,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.Int24,GSF.Int24,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.UInt24,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.UInt24,GSF.UInt24)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.UInt24,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(GSF.UInt24,GSF.UInt24,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int32,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int32,System.Int32)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int32,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int32,System.Int32,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt32,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt32,System.UInt32)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt32,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt32,System.UInt32,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int64,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int64,System.Int64)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int64,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.Int64,System.Int64,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt64,GSF.Bits)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt64,System.UInt64)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt64,GSF.Bits,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.CheckBits(System.UInt64,System.UInt64,System.Boolean)">
            <summary>
            Determines if specified <paramref name="bits"/> are set.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to check.</param>
            <param name="allBits">true to check if all <paramref name="bits"/> are set; otherwise false.</param>
            <returns>true if specified <paramref name="bits"/> are set in <paramref name="source"/> value; otherwise false.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.SByte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.SByte,System.SByte)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.SByte"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Byte,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Byte,System.Byte)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.Byte"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int16,System.Int16)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.Int16"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt16,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt16,System.UInt16)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.UInt16"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(GSF.Int24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(GSF.Int24,GSF.Int24)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:GSF.Int24"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(GSF.UInt24,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:GSF.UInt24"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int32,System.Int32)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.Int32"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt32,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt32,System.UInt32)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.UInt32"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.Int64,System.Int64)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.Int64"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt64,GSF.Bits)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits"><see cref="T:GSF.Bits"/> to toggle.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToggleBits(System.UInt64,System.UInt64)">
            <summary>
            Returns value with specified <paramref name="bits"/> toggled.
            </summary>
            <param name="source">Value source.</param>
            <param name="bits">Bit-mask of the bits to toggle.</param>
            <returns><see cref="T:System.UInt64"/> value with specified <paramref name="bits"/> toggled.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.SByte,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.SByte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.SByte,System.SByte)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.SByte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Byte,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.Byte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Byte,System.Byte)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.Byte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int16,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.Int16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int16,System.Int16)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.Int16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt16,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.UInt16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt16,System.UInt16)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.UInt16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(GSF.Int24,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(GSF.Int24,GSF.Int24)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(GSF.UInt24,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:GSF.UInt24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:GSF.UInt24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int32,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.Int32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int32,System.Int32)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.Int32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt32,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.UInt32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt32,System.UInt32)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.UInt32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int64,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.Int64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.Int64,System.Int64)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.Int64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt64,GSF.Bits)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <returns><see cref="T:System.UInt64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.GetMaskedValue(System.UInt64,System.UInt64)">
            <summary>
            Returns value stored in the bits represented by the specified <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <returns><see cref="T:System.UInt64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.SByte,GSF.Bits,System.SByte)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.SByte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.SByte,System.SByte,System.SByte)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.SByte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Byte,GSF.Bits,System.Byte)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Byte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Byte,System.Byte,System.Byte)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Byte"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int16,GSF.Bits,System.Int16)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int16,System.Int16,System.Int16)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt16,GSF.Bits,System.UInt16)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt16,System.UInt16,System.UInt16)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt16"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(GSF.Int24,GSF.Bits,GSF.Int24)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(GSF.Int24,GSF.Int24,GSF.Int24)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(GSF.UInt24,GSF.Bits,GSF.UInt24)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:GSF.UInt24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(GSF.UInt24,GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:GSF.UInt24"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int32,GSF.Bits,System.Int32)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int32,System.Int32,System.Int32)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt32,GSF.Bits,System.UInt32)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt32,System.UInt32,System.UInt32)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt32"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int64,GSF.Bits,System.Int64)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.Int64,System.Int64,System.Int64)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.Int64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt64,GSF.Bits,System.UInt64)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask"><see cref="T:GSF.Bits"/> that make-up the bit-mask.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.SetMaskedValue(System.UInt64,System.UInt64,System.UInt64)">
            <summary>
            Returns value after setting a new <paramref name="value"/> for the bits specified by the <paramref name="bitmask"/>.
            </summary>
            <param name="source">Value source.</param>
            <param name="bitmask">Bit-mask of the bits involved.</param>
            <param name="value">New value.</param>
            <returns><see cref="T:System.UInt64"/> value.</returns>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.Byte,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.SByte,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.Int16,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.UInt16,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(GSF.Int24,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(GSF.UInt24,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.Int32,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.UInt32,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.Int64,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotL(System.UInt64,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate right on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.Byte,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.SByte,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.Int16,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.UInt16,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(GSF.Int24,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(GSF.UInt24,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.Int32,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.UInt32,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.Int64,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.BitRotR(System.UInt64,System.Int32)">
            <summary>
            Performs right-wise bit-rotation for the specified number of rotations.
            </summary>
            <param name="value">Value used for bit-rotation.</param>
            <param name="rotations">Number of rotations to perform.</param>
            <returns>Value that has its bits rotated to the right the specified number of times.</returns>
            <remarks>
            Actual rotation direction is from a big-endian perspective - this is an artifact of the native
            .NET bit shift operators. As a result bits may actually appear to rotate left on little-endian
            architectures.
            </remarks>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.SByte)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.Byte)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.Int16)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.UInt16)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(GSF.Int24)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(GSF.UInt24)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.Int32)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.UInt32)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.Int64)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BitExtensions.ToBinaryString(System.UInt64)">
            <summary>
            Encodes <paramref name="value"/> as binary, i.e., a string of bit values (0 or 1).
            </summary>
            <param name="value">Integer value to encode.</param>
            <returns>Binary encoding of <paramref name="value"/>.</returns>
        </member>
        <member name="T:GSF.BitwiseCast">
            <summary>Defines specialized bitwise integer data type conversion functions</summary>
            <remarks>
            This class allows for proper bitwise casting between signed and unsigned integers. It may be most
            useful in languages that do not allow override of numerical overflow checks.  For example, C#
            provides an "unchecked" keyword to allow for bitwise casting, but VB.NET does not.
            </remarks>
        </member>
        <member name="M:GSF.BitwiseCast.ToInt16(System.UInt16)">
            <summary>Performs proper bitwise conversion between unsigned and signed value</summary>
            <remarks>
            <para>This function is useful because Convert.ToInt16 will throw an OverflowException for values greater than Int16.MaxValue.</para>
            <para>For example, this function correctly converts unsigned 16-bit integer 65535 (i.e., UInt16.MaxValue) to signed 16-bit integer -1.</para>
            </remarks>
            <param name="unsignedInt">Unsigned short that is passed in to be converted to a signed short.</param>
            <returns>The converted short value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToInt24(GSF.UInt24)">
            <summary>Performs proper bitwise conversion between unsigned and signed value</summary>
            <remarks>
            <para>This function is useful because CType(n, Int24) will throw an OverflowException for values greater than Int24.MaxValue.</para>
            <para>For example, this function correctly converts unsigned 24-bit integer 16777215 (i.e., UInt24.MaxValue) to signed 24-bit integer -1.</para>
            </remarks>
            <param name="unsignedInt">Unsigned UInt24 that is passed in to be converted to a signed Int24.</param>
            <returns>The Int24 value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToInt32(System.UInt32)">
            <summary>Performs proper bitwise conversion between unsigned and signed value</summary>
            <remarks>
            <para>This function is useful because Convert.ToInt32 will throw an OverflowException for values greater than Int32.MaxValue.</para>
            <para>For example, this function correctly converts unsigned 32-bit integer 4294967295 (i.e., UInt32.MaxValue) to signed 32-bit integer -1.</para>
            </remarks>
            <param name="unsignedInt">Unsigned integer that is passed in to be converted to a signed Int32.</param>
            <returns>The int value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToInt64(System.UInt64)">
            <summary>Performs proper bitwise conversion between unsigned and signed value</summary>
            <remarks>
            <para>This function is useful because Convert.ToInt64 will throw an OverflowException for values greater than Int64.MaxValue.</para>
            <para>For example, this function correctly converts unsigned 64-bit integer 18446744073709551615 (i.e., UInt64.MaxValue) to signed 64-bit integer -1.</para>
            </remarks>
            <param name="unsignedInt">Unsigned integer that is passed in to be converted to a long.</param>
            <returns>The long value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToUInt16(System.Int16)">
            <summary>Performs proper bitwise conversion between signed and unsigned value</summary>
            <remarks>
            <para>This function is useful because Convert.ToUInt16 will throw an OverflowException for values less than zero.</para>
            <para>For example, this function correctly converts signed 16-bit integer -32768 (i.e., Int16.MinValue) to unsigned 16-bit integer 32768.</para>
            </remarks>
            <param name="signedInt">Signed integer that is passed in to be converted to an unsigned short.</param>
            <returns>The unsigned short value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToUInt24(GSF.Int24)">
            <summary>Performs proper bitwise conversion between signed and unsigned value</summary>
            <remarks>
            <para>This function is useful because CType(n, UInt24) will throw an OverflowException for values less than zero.</para>
            <para>For example, this function correctly converts signed 24-bit integer -8388608 (i.e., Int24.MinValue) to unsigned 24-bit integer 8388608.</para>
            </remarks>
            <param name="signedInt">Signed integer that is passed in to be converted to an unsigned integer.</param>
            <returns>The unsigned integer value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToUInt32(System.Int32)">
            <summary>Performs proper bitwise conversion between signed and unsigned value</summary>
            <remarks>
            <para>This function is useful because Convert.ToUInt32 will throw an OverflowException for values less than zero.</para>
            <para>For example, this function correctly converts signed 32-bit integer -2147483648 (i.e., Int32.MinValue) to unsigned 32-bit integer 2147483648.</para>
            </remarks>
            <param name="signedInt">Signed integer that is passed in to be converted to an unsigned integer.</param>
            <returns>The unsigned integer value.</returns>
        </member>
        <member name="M:GSF.BitwiseCast.ToUInt64(System.Int64)">
            <summary>Performs proper bitwise conversion between signed and unsigned value</summary>
            <remarks>
            <para>This function is useful because Convert.ToUInt64 will throw an OverflowException for values less than zero.</para>
            <para>For example, this function correctly converts signed 64-bit integer -9223372036854775808 (i.e., Int64.MinValue) to unsigned 64-bit integer 9223372036854775808.</para>
            </remarks>
            <param name="signedInt">Signed integer that is passed in to be converted to an unsigned long.</param>
            <returns>The unsigned long value.</returns>
        </member>
        <member name="T:GSF.BufferPool">
            <summary>
            Represents a common buffer pool that can be used by an application.
            </summary>
            <remarks>
            <para>
            The buffer pool is statically created at application startup and is available for all components and classes
            within an application domain. Every time you need to use a buffer, you take one from the pool, use it, and
            return it to the pool when done.
            </para>
            <para>
            It is very important to return the buffer to the pool when you are finished using it. If you are using a buffer
            scoped within a method, make sure to use a try/finally so that you can take the buffer within the try and
            return the buffer within the finally. If you are using a buffer as a member scoped class field, make sure
            you use the standard dispose pattern and return the buffer in the <see cref="M:System.IDisposable.Dispose"/> method.
            </para>
            <para>
            Internally this class simply wraps a static instance of the WCF <see cref="T:System.ServiceModel.Channels.BufferManager"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.BufferPool.TakeBuffer(System.Int32)">
            <summary>
            Gets a buffer of at least the specified size from the pool.
            </summary>
            <param name="bufferSize">The size, in bytes, of the requested buffer.</param>
            <returns>A byte array that is the requested size of the buffer.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="bufferSize"/> cannot be less than zero.</exception>
        </member>
        <member name="M:GSF.BufferPool.ReturnBuffer(System.Byte[])">
            <summary>
            Returns a buffer to the pool.
            </summary>
            <param name="buffer">A reference to the buffer being returned.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> reference cannot be null.</exception>
            <exception cref="T:System.ArgumentException">Length of <paramref name="buffer"/> does not match the pool's buffer length property.</exception>
        </member>
        <member name="M:GSF.BufferPool.Clear">
            <summary>
            Releases all the buffers currently cached in the pool.
            </summary>
        </member>
        <member name="T:GSF.ByteEncoding">
            <summary>
            Defines a set of methods used to convert byte buffers to and from user presentable data formats.
            </summary>
        </member>
        <member name="T:GSF.ByteEncoding.HexadecimalEncoding">
            <summary>
            Handles conversion of byte buffers to and from a hexadecimal data format.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.HexadecimalEncoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="hexData">Encoded hexadecimal data string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.HexadecimalEncoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="T:GSF.ByteEncoding.DecimalEncoding">
            <summary>
            Handles conversion of byte buffers to and from a decimal data format.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.DecimalEncoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="decData">Encoded decimal data string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.DecimalEncoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="T:GSF.ByteEncoding.BinaryEncoding">
            <summary>
            Handles conversion of byte buffers to and from a binary (i.e., 0 and 1's) data format.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.BinaryEncoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="binaryData">Encoded binary data string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.BinaryEncoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="T:GSF.ByteEncoding.Base64Encoding">
            <summary>
            Handles conversion of byte buffers to and from a base64 data format.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.Base64Encoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="binaryData">Encoded binary data string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.Base64Encoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="T:GSF.ByteEncoding.ASCIIEncoding">
            <summary>
            Handles conversion of byte buffers to and from a ASCII data format.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.ASCIIEncoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="binaryData">Encoded binary data string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.ASCIIEncoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="F:GSF.ByteEncoding.NoSpacing">
            <summary>
            Constant used to specify that "no spacing" should be used for data conversion.
            </summary>
        </member>
        <member name="M:GSF.ByteEncoding.GetString(System.Byte[])">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <returns>String representation of byte array.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.GetString(System.Byte[],System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.GetString(System.Byte[],System.Int32,System.Int32)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.GetString(System.Byte[],System.Int32,System.Int32,System.Char)">
            <summary>Encodes given buffer into a user presentable representation.</summary>
            <param name="bytes">Bytes to encode.</param>
            <param name="offset">Offset into buffer to begin encoding.</param>
            <param name="length">Length of buffer to encode.</param>
            <param name="spacingCharacter">Spacing character to place between encoded bytes.</param>
            <returns>String of encoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.GetBytes(System.String)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="value">Encoded string to decode.</param>
            <returns>Decoded bytes.</returns>
        </member>
        <member name="M:GSF.ByteEncoding.GetBytes(System.String,System.Char)">
            <summary>Decodes given string back into a byte buffer.</summary>
            <param name="value">Encoded string to decode.</param>
            <param name="spacingCharacter">Original spacing character that was inserted between encoded bytes.</param>
            <returns>Decoded bytes</returns>
        </member>
        <member name="P:GSF.ByteEncoding.Hexadecimal">
            <summary>Handles encoding and decoding of a byte buffer into a hexadecimal-based presentation format.</summary>
        </member>
        <member name="P:GSF.ByteEncoding.Decimal">
            <summary>Handles encoding and decoding of a byte buffer into an integer-based presentation format.</summary>
        </member>
        <member name="P:GSF.ByteEncoding.BigEndianBinary">
            <summary>Handles encoding and decoding of a byte buffer into a big-endian binary (i.e., 0 and 1's) based
            presentation format.</summary>
            <remarks>
            Although endianness is typically used in the context of byte order (see <see cref="T:GSF.EndianOrder"/> to handle byte
            order swapping), this property allows you visualize "bits" in big-endian order, right-to-left. Note that bits are
            normally stored in the same order as their bytes.).
            </remarks>
        </member>
        <member name="P:GSF.ByteEncoding.LittleEndianBinary">
            <summary>Handles encoding and decoding of a byte buffer into a little-endian binary (i.e., 0 and 1's) based
            presentation format.</summary>
            <remarks>
            Although endianness is typically used in the context of byte order (see <see cref="T:GSF.EndianOrder"/> to handle byte
            order swapping), this property allows you visualize "bits" in little-endian order, left-to-right. Note that bits are
            normally stored in the same order as their bytes.
            </remarks>
        </member>
        <member name="P:GSF.ByteEncoding.Base64">
            <summary>Handles encoding and decoding of a byte buffer into a base64 presentation format.</summary>
        </member>
        <member name="P:GSF.ByteEncoding.ASCII">
            <summary>Handles encoding and decoding of a byte buffer into an ASCII character presentation format.</summary>
        </member>
        <member name="M:GSF.ByteEncoding.BytesToString(System.Byte[],System.Int32,System.Int32,System.Char,System.String)">
            <summary>Handles byte to string conversions for implementations that are available from Byte.ToString.</summary>
            <param name="bytes">Encoded string to decode.</param>
            <param name="offset">Offset into byte array to begin decoding string.</param>
            <param name="length">Number of bytes to decode starting at <paramref name="offset"/></param>
            <param name="spacingCharacter">Character to insert between each byte</param>
            <param name="format">String decoding format.</param>
            <returns>Decoded string</returns>
        </member>
        <member name="T:GSF.Collections.AsyncDoubleBufferedQueue`1">
            <summary>
            Combines <see cref="T:GSF.Collections.AsyncQueue`1"/> and <see cref="T:GSF.Collections.DoubleBufferedQueue`1"/> to provide
            a low-contention, double-buffered queue suitable for multiple-producer, single-consumer
            scenarios.
            </summary>
            <typeparam name="T">Type of items being queued.</typeparam>
        </member>
        <member name="E:GSF.Collections.AsyncDoubleBufferedQueue`1.ProcessException">
            <summary>
            Event that is raised if an exception is encountered while attempting to processing an item in the <see cref="T:GSF.Collections.AsyncDoubleBufferedQueue`1"/>.
            </summary>
            <remarks>
            Processing will not stop for any exceptions thrown by user processing function, but exceptions will be exposed through this event.
            </remarks>
        </member>
        <member name="M:GSF.Collections.AsyncDoubleBufferedQueue`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.AsyncDoubleBufferedQueue`1"/> class.
            </summary>
        </member>
        <member name="P:GSF.Collections.AsyncDoubleBufferedQueue`1.ProcessItemsFunction">
            <summary>
            Gets or sets item processing function.
            </summary>
        </member>
        <member name="P:GSF.Collections.AsyncDoubleBufferedQueue`1.Count">
            <summary>
            Gets the number of items in the queue.
            </summary>
        </member>
        <member name="M:GSF.Collections.AsyncDoubleBufferedQueue`1.Enqueue(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Enqueues a collection of items into the async double-buffered queue.
            </summary>
            <param name="items">The items to be queued.</param>
        </member>
        <member name="T:GSF.Collections.AsyncQueue`1">
            <summary>
            Creates a fast, light-weight asynchronous processing queue with very low contention.
            </summary>
            <typeparam name="T">Type of items to process.</typeparam>
        </member>
        <member name="E:GSF.Collections.AsyncQueue`1.ProcessException">
            <summary>
            Event that is raised if an exception is encountered while attempting to processing an item in the <see cref="T:GSF.Collections.AsyncQueue`1"/>.
            </summary>
            <remarks>
            Processing will not stop for any exceptions thrown by user processing function, but exceptions will be exposed through this event.
            </remarks>
        </member>
        <member name="M:GSF.Collections.AsyncQueue`1.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Collections.AsyncQueue`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.AsyncQueue`1.#ctor(GSF.Threading.SynchronizedOperationType)">
            <summary>
            Creates a new <see cref="T:GSF.Collections.AsyncQueue`1"/>.
            </summary>
            <param name="synchronizedOperationType">The type of synchronized operation to use to process items in the queue.</param>
        </member>
        <member name="P:GSF.Collections.AsyncQueue`1.Count">
            <summary>
            Gets the total number of items currently in the queue.
            </summary>
        </member>
        <member name="P:GSF.Collections.AsyncQueue`1.ProcessItemFunction">
            <summary>
            Gets or sets item processing function.
            </summary>
        </member>
        <member name="P:GSF.Collections.AsyncQueue`1.Enabled">
            <summary>
            Gets or sets flag that enables or disables processing.
            </summary>
        </member>
        <member name="M:GSF.Collections.AsyncQueue`1.Enqueue(`0)">
            <summary>
            Enqueues an item for processing.
            </summary>
            <param name="item">Item to be queued for processing.</param>
        </member>
        <member name="T:GSF.Collections.CollectionExtensions">
            <summary>
            Defines extension functions related to manipulation of arrays and collections.
            </summary>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetRow``1(``0[0:,0:],System.Int32)">
            <summary>
            Gets a row of data out of a 2-dimensional array.
            </summary>
            <typeparam name="T">Type of array.</typeparam>
            <param name="source">Source array.</param>
            <param name="rowIndex">Row index, i.e., dimension zero value, to retrieve.</param>
            <returns>Values from specified <paramref name="rowIndex"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetColumn``1(``0[0:,0:],System.Int32)">
            <summary>
            Gets a column of data out of a 2-dimensional array.
            </summary>
            <typeparam name="T">Type of array.</typeparam>
            <param name="source">Source array.</param>
            <param name="columnIndex">Column index, i.e., dimension one value, to retrieve.</param>
            <returns>Values from specified <paramref name="columnIndex"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToPagedList``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Int32,System.Int32)">
            <summary>
            Gets a <see cref="T:GSF.Collections.PagedList`1"/> to paginate <paramref name="source"/> enumeration for
            a given <paramref name="page"/> and specified <paramref name="pageSize"/>.
            </summary>
            <typeparam name="T">Type of <see cref="T:System.Collections.Generic.IEnumerable`1"/> to paginate.</typeparam>
            <param name="source">Source enumeration to paginate.</param>
            <param name="page">Page number (1-based).</param>
            <param name="pageSize">Page size.</param>
            <param name="count">Total records in source if known.</param>
            <returns>Set of items on a given <paramref name="page"/> for specified <paramref name="pageSize"/>.</returns>
            <remarks>
            If count is known or can be calculated early, specify the value in the
            <paramref name="count"/> parameter as an optimization to prevent a full
            enumeration on <paramref name="source"/> to get a count.
            </remarks>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Merge``3(``0,System.Collections.Generic.IDictionary{``1,``2}[])">
            <summary>
            Merges elements of multiple dictionaries into a single dictionary with no duplicate key values overwritten.
            </summary>
            <typeparam name="T">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> to merge.</typeparam>
            <typeparam name="TKey">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> keys.</typeparam>
            <typeparam name="TValue">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> values.</typeparam>
            <param name="source">Source dictionary to merge with another dictionary.</param>
            <param name="others">Other dictionaries to merge with source dictionary.</param>
            <returns>
            A merged collection of all unique dictionary elements, all <paramref name="others"/> merged left to the source with no duplicate
            key values overwritten (i.e., first encountered key value pair is the one that remains in the returned merged dictionary).
            </returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Merge``3(``0,System.Boolean,System.Collections.Generic.IDictionary{``1,``2}[])">
            <summary>
            Merges elements of multiple dictionaries into a single dictionary.
            </summary>
            <typeparam name="T">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> to merge.</typeparam>
            <typeparam name="TKey">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> keys.</typeparam>
            <typeparam name="TValue">Type of <see cref="T:System.Collections.Generic.IDictionary`2"/> values.</typeparam>
            <param name="source">Source dictionary to merge with another dictionary.</param>
            <param name="overwriteExisting">Set to <c>true</c> to overwrite duplicate key values as they are encountered.</param>
            <param name="others">Other dictionaries to merge with source dictionary.</param>
            <returns>A merged collection of all unique dictionary elements, all <paramref name="others"/> merged left to the source.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetOrDefault``2(System.Collections.Generic.IDictionary{``0,``1},``0)">
            <summary>
            Attempts to get the value for the given key and returns the default value instead if the key does not exist in the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to check for the given key.</param>
            <param name="key">The key to be checked for the existence of a value.</param>
            <returns>The value of the key in the dictionary or the default value if no such value exists.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetOrDefault``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1})">
            <summary>
            Attempts to get the value for the given key and returns the default value instead if the key does not exist in the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to check for the given key.</param>
            <param name="key">The key to be checked for the existence of a value.</param>
            <param name="defaultValueFactory">The function used to generate the default value if no value exists for the given key.</param>
            <returns>The value of the key in the dictionary or the default value if no such value exists.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetOrAdd``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added to the dictionary if it does not already exist.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>The value of the key in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetOrAdd``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1)">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added to the dictionary if it does not already exist.</param>
            <param name="value">The value to assign to the key if the key does not already exist.</param>
            <returns>The value of the key in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1},System.Func{``0,``1,``1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key already exists.
            </summary>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValueFactory">The function used to generate a value for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on the key's existing value</param>
            <returns>The new value for the key. This will be either be the result of addValueFactory (if the key was absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1,System.Func{``0,``1,``1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key already exists.
            </summary>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValue">The value to be added for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on the key's existing value</param>
            <returns>The new value for the key. This will be either be the result of addValueFactory (if the key was absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1})">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key already exists.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added or updated.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>The value of the key in the dictionary after updating.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AddOrUpdate``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1)">
            <summary>
            Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key already exists.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
            <param name="dictionary">The dictionary to add the key/value pair to if the key does not already exist.</param>
            <param name="key">The key to be added or updated.</param>
            <param name="value">The value to be assigned to the key.</param>
            <returns>The value of the key in the dictionary after updating.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToDictionary(System.Collections.Specialized.NameValueCollection)">
            <summary>
            Converts a name/value collection to a dictionary.
            </summary>
            <param name="collection">Name/value collection.</param>
            <returns>Dictionary converted from a name/value collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Any(System.Collections.BitArray,System.Boolean)">
            <summary>
            Returns <c>true</c> if any item in <see cref="T:System.Collections.BitArray"/> is equal to <paramref name="value"/>.
            </summary>
            <param name="source">Source <see cref="T:System.Collections.BitArray"/>.</param>
            <param name="value"><see cref="T:System.Boolean"/> value to test for.</param>
            <returns><c>true</c> if any item in <see cref="T:System.Collections.BitArray"/> is equal to <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.All(System.Collections.BitArray,System.Boolean)">
            <summary>
            Returns <c>true</c> if all items in <see cref="T:System.Collections.BitArray"/> are equal to <paramref name="value"/>.
            </summary>
            <param name="source">Source <see cref="T:System.Collections.BitArray"/>.</param>
            <param name="value"><see cref="T:System.Boolean"/> value to test for.</param>
            <returns><c>true</c> if all items in <see cref="T:System.Collections.BitArray"/> are equal to <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AllParallel``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.Threading.Tasks.ParallelOptions)">
            <summary>
            Determines whether all elements of a sequence satisfy a condition with each item being tested in parallel.
            </summary>
            <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements to apply the predicate to.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <param name="options">Any <see cref="T:System.Threading.Tasks.ParallelOptions"/> to apply.</param>
            <returns>
            <c>true</c> if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, <c>false</c>.
            </returns>
            <typeparam name="TSource">The type of the elements of <paramref name="source" />.</typeparam>
            <exception cref="T:System.ArgumentNullException"><paramref name="source" /> or <paramref name="predicate" /> is <c>null</c>.</exception>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Median``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets the median item(s) from an enumeration, i.e., one return item for odd lengths, two for even lengths.
            </summary>
            <remarks>
            If enumeration length is even, two items will be returned representing the items in the middle of the set;
            otherwise, if the enumeration length is odd, one item will be returned from exactly the middle of the set.
            </remarks>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/></typeparam>
            <param name="source">An enumeration over which to find the median element(s).</param>
            <returns>The median item(s) from an enumeration, or <c>null</c> if <paramref name="source"/> is <c>null</c>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Middle``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets the middle item(s) from an enumeration, i.e., one return item for odd lengths, two for even lengths.
            </summary>
            <remarks>
            If enumeration length is even, two items will be returned representing the items in the middle of the set;
            otherwise, if the enumeration length is odd, one item will be returned from exactly the middle of the set.
            </remarks>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/></typeparam>
            <param name="source">An enumeration over which to find the middle element(s).</param>
            <returns>The middle item(s) from an enumeration, or <c>null</c> if <paramref name="source"/> is <c>null</c>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MajorityBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Boolean,System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Returns the majority value in the collection, or default type value if no item represents the majority.
            </summary>
            <typeparam name="TSource"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The majority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MajorityBy``2(System.Collections.Generic.IEnumerable{``0},``0,System.Func{``0,``1},System.Boolean,System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Returns the majority value in the collection, or <paramref name="defaultValue"/> if no item represents the majority.
            </summary>
            <typeparam name="TSource"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="defaultValue">Default value to return if no item represents the majority.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The majority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Majority``1(System.Collections.Generic.IEnumerable{``0},System.Boolean,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Returns the majority value in the collection, or default type value if no item represents the majority.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The majority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Majority``1(System.Collections.Generic.IEnumerable{``0},``0,System.Boolean,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Returns the majority value in the collection, or <paramref name="defaultValue"/> if no item represents the majority.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="defaultValue">Default value to return if no item represents the majority.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The majority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MinorityBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Boolean,System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Returns the minority value in the collection, or default type value if no item represents the majority.
            </summary>
            <typeparam name="TSource"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The minority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MinorityBy``2(System.Collections.Generic.IEnumerable{``0},``0,System.Func{``0,``1},System.Boolean,System.Collections.Generic.IEqualityComparer{``1})">
            <summary>
            Returns the minority value in the collection, or <paramref name="defaultValue"/> if no item represents the majority.
            </summary>
            <typeparam name="TSource"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration over which to find the majority element.</param>
            <param name="defaultValue">Default value to return if no item represents the majority.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The majority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Minority``1(System.Collections.Generic.IEnumerable{``0},System.Boolean,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Returns the minority value in the collection, or default type value if no item represents the minority.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <param name="source">An enumeration over which to find the minority element.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The minority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Minority``1(System.Collections.Generic.IEnumerable{``0},``0,System.Boolean,System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Returns the minority value in the collection, or <paramref name="defaultValue"/> if no item represents the minority.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="source"/>.</typeparam>
            <param name="source">An enumeration over which to find the minority element.</param>
            <param name="defaultValue">Default value to return if no item represents the minority.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or <c>null</c> to use the default comparer for the type of the key.</param>
            <returns>The minority value in the collection.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.AddRange``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Adds the specified <paramref name="items"/> to the <paramref name="collection"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="collection"/>.</typeparam>
            <param name="collection">The collection to which the <paramref name="items"/> are to be added.</param>
            <param name="items">The elements to be added to the <paramref name="collection"/>.</param>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.UpdateRange``1(System.Collections.Generic.IList{``0},System.Int32,System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Updates <paramref name="collection"/> starting at the <paramref name="index"/> with the specified <paramref name="items"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="collection"/>.</typeparam>
            <param name="collection">The collection whose elements are to be updated with the specified <paramref name="items"/>.</param>
            <param name="index">The zero-based index in the <paramref name="collection"/> at which elements are to be updated.</param>
            <param name="items">The elements that will replace the <paramref name="collection"/> elements starting at the <paramref name="index"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="index"/> is present in the <paramref name="collection"/>.</exception>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.GetRange``1(System.Collections.Generic.IList{``0},System.Int32,System.Int32)">
            <summary>
            Returns elements in the specified range from the <paramref name="collection"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of elements in the <paramref name="collection"/>.</typeparam>
            <param name="collection">The collection from which elements are to be retrieved.</param>
            <param name="index">The 0-based index position in the <paramref name="collection"/> from which elements are to be retrieved.</param>
            <param name="count">The number of elements to be retrieved from the <paramref name="collection"/> starting at the <paramref name="index"/>.</param>
            <returns>An <see cref="T:System.Collections.Generic.IList`1"/> object.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.IndexOf``1(System.Collections.Generic.IList{``0},System.Func{``0,System.Boolean})">
            <summary>
            Returns the index of the first element of the sequence that satisfies a condition or <c>-1</c> if no such element is found.
            </summary>
            <param name="source">A <see cref="T:System.Collections.Generic.IList`1"/> to find an index in.</param>
            <param name="predicate">A function to test each element for a condition.</param>
            <returns>Index of the first element in <paramref name="source"/> that matches the specified <paramref name="predicate"/>; otherwise, <c>-1</c>.</returns>
            <typeparam name="T">The type of the elements of <paramref name="source"/>.</typeparam>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Copy``1(``0[],System.Int32,System.Int32)">
            <summary>
            Returns a copy of the <see cref="T:System.Array"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the <see cref="T:System.Array"/> to be copied.</typeparam>
            <param name="source">The source <see cref="T:System.Array"/> whose elements are to be copied.</param>
            <param name="startIndex">The source array index from where the elements are to be copied.</param>
            <param name="length">The number of elements to be copied starting from the startIndex.</param>
            <returns>An <see cref="T:System.Array"/> of elements copied from the specified portion of the source <see cref="T:System.Array"/>.</returns>
            <remarks>
            Returned <see cref="T:System.Array"/> will be extended as needed to make it the specified <paramref name="length"/>, but
            it will never be less than the source <see cref="T:System.Array"/> length - <paramref name="startIndex"/>.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of valid indexes for the source <see cref="T:System.Array"/> -or-
            <paramref name="length"/> is less than 0.
            </exception>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MinBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>Selects the smallest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type of the objects to be selected from.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration that contains the objects to be selected from.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <returns>Returns the smallest item from the enumeration.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Min``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,System.Int32})">
            <summary>Returns the smallest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">An enumeration that is compared against.</param>
            <param name="comparer">A delegate that takes two generic types to compare, and returns an integer based on the comparison.</param>
            <returns>Returns a generic type.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Min``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
            <summary>Returns the smallest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">An enumeration that is compared against.</param>
            <param name="comparer">A comparer object.</param>
            <returns>Returns a generic type.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.MaxBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>Selects the largest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type of the objects to be selected from.</typeparam>
            <typeparam name="TKey">The generic type of the objects to be compared.</typeparam>
            <param name="source">An enumeration that contains the objects to be selected from.</param>
            <param name="keySelector">A delegate that takes an object and produces the key for comparison.</param>
            <returns>Returns the largest item from the enumeration.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Max``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``0,System.Int32})">
            <summary>Returns the largest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">An enumeration that is compared against.</param>
            <param name="comparer">A delegate that takes two generic types to compare, and returns an integer based on the comparison.</param>
            <returns>Returns a generic type.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Max``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IComparer{``0})">
            <summary>Returns the largest item from the enumeration.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">An enumeration that is compared against.</param>
            <param name="comparer">A comparer object.</param>
            <returns>Returns a generic type.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.DistinctBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1},System.Boolean)">
            <summary>
            Returns only the elements whose keys are distinct.
            </summary>
            <typeparam name="TSource">The type of the source objects in the collection.</typeparam>
            <typeparam name="TKey">The type of the keys to be compared.</typeparam>
            <param name="source">The collection of source objects.</param>
            <param name="keySelector">The function used to access the keys of the source objects.</param>
            <param name="forwardSearch"><c>true</c> to search forward in <paramref name="source"/>; otherwise <c>false</c> to search backwards.</param>
            <returns>The elements from <paramref name="source"/> whose keys are distinct.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToDelimitedString``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>Converts an enumeration to a string, using the default delimiter ("|") that can later be
            converted back to a list using LoadDelimitedString.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">The source object to be converted into a delimited string.</param>
            <returns>Returns a <see cref="T:System.String"/> that is result of combining all elements in the list delimited by the '|' character.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToDelimitedString``1(System.Collections.Generic.IEnumerable{``0},System.Char)">
            <summary>Converts an enumeration to a string that can later be converted back to a list using
            LoadDelimitedString.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">The source object to be converted into a delimited string.</param>
            <param name="delimiter">The delimiting character used.</param>
            <returns>Returns a <see cref="T:System.String"/> that is result of combining all elements in the list delimited by <paramref name="delimiter"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToDelimitedString``1(System.Collections.Generic.IEnumerable{``0},System.String)">
            <summary>Converts an enumeration to a string that can later be converted back to a list using
            LoadDelimitedString.</summary>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="source">The source object to be converted into a delimited string.</param>
            <param name="delimiter">The delimiting <see cref="T:System.String"/> used.</param>
            <returns>Returns a <see cref="T:System.String"/> that is result of combining all elements in the list delimited by <paramref name="delimiter"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.ToDelimitedString``2(System.Collections.Generic.IEnumerable{``0},``1)">
            <summary>Converts an enumeration to a string that can later be converted back to a list using
            LoadDelimitedString.</summary>
            <typeparam name="TSource">The generic enumeration type used.</typeparam>
            <typeparam name="TDelimiter">The generic delimiter type used.</typeparam>
            <param name="source">The source object to be converted into a delimited string.</param>
            <param name="delimiter">The delimiter of type TDelimiter used.</param>
            <returns>Returns a <see cref="T:System.String"/> that is result of combining all elements in the list delimited by <paramref name="delimiter"/>.</returns>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.LoadDelimitedString``1(System.Collections.Generic.IList{``0},System.String,System.Func{System.String,``0})">
            <summary>Appends items parsed from delimited string, created with ToDelimitedString, using the default
            delimiter ("|") into the given list.</summary>
            <remarks>Items that are converted are added to list. The list is not cleared in advance.</remarks>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="destination">The list we are adding items to.</param>
            <param name="delimitedString">The delimited string to parse for items.</param>
            <param name="convertFromString">Delegate that takes one parameter and converts from string to type TSource.</param>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.LoadDelimitedString``1(System.Collections.Generic.IList{``0},System.String,System.Char,System.Func{System.String,``0})">
            <summary>Appends items parsed from delimited string, created with ToDelimitedString, into the given list.</summary>
            <remarks>Items that are converted are added to list. The list is not cleared in advance.</remarks>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="destination">The list we are adding items to.</param>
            <param name="delimitedString">The delimited string to parse for items.</param>
            <param name="delimiter">The <see cref="T:System.Char"/> value to look for in the <paramref name="delimitedString"/> as the delimiter.</param>
            <param name="convertFromString">Delegate that takes one parameter and converts from string to type TSource.</param>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.LoadDelimitedString``1(System.Collections.Generic.IList{``0},System.String,System.String[],System.Func{System.String,``0})">
            <summary>Appends items parsed from delimited string, created with ToDelimitedString, into the given list.</summary>
            <remarks>Items that are converted are added to list. The list is not cleared in advance.</remarks>
            <typeparam name="TSource">The generic type used.</typeparam>
            <param name="destination">The list we are adding items to.</param>
            <param name="delimitedString">The delimited string to parse for items.</param>
            <param name="delimiters">An array of delimiters to look for in the <paramref name="delimitedString"/> as the delimiter.</param>
            <param name="convertFromString">Delegate that takes a <see cref="T:System.String"/> and converts to type TSource.</param>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Scramble``1(System.Collections.Generic.IList{``0})">
            <summary>
            Rearranges all the elements in the list into a highly-random order.
            </summary>
            <typeparam name="TSource">The generic type of the list.</typeparam>
            <param name="source">The input list of generic types to scramble.</param>
            <remarks>This function uses a cryptographically strong random number generator to perform the scramble.</remarks>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Scramble``1(System.Collections.Generic.IList{``0},System.Int32)">
            <summary>
            Rearranges all the elements in the list into a repeatable pseudo-random order.
            </summary>
            <param name="source">The input list of generic types to scramble.</param>
            <param name="seed">A number used to calculate a starting value for the pseudo-random number sequence.</param>
            <typeparam name="TSource">The generic type of the list.</typeparam>
            <remarks>This function uses the <see cref="T:System.Random"/> generator to perform the scramble using a sequence that is repeatable.</remarks>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.Unscramble``1(System.Collections.Generic.IList{``0},System.Int32)">
            <summary>
            Rearranges all the elements in the list previously scrambled with <see cref="M:GSF.Collections.CollectionExtensions.Scramble``1(System.Collections.Generic.IList{``0},System.Int32)"/> back into their original order.
            </summary>
            <param name="source">The input list of generic types to unscramble.</param>
            <param name="seed">The same number used in <see cref="M:GSF.Collections.CollectionExtensions.Scramble``1(System.Collections.Generic.IList{``0},System.Int32)"/> call to scramble original list.</param>
            <typeparam name="TSource">The generic type of the list.</typeparam>
            <remarks>This function uses the <see cref="T:System.Random"/> generator to perform the unscramble using a sequence that is repeatable.</remarks>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.CompareTo``1(``0[],``0[],System.Boolean)">
            <summary>Compares two arrays.</summary>
            <param name="array1">The first type array to compare to.</param>
            <param name="array2">The second type array to compare against.</param>
            <param name="orderIsImportant"><c>true</c> if order of elements should be considered for equality; otherwise, <c>false</c>.</param>
            <returns>An <see cref="T:System.Int32"/> which returns 0 if they are equal, 1 if <paramref name="array1"/> is larger, or -1 if <paramref name="array2"/> is larger.</returns>
            <typeparam name="TSource">The generic type of the array.</typeparam>
            <exception cref="T:System.ArgumentException">Cannot compare multidimensional arrays.</exception>
        </member>
        <member name="M:GSF.Collections.CollectionExtensions.CompareTo(System.Array,System.Array,System.Collections.IComparer,System.Boolean)">
            <summary>Compares two arrays.</summary>
            <param name="array1">The first <see cref="T:System.Array"/> to compare to.</param>
            <param name="array2">The second <see cref="T:System.Array"/> to compare against.</param>
            <param name="comparer">An interface <see cref="T:System.Collections.IComparer"/> that exposes a method to compare the two arrays.</param>
            <param name="orderIsImportant"><c>true</c> if order of elements should be considered for equality; otherwise, <c>false</c>.</param>
            <returns>An <see cref="T:System.Int32"/> which returns 0 if they are equal, 1 if <paramref name="array1"/> is larger, or -1 if <paramref name="array2"/> is larger.</returns>
            <remarks>This is a default comparer to make arrays comparable.</remarks>
            <exception cref="T:System.ArgumentException">Cannot compare multidimensional arrays.</exception>
        </member>
        <member name="T:GSF.Collections.DictionaryList`2">
            <summary>
            Represents a sorted dictionary style list that supports <see cref="T:System.Collections.IList"/>.
            </summary>
            <remarks>
            <para>
            Have you ever needed the quick look-up feature on a Dictionary (e.g., Hashtable), but ended
            up missing the indexed or sequential access like you have in a list? You may have wondered why
            the .NET dictionary class doesn’t implement the IList interface which allows this. The reason
            IDictionary implementations do not normally implement the IList interface is because of
            ambiguity that is caused when implementing an integer key. For example, if you created a
            dictionary style class with a key of type "Integer" that actually did implement IList(Of T),
            you would not be able to access items in the IList interface by index without "casting" the
            class as IList. This is because the Item property in both the IDictionary and IList would have
            the same parameters. Note, however, that generics in .NET 2.0 gladly allow a class to implement
            both IDictionary and IList (even specifying as Integer as the key) so long you as you are happy
            knowing that the compiler will choose if you access your items by index or key. Given that
            caveat, there are many times when you need a dictionary style collection but also desire an
            IList implementation so the class can be used in other ways without conversion. As a result of
            these needs, we’ve added a generic class to code library called a DictionaryList -- which is
            essentially just a sorted dictionary style list (i.e., SortedList) that implements the
            IList(Of T) interface (specifically as IList(Of KeyValuePair(Of TKey, TValue))). You will find
            all of your convenient expected methods related to both dictionaries and lists; that is, you can
            look-up items by key or by index. The class works perfectly for any non-Integer based key
            (e.g., String, custom class, etc.) -- note that specifying an Integer as the key for the class
            won’t cause an error, but it also will not be very useful. However, you can specify the key for
            your DictionaryList as a "Long," which allows you to use long integers for keyed look-ups and
            regular integers for indexed access--the best of both worlds! In summary, I would not change
            your programming habits to start using this for "my collection for everything," as nothing comes
            for free; however, if you have a need for a "hybrid" collection class, this fits the bill.
            </para>
            <para>
            Important note about using an "Integer" as the key for this class: IDictionary implementations
            do not normally implement the IList interface because of ambiguity that is caused when implementing
            an integer key. For example, if you implement this class with a key of type "Integer" you will not
            be able to access items in the queue by index without "casting" the class as IList. This is because
            the Item property in both the IDictionary and IList would have the same parameters.
            </para>
            <para>
            Note that prior to the addition of Generics in .NET, the class that performed a similar function
            was the "NameObjectCollectionBase" in the System.Collections.Specialized namespace which
            specifically allowed item access by either key or by index.  This class is similar in function
            but instead is a generic class allowing use with any strongly typed key or value. 
            </para>
            </remarks>
            <typeparam name="TKey">Generic key type.</typeparam>
            <typeparam name="TValue">Generic value type.</typeparam>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.DictionaryList`2"/> is read-only.
            </summary>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <returns>The element at the specified index.</returns>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <param name="key">The key of the element to get or set.</param>
            <returns>The element with the specified key.</returns>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.Keys">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.DictionaryList`2.Values">
            <summary>
            Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Adds an item to the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="item">The key value pair item to add.</param>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.DictionaryList`2"/> contains a specific value.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
            <returns>true if item is found in the <see cref="T:GSF.Collections.DictionaryList`2"/>; otherwise, false</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:GSF.Collections.DictionaryList`2"/> to an <see cref="T:System.Array"/>, starting at a particular index.
            </summary>
            <param name="array">
            The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements 
            copied from <see cref="T:GSF.Collections.DictionaryList`2"/>. The array must 
            have zero-based indexing.
            </param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
            <returns>
            true if item was successfully removed from the <see cref="T:GSF.Collections.DictionaryList`2"/>; 
            otherwise, false. This method also returns false if item is not found in 
            the original <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.IndexOf(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines the index of a specific item in the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
            <returns>The index of item if found in the list; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:GSF.Collections.DictionaryList`2"/> item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Insert(System.Int32,System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Inserts an item to the <see cref="T:GSF.Collections.DictionaryList`2"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.DictionaryList`2"/> contains an element with the specified key.
            </summary>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
            <returns>true if the <see cref="T:GSF.Collections.DictionaryList`2"/> contains an element with the key; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.ContainsValue(`1)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.DictionaryList`2"/> contains a specific value.
            </summary>
            <param name="value">The value to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>. The value can be null for reference types.</param>
            <returns>true if the <see cref="T:GSF.Collections.DictionaryList`2"/> contains an element with the specified value; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.IndexOfKey(`0)">
            <summary>
            Searches for the specified key and returns the zero-based index within the entire <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>.</param>
            <returns>The zero-based index of key within the entire <see cref="T:GSF.Collections.DictionaryList`2"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.IndexOfValue(`1)">
            <summary>
            Searches for the specified value and returns the zero-based index of the first occurrence within the entire <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="value">The value to locate in the <see cref="T:GSF.Collections.DictionaryList`2"/>. The value can be null for reference types.</param>
            <returns>The zero-based index of the first occurrence of value within the entire <see cref="T:GSF.Collections.DictionaryList`2"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:GSF.Collections.DictionaryList`2"/>.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns>
            true if the element is successfully removed; otherwise, false. This method also returns false if key
            was not found in the original <see cref="T:GSF.Collections.DictionaryList`2"/>.</returns>
        </member>
        <member name="M:GSF.Collections.DictionaryList`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <param name="key">The key whose value to get.</param>
            <param name="value">
            When this method returns, the value associated with the specified key, if 
            the key is found; otherwise, the default value for the type of the value
            parameter. This parameter is passed uninitialized.</param>
            <returns>
            true if the <see cref="T:GSF.Collections.DictionaryList`2"/> contains an element with the specified key; otherwise, false.</returns>
        </member>
        <member name="T:GSF.Collections.DoubleBufferedQueue`1">
            <summary>
            A thread-safe double-buffered queue that allows for low-contention
            item processing in single-producer, single-consumer scenarios.
            </summary>
            <typeparam name="T">Type of items being queued.</typeparam>
            <remarks>
            It is not safe to use this class with multiple consumer threads.
            The <see cref="M:GSF.Collections.DoubleBufferedQueue`1.Dequeue"/> method must be called by one thread at
            a time, and the consumer must not access a list returned by Dequeue
            after its next call to Dequeue.
            </remarks>
        </member>
        <member name="E:GSF.Collections.DoubleBufferedQueue`1.ProcessException">
            <summary>
            Event that is raised if an exception is encountered while attempting to processing an item in the <see cref="T:GSF.Collections.AsyncQueue`1"/>.
            </summary>
            <remarks>
            Processing will not stop for any exceptions thrown by user processing function, but exceptions will be exposed through this event.
            </remarks>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueue`1"/> class.
            </summary>
        </member>
        <member name="P:GSF.Collections.DoubleBufferedQueue`1.ProcessItemsFunction">
            <summary>
            Gets or sets item processing function.
            </summary>
        </member>
        <member name="P:GSF.Collections.DoubleBufferedQueue`1.Count">
            <summary>
            Gets the current number of items in the queue.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.Enqueue(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Enqueues a collection of items into the double-buffered queue.
            </summary>
            <param name="items">The collection of items to be enqueued.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.Dequeue">
            <summary>
            Dequeues a collection of items from the queue.
            </summary>
            <returns>
            A collection of items that have previously been enqueued,
            or no items if none have been enqueued since last dequeue.
            </returns>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.Clear">
            <summary>
            Empties the producer's buffer so that the
            items can no longer be consumed by the consumer.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.TryEnqueue(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Attempts to enqueue a collection of items into the double-buffered queue.
            </summary>
            <param name="items">The collection of items to be enqueued.</param>
            <returns>
            True if the items were successfully enqueued; false otherwise.
            </returns>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.TryDequeue(System.Collections.Generic.IList{`0}@)">
            <summary>
            Attempts to dequeue a collection of items from the queue and
            returns the number of items left in the queue after dequeuing.
            </summary>
            <param name="items">The items that were dequeued.</param>
            <returns>
            The number of items left in the queue after
            dequeuing as many items as possible.
            </returns>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueue`1.TryClear">
            <summary>
            Attempts to enqueue a collection of items into the double-buffered queue.
            </summary>
            <returns>
            True if the items were successfully enqueued; false otherwise.
            </returns>
        </member>
        <member name="T:GSF.Collections.DoubleBufferedQueueProducer`1">
            <summary>
            A producer for a <see cref="T:GSF.Collections.DoubleBufferedQueue`1"/> which can
            only be used to provide items to the queue for consumption.
            </summary>
            <typeparam name="T">The type of the items produced to the queue.</typeparam>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueProducer`1.#ctor(GSF.Collections.DoubleBufferedQueueManager{`0},GSF.Collections.DoubleBufferedQueue{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/> class.
            </summary>
            <param name="manager">The <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> that created this producer.</param>
            <param name="queue">The <see cref="T:GSF.Collections.DoubleBufferedQueue`1"/> that this producer will be producing to.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueProducer`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueProducer`1.Produce(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Produces a collection of items to be processed by the consumer.
            </summary>
            <param name="items">The collection of items to be enqueued.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueProducer`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/> object.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueProducer`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.Collections.DoubleBufferedQueueManager`1">
            <summary>
            Manages queues to reduce contention for a multithreaded, multiple-producer, single-consumer scenario.
            </summary>
            <remarks>
            For best results, each thread that is producing items to the consumer should call
            <see cref="M:GSF.Collections.DoubleBufferedQueueManager`1.GetProducer"/> to receive a producer object that will not contend with
            any other producer. The consumer should either provide a handler to process the queued
            items or poll the manager by calling <see cref="M:GSF.Collections.DoubleBufferedQueueManager`1.Dequeue"/> (not both!). It is not
            safe to use this class with multiple consumer threads.
            </remarks>
            <typeparam name="T">The types of items to be queued.</typeparam>
            <remarks>
            It is not safe to use this class with multiple consumer threads.
            The list returned by <see cref="M:GSF.Collections.DoubleBufferedQueueManager`1.Dequeue"/> is not thread-safe and
            is reused on each Dequeue operation, so no other thread should
            access the list while another thread is calling Dequeue.
            </remarks>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> class.
            </summary>
            <param name="itemHandler">The method to handle processing of queued items.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.#ctor(System.Action{System.Collections.Generic.IList{`0}})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> class.
            </summary>
            <param name="itemHandler">The method to handle processing of queued items.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> class.
            </summary>
            <param name="itemHandler">The method to handle processing of queued items.</param>
            <param name="exceptionHandler">The method to handle exceptions that occur when processing items.</param>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.#ctor(System.Action{System.Collections.Generic.IList{`0}},System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/> class.
            </summary>
            <param name="itemHandler">The method to handle processing of queued items.</param>
            <param name="exceptionHandler">The method to handle exceptions that occur when processing items.</param>
        </member>
        <member name="P:GSF.Collections.DoubleBufferedQueueManager`1.ItemsLeft">
            <summary>
            Gets a flag that indicates whether there are any items left to
            be consumed after the last call to <see cref="M:GSF.Collections.DoubleBufferedQueueManager`1.Dequeue"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.GetProducer">
            <summary>
            Creates a producer used to produce items to the consumer of this <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/>.
            </summary>
            <returns>A <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/> used to produce items to the consumer.</returns>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.Dequeue">
            <summary>
            Dequeues a list of items produced by the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/>s.
            </summary>
            <returns>A list of items to be consumed.</returns>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.SignalItemHandler">
            <summary>
            Runs the operation to process items produced by the <see cref="T:GSF.Collections.DoubleBufferedQueueProducer`1"/>s.
            </summary>
        </member>
        <member name="M:GSF.Collections.DoubleBufferedQueueManager`1.ReturnQueue(GSF.Collections.DoubleBufferedQueue{`0})">
            <summary>
            Returns a queue to the <see cref="T:GSF.Collections.DoubleBufferedQueueManager`1"/>
            so that it can be removed from the list of queues to be consumed.
            </summary>
            <param name="queue">The queue to be returned.</param>
        </member>
        <member name="T:GSF.Collections.FileBackedDictionary`2">
            <summary>
            Represents a lookup table of key/value pairs backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="TKey">The type of the keys in the lookup table.</typeparam>
            <typeparam name="TValue">The type of the values in the lookup table.</typeparam>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="TKey"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.#ctor(System.String,System.Collections.Generic.IDictionary{`0,`1},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="dictionary">The dictionary whose elements are copied to this dictionary.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the dictionary.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="dictionary"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.FilePath">
            <summary>
            Gets or sets the path to the file backing this dictionary.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath is set and is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.DefaultSignature">
            <summary>
            Gets the default signature used by the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>
            if no user-defined signature is supplied.
            </summary>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <returns>
            The element with the specified key.
            </returns>
            <param name="key">The key of the element to get or set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/> is not found.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.Keys">
            <summary>
            Gets an <see cref="T:GSF.Collections.FileBackedDictionary`2"/> containing the keys of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            An <see cref="T:GSF.Collections.FileBackedDictionary`2"/> containing the keys of the object that implements <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.Values">
            <summary>
            Gets an <see cref="T:GSF.Collections.FileBackedDictionary`2"/> containing the values in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            An <see cref="T:GSF.Collections.FileBackedDictionary`2"/> containing the values in the object that implements <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:GSF.Collections.FileBackedDictionary`2.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Open">
            <summary>
            Opens the file backing this dictionary.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.OpenRead">
            <summary>
            Opens the file backing this hash set in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Add(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Adds an item to the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            true if the element is successfully removed; otherwise, false.
            This method also returns false if <paramref name="key"/> was not
            found in the original <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </returns>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>;
            otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </returns>
            <param name="item">The object to remove from the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> contains an element with the specified key.
            </summary>
            <returns>
            true if the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> contains an element with the key; otherwise, false.
            </returns>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.</param>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <returns>
            true if the object that implements <see cref="T:GSF.Collections.FileBackedDictionary`2"/> contains an element with the specified key; otherwise, false.
            </returns>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.FileBackedDictionary`2"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is read-only. </exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:GSF.Collections.FileBackedDictionary`2"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:GSF.Collections.FileBackedDictionary`2"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.GetKeys">
            <summary>
            Gets an enumerable used to iterate only the keys in the dictionary.
            </summary>
            <returns>An enumerable used to iterate only the keys in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.GetValues">
            <summary>
            Gets an enumerable used to iterate only the values in the dictionary.
            </summary>
            <returns>An enumerable used to iterate only the values in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Compact">
            <summary>
            Defragments the item section of the dictionary,
            which gets fragmented after removing keys or updating values.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Close">
            <summary>
            Closes the file backing this dictionary.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Collections.FileBackedDictionary`2"/> object.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Collections.FileBackedHashSet`1">
            <summary>
            Represents a lookup table backed by a file, with very little memory overhead.
            </summary>
            <typeparam name="T">The type of the items in the lookup table.</typeparam>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
            <remarks>
            This constructor uses the default equality comparer for file backed lookup tables,
            which is not the same as the default equality comparer for <typeparamref name="T"/>
            objects. This is because the default implementation of <see cref="M:System.Object.GetHashCode"/>
            does not provide guarantees about consistency across platforms, or even implementations
            of the CLR. Instead, the default equality comparer uses a byte-for-byte comparison to
            determine equality between keys and a CRC-32 for its hash code implementation. This
            means the performance of the hashing function is dependent on the performance of the
            serialization function.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.#ctor(System.String,System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> class.
            </summary>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="enumerable">The enumerable whose elements are copied to this hash set.</param>
            <param name="comparer">The equality comparer used to compare items in the hash set.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null or <paramref name="enumerable"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="T"/> cannot be serialized.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.FilePath">
            <summary>
            Gets or sets the path to the file backing this hash set.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath is set and is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.DefaultSignature">
            <summary>
            Gets the default signature used by the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>
            if no user-defined signature is supplied.
            </summary>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:GSF.Collections.FileBackedHashSet`1.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Open">
            <summary>
            Opens the file backing this hash set.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.OpenRead">
            <summary>
            Opens the file backing this hash set in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Add(`0)">
            <summary>
            Adds an element to the current set and returns a value to indicate if the element was successfully added. 
            </summary>
            <param name="item">The element to add to the set.</param>
            <returns>
            true if the element is added to the set; false if the element is already in the set.
            </returns>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </returns>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.RemoveWhere(System.Predicate{`0})">
            <summary>
            Removes all elements that match the conditions defined by the specified predicate from a <see cref="T:GSF.Collections.FileBackedHashSet`1"/> collection.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions of the elements to remove.</param>
            <returns>The number of elements that were removed from the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> collection.</returns>
            <exception cref="T:System.ArgumentNullException">match is null</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> contains a specific value.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.</param>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>; otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.UnionWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.IntersectWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains only elements that are also in a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.ExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Removes all elements in the specified collection from the current set.
            </summary>
            <param name="other">The collection of items to remove from the set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.SymmetricExceptWith(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Modifies the current set so that it contains only elements that are present
            either in the current set or in the specified collection, but not both. 
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.IsSubsetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether a set is a subset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a subset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.IsSupersetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a superset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a superset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.IsProperSupersetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a proper (strict) superset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set. </param>
            <returns>
            true if the current set is a proper superset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.IsProperSubsetOf(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set is a proper (strict) subset of a specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is a proper subset of <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Overlaps(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set overlaps with the specified collection.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set and <paramref name="other"/> share at least one common element; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Determines whether the current set and the specified collection contain the same elements.
            </summary>
            <param name="other">The collection to compare to the current set.</param>
            <returns>
            true if the current set is equal to <paramref name="other"/>; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="other"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:GSF.Collections.FileBackedHashSet`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Compact">
            <summary>
            Defragments the item section of the hash set,
            which gets fragmented after removing items.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Close">
            <summary>
            Closes the file backing this hash set.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Collections.FileBackedHashSet`1"/> object.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>
            Adds an item to the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:GSF.Collections.FileBackedHashSet`1"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedHashSet`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedHashSet`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="F:GSF.Collections.LookupTableType.Dictionary">
            <summary>
            Dictionary with keys and values in the item nodes.
            </summary>
        </member>
        <member name="F:GSF.Collections.LookupTableType.HashSet">
            <summary>
            HashSet with lookup node markers for set operations.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.#ctor(GSF.Collections.LookupTableType)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.#ctor(GSF.Collections.LookupTableType,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.#ctor(GSF.Collections.LookupTableType,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the lookup table.</param>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.#ctor(GSF.Collections.LookupTableType,System.String,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> class.
            </summary>
            <param name="lookupTableType">Type of the lookup table used to tweak the file format.</param>
            <param name="filePath">The path to the file used to store the lookup table.</param>
            <param name="keyComparer">The equality comparer used to compare keys in the lookup table.</param>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> is a zero-length string, contains only white space, or contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="filePath"/> is null.</exception>
            <exception cref="T:System.InvalidOperationException">Either <typeparamref name="TKey"/> or <typeparamref name="TValue"/> cannot be serialized.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.FilePath">
            <summary>
            Gets or sets the path to the file backing this lookup table.
            </summary>
            <exception cref="T:System.ArgumentException">FilePath contains one or more invalid characters as defined by <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            Changes to this property will cause the file to close if the file is already opened.
            Data will not be automatically written from the old file to the new file.
            </remarks>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.
            </summary>
            <returns>
            true if the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only; otherwise, false.
            </returns>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.Signature">
            <summary>
            Gets or sets the signature of the file backing the lookup table.
            </summary>
            <exception cref="T:System.ArgumentNullException">Attempt is made to set Signature to a null value.</exception>
            <exception cref="T:System.ArgumentException">Attempt is made to set Signature to a value larger than the maximum allowed size.</exception>
            <exception cref="T:System.NotSupportedException">Attempt is made to modify Signature of a read-only lookup table.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.Item(`0)">
            <summary>
            Gets or sets the element with the specified key.
            </summary>
            <returns>
            The element with the specified key.
            </returns>
            <param name="key">The key of the element to get or set.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key"/> is not found.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.CacheSize">
            <summary>
            Gets or sets the size of the cache used
            to store data from the file in memory.
            </summary>
        </member>
        <member name="P:GSF.Collections.FileBackedLookupTable`2.FragmentationCount">
            <summary>
            Gets the number of operations that fragment the
            lookup table that have occurred since the last
            time the lookup table was compacted.
            </summary>
            <remarks>
            This value is not stored in the file and may therefore
            be inaccurate if the lookup table has not been compacted
            since the last time it was opened.
            </remarks>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Open">
            <summary>
            Opens the file backing this lookup table.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.OpenRead">
            <summary>
            Opens the file backing this lookup table in read-only mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">File is already open or the file has a pending transaction that could not be completed.</exception>
            <exception cref="T:System.FormatException">The format of the file is invalid.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Add(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.TryAdd(`0,`1)">
            <summary>
            Adds an element with the provided key and value to the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <returns>True if the item was successfully added; false otherwise.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </summary>
            <returns>
            true if the element is successfully removed; otherwise, false.
            This method also returns false if <paramref name="key"/> was not
            found in the original <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </returns>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.TryMark(`0)">
            <summary>
            Attempts to find the lookup node for the corresponding
            key and, if found, marks the lookup node.
            </summary>
            <param name="key">The key used to find the lookup node to be marked.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.AllMarked">
            <summary>
            Determines whether all occupied lookup nodes are marked.
            </summary>
            <returns>True if all occupied lookup nodes are marked; false otherwise.</returns>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.RemoveMarked">
            <summary>
            Removes all unmarked nodes from the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.RemoveUnmarked">
            <summary>
            Removes all unmarked nodes from the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.UnmarkAll">
            <summary>
            Unmarks all lookup nodes in the hash set.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> contains an element with the specified key.
            </summary>
            <returns>
            true if the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> contains an element with the key; otherwise, false.
            </returns>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key.
            </summary>
            <returns>
            true if the object that implements <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> contains an element with the specified key; otherwise, false.
            </returns>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> is read-only. </exception>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.GetKeys">
            <summary>
            Gets an enumerable used to iterate only the keys in the lookup table.
            </summary>
            <returns>An enumerable used to iterate only the keys in the lookup table.</returns>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Compact">
            <summary>
            Defragments the item section of the lookup table,
            which gets fragmented after removing keys or updating values.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Close">
            <summary>
            Closes the file backing this lookup table.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Collections.FileBackedLookupTable`2"/> object.
            </summary>
        </member>
        <member name="M:GSF.Collections.FileBackedLookupTable`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Collections.IPagedList">
            <summary>
            Defines an interface for <see cref="T:GSF.Collections.PagedList`1"/> instances that is usable
            regardless of any specified type.
            </summary>
        </member>
        <member name="P:GSF.Collections.IPagedList.TotalCount">
            <summary>
            Gets total count of elements in enumeration.
            </summary>
        </member>
        <member name="P:GSF.Collections.IPagedList.PageCount">
            <summary>
            Gets calculated page count based on page size and total items count.
            </summary>
        </member>
        <member name="P:GSF.Collections.IPagedList.Page">
            <summary>
            Gets current page number.
            </summary>
        </member>
        <member name="P:GSF.Collections.IPagedList.PageSize">
            <summary>
            Gets current page size.
            </summary>
        </member>
        <member name="T:GSF.Collections.ListCollection`1">
            <summary>
            A faster and functionally equivalent implementation of <see cref="T:System.Collections.ObjectModel.Collection`1"/> 
            </summary>
            <typeparam name="T">The type of the element in the collection</typeparam>
            <remarks>
            <para>
            <see cref="T:System.Collections.ObjectModel.Collection`1"/> is based upon an <see cref="T:System.Collections.Generic.IList`1"/>. This means any simple call
            to the class is a function call that cannot be in-lined. This implementation forces the underlying
            item to be <see cref="T:System.Collections.Generic.List`1"/> and shadows many of the methods to call <see cref="T:System.Collections.Generic.List`1"/> 
            instead of <see cref="T:System.Collections.Generic.IList`1"/>. 
            </para>
            <para>
            Since this class references the same underlying <see cref="T:System.Collections.Generic.List`1"/> object, it can be 
            successfully implemented as a <see cref="T:GSF.Collections.ListCollection`1"/> or casted it its underlying type
            <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </para>
            <para>
            Profiling this class yield a ForEach loop and For loop that executes between 
            2-4 times faster than <see cref="T:System.Collections.ObjectModel.Collection`1"/>. This depends on the number of items in the
            list. The fewer the faster. Other operations such as Add/Insert/Remove are closer to 50% faster.
            Count is now in-lined (~20 times faster).
            </para>
            <para>
            This performance is negated if accessing this class via the IList interface. When possible, use
            only strongly typed names.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.#ctor(System.Collections.Generic.List{`0})">
            <summary>
            Creates a <see cref="T:GSF.Collections.ListCollection`1"/>
            </summary>
            <param name="list">a list to wrap this class around.</param>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.#ctor">
            <summary>
            Creates a <see cref="T:GSF.Collections.ListCollection`1"/>
            </summary>
        </member>
        <member name="P:GSF.Collections.ListCollection`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.ListCollection`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>
            The element at the specified index.
            </returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1"/> is read-only.</exception>
        </member>
        <member name="P:GSF.Collections.ListCollection`1.Items">
            <summary>
            Gets a <see cref="T:System.Collections.Generic.IList`1"/> wrapper around the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IList`1"/> wrapper around the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </returns>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.Add(`0)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.Clear">
            <summary>
            Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">
            The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"/>. 
            The <see cref="T:System.Array"/> must have zero-based indexing.</param><param name="index">The zero-based index in <paramref name="array"/> at which copying begins.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1"/> is greater than the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerator`1"/> for the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </returns>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"/>.
            </summary>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item to the <see cref="T:System.Collections.Generic.IList`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.InsertItem(System.Int32,`0)">
            <summary>
            Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert. The value can be null for reference types.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.-or-<paramref name="index"/> is greater than <see cref="P:System.Collections.ObjectModel.Collection`1.Count"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.RemoveAt(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.-or-<paramref name="index"/> is equal to or greater than <see cref="P:System.Collections.ObjectModel.Collection`1.Count"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.RemoveItem(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.-or-<paramref name="index"/> is equal to or greater than <see cref="P:System.Collections.ObjectModel.Collection`1.Count"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ListCollection`1.SetItem(System.Int32,`0)">
            <summary>
            Replaces the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to replace.</param>
            <param name="item">The new value for the element at the specified index. The value can be null for reference types.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero.-or-<paramref name="index"/> is greater than <see cref="P:System.Collections.ObjectModel.Collection`1.Count"/>.</exception>
        </member>
        <member name="T:GSF.Collections.NamespaceDoc">
            <summary>
            Contains classes and type extension functions related to any fundamental collection including thread based processing queues.
            </summary>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2">
            <summary>
            Represents an ordered collection of keys and values with the same performance as <see cref="T:System.Collections.Generic.Dictionary`2"/> with O(1) lookups and adds but with O(n) inserts and removes.
            </summary>
            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Count">
            <summary>
            Gets the number of key/value pairs contained in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
            <returns>The number of key/value pairs contained in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Comparer">
            <summary>
            Gets the <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> that is used to determine equality of keys for the dictionary.
            </summary>
            <returns>The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> generic interface implementation that is used to determine equality of keys for the current <see cref="T:GSF.Collections.OrderedDictionary`2" /> and to provide hash values for the keys.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Keys">
            <summary>
            Gets a collection containing the keys in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
            <returns>An <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" /> containing the keys in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Values">
            <summary>
            Gets a collection containing the values in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
            <returns>An <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" /> containing the values in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Item(`0)">
            <summary>
            Gets or sets the value associated with the specified key as an O(1) operation.
            </summary>
            <param name="key">The key of the value to get or set.</param>
            <returns>The value associated with the specified key. If the specified key is not found, a get operation throws a <see cref="T:System.Collections.Generic.KeyNotFoundException" />, and a set operation creates a new element with the specified key.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key" /> does not exist in the collection.</exception>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Item(System.Int32)">
            <summary>
            Gets or sets the value at the specified index as an O(1) operation.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <returns>The value at the specified index.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that is empty, has the default initial capacity, and uses the default equality comparer for the key type.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that is empty, has the specified initial capacity, and uses the default equality comparer for the key type.
            </summary>
            <param name="capacity">The initial number of elements that the <see cref="T:GSF.Collections.OrderedDictionary`2" /> can contain.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity" /> is less than 0.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that is empty, has the default initial capacity, and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or null to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1" /> for the type of the key.</param>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that is empty, has the specified initial capacity, and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="capacity">The initial number of elements that the <see cref="T:GSF.Collections.OrderedDictionary`2" /> can contain.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or null to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1" /> for the type of the key.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity" /> is less than 0.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that contains elements copied from the specified <see cref="!:IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;" /> and uses the default equality comparer for the key type.
            </summary>
            <param name="collection">The <see cref="!:IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;" /> whose elements are copied to the new <see cref="T:GSF.Collections.OrderedDictionary`2" />.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection" /> contains one or more duplicate keys.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.OrderedDictionary`2" /> class that contains elements copied from the specified <see cref="!:IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;" /> and uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.
            </summary>
            <param name="collection">The <see cref="!:IEnumerable&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;" /> whose elements are copied to the new <see cref="T:GSF.Collections.OrderedDictionary`2" />.</param>
            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1" /> implementation to use when comparing keys, or null to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1" /> for the type of the key.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="collection" /> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="collection" /> contains one or more duplicate keys.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Add(`0,`1)">
            <summary>
            Adds the specified key and value to the dictionary as an O(1) operation.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add. The value can be null for reference types.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Clear">
            <summary>
            Removes all keys and values from the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.ContainsKey(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.OrderedDictionary`2" /> contains the specified key as an O(1) operation.
            </summary>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</param>
            <returns>true if the <see cref="T:GSF.Collections.OrderedDictionary`2" /> contains an element with the specified key; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.EnsureCapacity(System.Int32)">
            <summary>
            Resizes the internal data structure if necessary to ensure no additional resizing to support the specified capacity.
            </summary>
            <param name="capacity">The number of elements that the <see cref="T:GSF.Collections.OrderedDictionary`2" /> must be able to contain.</param>
            <returns>The capacity of the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity" /> is less than 0.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
            <returns>An <see cref="T:GSF.Collections.OrderedDictionary`2.Enumerator" /> structure for the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.GetOrAdd(`0,`1)">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.OrderedDictionary`2" /> if the key does not already exist as an O(1) operation.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value to be added, if the key does not already exist.</param>
            <returns>The value for the key. This will be either the existing value for the key if the key is already in the dictionary, or the new value if the key was not in the dictionary.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.GetOrAdd(`0,System.Func{`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.OrderedDictionary`2" /> by using the specified function, if the key does not already exist as an O(1) operation.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>The value for the key. This will be either the existing value for the key if the key is already in the dictionary, or the new value for the key as returned by valueFactory if the key was not in the dictionary.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.-or-<paramref name="valueFactory"/> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.IndexOf(`0)">
            <summary>
            Returns the zero-based index of the element with the specified key within the <see cref="T:GSF.Collections.OrderedDictionary`2" /> as an O(1) operation.
            </summary>
            <param name="key">The key of the element to locate.</param>
            <returns>The zero-based index of the element with the specified key within the <see cref="T:GSF.Collections.OrderedDictionary`2" />, if found; otherwise, -1.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Insert(System.Int32,`0,`1)">
            <summary>
            Inserts the specified key/value pair into the <see cref="T:GSF.Collections.OrderedDictionary`2" /> at the specified index as an O(n) operation.
            </summary>
            <param name="index">The zero-based index of the key/value pair to insert.</param>
            <param name="key">The key of the element to insert.</param>
            <param name="value">The value of the element to insert.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Move(System.Int32,System.Int32)">
            <summary>
            Moves the element at the specified fromIndex to the specified toIndex while re-arranging the elements in between.
            </summary>
            <param name="fromIndex">The zero-based index of the element to move.</param>
            <param name="toIndex">The zero-based index to move the element to.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="fromIndex"/> is less than 0.
            -or-
            <paramref name="fromIndex"/> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />
            -or-
            <paramref name="toIndex"/> is less than 0.
            -or-
            <paramref name="toIndex"/> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />
            </exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.MoveRange(System.Int32,System.Int32,System.Int32)">
            <summary>
            Moves the specified number of elements at the specified fromIndex to the specified toIndex while re-arranging the elements in between.
            </summary>
            <param name="fromIndex">The zero-based index of the elements to move.</param>
            <param name="toIndex">The zero-based index to move the elements to.</param>
            <param name="count">The number of elements to move.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="fromIndex"/> is less than 0.
            -or-
            <paramref name="fromIndex"/> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.
            -or-
            <paramref name="toIndex"/> is less than 0.
            -or-
            <paramref name="toIndex"/> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.
            -or-
            <paramref name="count"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="fromIndex"/> + <paramref name="count"/> is greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.
            -or-
            <paramref name="toIndex"/> + <paramref name="count"/> is greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Remove(`0)">
            <summary>
            Removes the value with the specified key from the <see cref="T:GSF.Collections.OrderedDictionary`2" /> as an O(n) operation.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <returns>true if the element is successfully found and removed; otherwise, false. This method returns false if <paramref name="key" /> is not found in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Remove(`0,`1@)">
            <summary>
            Removes the value with the specified key from the <see cref="T:GSF.Collections.OrderedDictionary`2" /> and returns the value as an O(n) operation.
            </summary>
            <param name="key">The key of the element to remove.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value" /> parameter. This parameter is passed uninitialized.</param>
            <returns>true if the element is successfully found and removed; otherwise, false. This method returns false if <paramref name="key" /> is not found in the <see cref="T:GSF.Collections.OrderedDictionary`2" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.RemoveAt(System.Int32)">
            <summary>
            Removes the value at the specified index from the <see cref="T:GSF.Collections.OrderedDictionary`2" /> as an O(n) operation.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.TrimExcess">
            <summary>
            Sets the capacity of an <see cref="T:GSF.Collections.OrderedDictionary`2" /> object to the actual number of elements it contains, rounded up to a nearby, implementation-specific value.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.TrimExcess(System.Int32)">
            <summary>
            Sets the capacity of an <see cref="T:GSF.Collections.OrderedDictionary`2" /> object to the specified capacity, rounded up to a nearby, implementation-specific value.
            </summary>
            <param name="capacity">The number of elements that the <see cref="T:GSF.Collections.OrderedDictionary`2" /> must be able to contain.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity"/> is less than <see cref="P:GSF.Collections.OrderedDictionary`2.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.TryAdd(`0,`1)">
            <summary>
            Tries to add the specified key and value to the dictionary as an O(1) operation.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add. The value can be null for reference types.</param>
            <returns>true if the element was added to the <see cref="T:GSF.Collections.OrderedDictionary`2" />; false if the <see cref="T:GSF.Collections.OrderedDictionary`2" /> already contained an element with the specified key.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.TryGetValue(`0,`1@)">
            <summary>
            Gets the value associated with the specified key as an O(1) operation.
            </summary>
            <param name="key">The key of the value to get.</param>
            <param name="value">When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value" /> parameter. This parameter is passed uninitialized.</param>
            <returns>true if the <see cref="T:GSF.Collections.OrderedDictionary`2" /> contains an element with the specified key; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key" /> is null.</exception>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2.Enumerator">
            <summary>
            Enumerates the elements of a <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.Enumerator.Current">
            <summary>
            Gets the element at the current position of the enumerator.
            </summary>
            <returns>The element in the <see cref="T:GSF.Collections.OrderedDictionary`2" /> at the current position of the enumerator.</returns>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Enumerator.Dispose">
            <summary>
            Releases all resources used by the <see cref="T:GSF.Collections.OrderedDictionary`2.Enumerator" />.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.Enumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the <see cref="T:GSF.Collections.OrderedDictionary`2" />.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2.KeyCollection">
            <summary>
            Represents the collection of keys in a <see cref="T:GSF.Collections.OrderedDictionary`2" />. This class cannot be inherited.
            </summary>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.KeyCollection.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.
            </summary>
            <returns>The number of elements contained in the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.KeyCollection.Item(System.Int32)">
            <summary>
            Gets the key at the specified index as an O(1) operation.
            </summary>
            <param name="index">The zero-based index of the key to get.</param>
            <returns>The key at the specified index.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.KeyCollection.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.KeyCollection.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.
            </summary>
            <returns>A <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator" /> for the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.</returns>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator">
            <summary>
            Enumerates the elements of a <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.
            </summary>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator.Current">
            <summary>
            Gets the element at the current position of the enumerator.
            </summary>
            <returns>The element in the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" /> at the current position of the enumerator.</returns>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator.Dispose">
            <summary>
            Releases all resources used by the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator" />.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.KeyCollection.Enumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the <see cref="T:GSF.Collections.OrderedDictionary`2.KeyCollection" />.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2.ValueCollection">
            <summary>
            Represents the collection of values in a <see cref="T:GSF.Collections.OrderedDictionary`2" />. This class cannot be inherited.
            </summary>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.ValueCollection.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.
            </summary>
            <returns>The number of elements contained in the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.</returns>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.ValueCollection.Item(System.Int32)">
            <summary>
            Gets the value at the specified index as an O(1) operation.
            </summary>
            <param name="index">The zero-based index of the value to get.</param>
            <returns>The value at the specified index.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0.-or-<paramref name="index" /> is equal to or greater than <see cref="P:GSF.Collections.OrderedDictionary`2.ValueCollection.Count" />.</exception>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.ValueCollection.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.
            </summary>
            <returns>A <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator" /> for the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.</returns>
        </member>
        <member name="T:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator">
            <summary>
            Enumerates the elements of a <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.
            </summary>
        </member>
        <member name="P:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator.Current">
            <summary>
            Gets the element at the current position of the enumerator.
            </summary>
            <returns>The element in the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" /> at the current position of the enumerator.</returns>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator.Dispose">
            <summary>
            Releases all resources used by the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator" />.
            </summary>
        </member>
        <member name="M:GSF.Collections.OrderedDictionary`2.ValueCollection.Enumerator.MoveNext">
            <summary>
            Advances the enumerator to the next element of the <see cref="T:GSF.Collections.OrderedDictionary`2.ValueCollection" />.
            </summary>
            <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
            <exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was created.</exception>
        </member>
        <member name="T:GSF.Collections.PagedList`1">
            <summary>
            Defines a paged list for an enumeration.
            </summary>
            <typeparam name="T">Type of <see cref="T:System.Collections.Generic.IEnumerable`1"/> to paginate.</typeparam>
            <remarks>
            This class returns the elements for the specified page number for a given page size and
            also provides the calculated page count based on input parameters.
            </remarks>
        </member>
        <member name="M:GSF.Collections.PagedList`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Int32,System.Int32,System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Collections.PagedList`1"/>.
            </summary>
            <param name="source">Source enumeration to paginate.</param>
            <param name="page">Page number (1-based).</param>
            <param name="pageSize">Page size.</param>
            <param name="count">Total records in source if known.</param>
            <remarks>
            If count is known or can be calculated early, specify the value in the
            <paramref name="count"/> parameter as an optimization to prevent a full
            enumeration on <paramref name="source"/> to get a count.
            </remarks>
        </member>
        <member name="P:GSF.Collections.PagedList`1.TotalCount">
            <summary>
            Gets total count of elements in enumeration.
            </summary>
        </member>
        <member name="P:GSF.Collections.PagedList`1.PageCount">
            <summary>
            Gets calculated page count based on page size and total items count.
            </summary>
        </member>
        <member name="P:GSF.Collections.PagedList`1.Page">
            <summary>
            Gets current page number.
            </summary>
        </member>
        <member name="P:GSF.Collections.PagedList`1.PageSize">
            <summary>
            Gets current page size.
            </summary>
        </member>
        <member name="T:GSF.Collections.PriorityQueue`1">
            <summary>
            Represents a queue of items to which priority can be assigned.
            </summary>
            <typeparam name="T">The type of the items stored in the queue.</typeparam>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.PriorityQueue`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.#ctor(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.PriorityQueue`1"/> class.
            </summary>
            <param name="capacity">The initial size of the underlying array.</param>
        </member>
        <member name="P:GSF.Collections.PriorityQueue`1.Head">
            <summary>
            Gets the head of the queue. The value returned
            is the same as the <see cref="M:GSF.Collections.PriorityQueue`1.Peek"/> method.
            </summary>
        </member>
        <member name="P:GSF.Collections.PriorityQueue`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>
            The element at the specified index.
            </returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.</exception>
        </member>
        <member name="P:GSF.Collections.PriorityQueue`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </returns>
        </member>
        <member name="P:GSF.Collections.PriorityQueue`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.PriorityQueue`1"/> is read-only.
            </summary>
            <returns>
            False
            </returns>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Enqueue(System.Int32,`0)">
            <summary>
            Enqueues an item into the queue.
            </summary>
            <param name="priority">The priority of the item.</param>
            <param name="item">The item to be enqueued.</param>
            <remarks>
            After adding an item to the queue, the heap will need to be fixed,
            therefore this is an O(log n) operation.
            </remarks>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Dequeue">
            <summary>
            Gets the item with the highest priority and removes it from the queue.
            </summary>
            <returns>The item with the highest priority.</returns>
            <remarks>
            After removing an item from the queue, the heap will need to be fixed,
            therefore this is an O(log n) operation.
            </remarks>
            <exception cref="T:System.InvalidOperationException">The queue is empty.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Peek">
            <summary>
            Gets the item with the highest priority.
            </summary>
            <returns>The item with the highest priority.</returns>
            <exception cref="T:System.InvalidOperationException">The queue is empty.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.GetPriority(System.Int32)">
            <summary>
            Gets the priority of the item at the given index.
            </summary>
            <param name="index">The index of the item.</param>
            <returns>The priority of the item.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">Index does not fall within the bounds of the queue.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.SetPriority(System.Int32,System.Int32)">
            <summary>
            Sets the priority of the item at the given index.
            </summary>
            <param name="index">The index of the item.</param>
            <param name="priority">The new priority of the item.</param>
            <remarks>
            This method can be used to change the priority of the item
            at the given index. After setting the priority, the queue
            will have to fix the heap so this is an O(log n) operation.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Index does not fall within the bounds of the queue.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.AdjustPriority(System.Int32)">
            <summary>
            Adds the given value to the priority of all values in the priority queue.
            </summary>
            <param name="delta">The amount by which to adjust priorities.</param>
            <remarks>
            This allows for adjusting the priorities of all items in the heap without
            having to fix the heap each time a priority is changed. This can be useful
            to increase the priorities of items that have been in the queue for significant
            periods of time to prevent starvation. This is an O(n) operation.
            </remarks>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <remarks>
            The enumerator performs an in-order traversal of the heap, so the caller should
            expect that items will be iterated in no particular order. Any operations that
            would modify the collection during iteration will cause the enumerator to throw
            an <see cref="T:System.InvalidOperationException"/>.
            </remarks>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.PriorityQueue`1"/> contains a specific value.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.</param>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:GSF.Collections.PriorityQueue`1"/>; otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.</param>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:GSF.Collections.PriorityQueue`1"/> to an
            <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:GSF.Collections.PriorityQueue`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:GSF.Collections.PriorityQueue`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:GSF.Collections.PriorityQueue`1"/> item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <remarks>
            After removing an item from the queue, the heap will need to be fixed,
            therefore this is an O(log n) operation.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:GSF.Collections.PriorityQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:GSF.Collections.PriorityQueue`1"/>.</param>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:GSF.Collections.PriorityQueue`1"/>; otherwise, false.
            This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </returns>
            <remarks>
            After removing an item from the queue, the heap will need to be fixed,
            therefore this is an O(log n) operation.
            </remarks>
        </member>
        <member name="M:GSF.Collections.PriorityQueue`1.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.PriorityQueue`1"/>.
            </summary>
        </member>
        <member name="T:GSF.Collections.ProcessDictionary`2">
            <summary>
            Represents a thread-safe (via locking) keyed collection of items, based on <see cref="T:GSF.Collections.DictionaryList`2"/>, that get processed on independent threads with a consumer provided function.
            </summary>
            <typeparam name="TKey">Type of keys used to reference process items.</typeparam>
            <typeparam name="TValue">Type of values to process.</typeparam>
            <remarks>
            <para>This class acts as a strongly-typed sorted dictionary of objects to be processed.</para>
            <para>Note that the <see cref="T:GSF.Collections.ProcessDictionary`2"/> will not start processing until the Start method is called.</para>
            <para>Because this <see cref="T:GSF.Collections.ProcessDictionary`2"/> represents a dictionary style collection, all keys must be unique.</para>
            <para>
            Be aware that this class is based on a <see cref="T:GSF.Collections.DictionaryList`2"/> (i.e., a <see cref="T:System.Collections.Generic.SortedList`2"/>
            that implements <see cref="T:System.Collections.Generic.IList`1"/>), and since items in this kind of list are automatically sorted, items will be processed
            in "sorted" order regardless of the order in which they are added to the list.
            </para>
            <para>
            Important note about using an "Integer" as the key for this class: because the <see cref="T:GSF.Collections.ProcessDictionary`2"/> base class must
            implement IList, a normal dictionary cannot be used for the base class. IDictionary implementations
            do not normally implement the IList interface because of ambiguity that is caused when implementing
            an integer key. For example, if you implement this class with a key of type "Integer," you will not
            be able to access items in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> by index without "casting" the 
            <see cref="T:GSF.Collections.ProcessDictionary`2"/> as IList. This is because the Item property in both the IDictionary and IList would
            have the same parameters (see the <see cref="T:GSF.Collections.DictionaryList`2"/> class for more details.).
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Collections.ProcessDictionary`2.ProcessItemFunctionSignature">
            <summary>
            Function signature that defines a method to process a key and value one at a time.
            </summary>
            <param name="key">key to be processed.</param>
            <param name="value">value to be processed.</param>
            <remarks>
            <para>Required unless <see cref="P:GSF.Collections.ProcessDictionary`2.ProcessItemsFunction"/> is implemented.</para>
            <para>Used when creating a <see cref="T:GSF.Collections.ProcessDictionary`2"/> to process one item at a time.</para>
            <para>Asynchronous <see cref="T:GSF.Collections.ProcessDictionary`2"/> will process individual items on multiple threads</para>
            </remarks>
        </member>
        <member name="T:GSF.Collections.ProcessDictionary`2.CanProcessItemFunctionSignature">
            <summary>
            Function signature that determines if a key and value can be currently processed.
            </summary>
            <param name="key">key to be checked for processing availability.</param>
            <param name="value">value to be checked for processing availability.</param>
            <returns>True, if key and value can be processed.</returns>
            <remarks>
            <para>Implementation of this function is optional. It will be assumed that an item can be processed if this
            function is not defined</para>
            <para>Items must eventually get to a state where they can be processed or they will remain in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>
            indefinitely.</para>
            <para>
            Note that when this function is implemented and <see cref="T:GSF.Collections.QueueProcessingStyle"/> = ManyAtOnce (i.e., 
            <see cref="P:GSF.Collections.ProcessDictionary`2.ProcessItemsFunction"/> is defined), then each item presented
            for processing must evaluate as "CanProcessItem = True" before any items are processed.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.#ctor(GSF.Collections.ProcessDictionary{`0,`1}.ProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a <see cref="T:GSF.Collections.ProcessDictionary`2"/> based on the generic <see cref="T:GSF.Collections.DictionaryList`2"/> class.
            </summary>
            <param name="processItemFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.ProcessItemFunctionSignature"/> that defines a function signature to process a key and value one at a time.</param>
            <param name="processInterval">A <see cref="T:System.Double"/> which represents the process interval.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> that represents the max number of threads to use.</param>
            <param name="processTimeout">An <see cref="T:System.Int32"/> that represents the amount of time before a process times out.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after a timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.#ctor(GSF.Collections.ProcessDictionary{`0,`1}.ProcessItemFunctionSignature,GSF.Collections.ProcessDictionary{`0,`1}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a <see cref="T:GSF.Collections.ProcessDictionary`2"/> based on the generic <see cref="T:GSF.Collections.DictionaryList`2"/> class.
            </summary>
            <param name="processItemFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.ProcessItemFunctionSignature"/> that defines a function signature to process a key and value one at a time.</param>
            <param name="canProcessItemFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.CanProcessItemFunctionSignature"/> that determines if a key and value can currently be processed.</param>
            <param name="processInterval">A <see cref="T:System.Double"/> which represents the process interval.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> that represents the max number of threads to use.</param>
            <param name="processTimeout">An <see cref="T:System.Int32"/> that represents the amount of time before a process times out.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after a timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.#ctor(GSF.Collections.ProcessQueue{System.Collections.Generic.KeyValuePair{`0,`1}}.ProcessItemsFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a bulk-item <see cref="T:GSF.Collections.ProcessDictionary`2"/> based on the generic <see cref="T:GSF.Collections.DictionaryList`2"/> class.
            </summary>
            <param name="processItemsFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.ProcessItemFunctionSignature"/> that defines a function signature to process multiple items at once.</param>
            <param name="processInterval">A <see cref="T:System.Double"/> which represents the process interval.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> that represents the max number of threads to use.</param>
            <param name="processTimeout">An <see cref="T:System.Int32"/> that represents the amount of time before a process times out.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after a timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.#ctor(GSF.Collections.ProcessQueue{System.Collections.Generic.KeyValuePair{`0,`1}}.ProcessItemsFunctionSignature,GSF.Collections.ProcessDictionary{`0,`1}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a bulk-item <see cref="T:GSF.Collections.ProcessDictionary`2"/> based on the generic <see cref="T:GSF.Collections.DictionaryList`2"/> class.
            </summary>
            <param name="processItemsFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.ProcessItemFunctionSignature"/> that defines a function signature to process multiple items at once.</param>
            <param name="canProcessItemFunction">A delegate <see cref="T:GSF.Collections.ProcessDictionary`2.CanProcessItemFunctionSignature"/> that determines if a key and value can currently be processed.</param>
            <param name="processInterval">A <see cref="T:System.Double"/> which represents the process interval.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> that represents the max number of threads to use.</param>
            <param name="processTimeout">An <see cref="T:System.Int32"/> that represents the amount of time before a process times out.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after a timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether the process should requeue the item after an exception.</param>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.ProcessItemFunction">
            <summary>
            Gets or sets the user function used to process items in the list one at a time.
            </summary>
            <remarks>
            <para>This function and <see cref="P:GSF.Collections.ProcessDictionary`2.ProcessItemFunction"/> cannot be defined at the same time.</para>
            <para>A <see cref="T:GSF.Collections.ProcessDictionary`2"/> must be defined to process either a single item at a time or many items at once.</para>
            <para>Implementation of this function makes <see cref="T:GSF.Collections.QueueProcessingStyle"/> = OneAtATime.</para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.ProcessItemsFunction">
            <summary>
            Gets or sets the user function used to process multiple items in the list at once.
            </summary>
            <remarks>
            <para>This function and <see cref="P:GSF.Collections.ProcessDictionary`2.ProcessItemFunction"/> cannot be defined at the same time.</para>
            <para>A <see cref="T:GSF.Collections.ProcessDictionary`2"/> must be defined to process either a single item at a time or many items at once.</para>
            <para>Implementation of this function makes <see cref="T:GSF.Collections.QueueProcessingStyle"/> = ManyAtOnce.</para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.CanProcessItemFunction">
            <summary>
            Gets or sets the user function used to determine if an item is ready to be processed.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.Name">
            <summary>
            Gets the class name.
            </summary>
            <returns>Class name.</returns>
            <remarks>
            <para>This name is used for class identification in strings (e.g., used in error message).</para>
            <para>Derived classes should override this method with a proper class name.</para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.Item(`0)">
            <summary>Gets or sets the value associated with the specified key.</summary>
            <returns>The value associated with the specified key. If the specified key is not found, a get operation
            throws a KeyNotFoundException, and a set operation creates a new element with the specified key.</returns>
            <param name="key">The key of the value to get or set.</param>
            <exception cref="T:System.ArgumentNullException">key is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and key does not exist in the collection.</exception>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.Keys">
            <summary>Gets an ICollection containing the keys of the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</summary>
            <returns>An ICollection containing the keys of the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.Values">
            <summary>Gets an ICollection containing the values of the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</summary>
            <returns>An ICollection containing the values of the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessDictionary`2.InternalDictionary">
            <summary>
            Gets the internal sorted dictionary for direct use by derived classes.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Collections.ProcessDictionary`2"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Add(`0,`1)">
            <summary>Adds an element with the provided key and value to the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</summary>
            <param name="value">The object to use as the value of the element to add.</param>
            <param name="key">The object to use as the key of the element to add.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:GSF.Collections.ProcessDictionary`2"/> is read-only.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</exception>
            <exception cref="T:System.ArgumentNullException">key is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.ContainsKey(`0)">
            <summary>Determines whether the <see cref="T:GSF.Collections.ProcessDictionary`2"/> contains an element with the specified key.</summary>
            <returns>True, if the <see cref="T:GSF.Collections.ProcessDictionary`2"/> contains an element with the key; otherwise, false.</returns>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">key is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.ContainsValue(`1)">
            <summary>Determines whether the <see cref="T:GSF.Collections.ProcessDictionary`2"/> contains an element with the specified value.</summary>
            <returns>True, if the <see cref="T:GSF.Collections.ProcessDictionary`2"/> contains an element with the value; otherwise, false.</returns>
            <param name="value">The value to locate in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)">
            <summary>
            Searches for the specified key and returns the zero-based index within the entire <see cref="T:GSF.Collections.ProcessDictionary`2"/>.
            </summary>
            <param name="key">The key to locate in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</param>
            <returns>The zero-based index of key within the entire <see cref="T:GSF.Collections.ProcessDictionary`2"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.IndexOfValue(`1)">
            <summary>
            Searches for the specified value and returns the zero-based index of the first occurrence within the entire <see cref="T:GSF.Collections.ProcessDictionary`2"/>.
            </summary>
            <param name="value">The value to locate in the <see cref="T:GSF.Collections.ProcessDictionary`2"/>. The value can be null for reference types.</param>
            <returns>The zero-based index of the first occurrence of value within the entire <see cref="T:GSF.Collections.ProcessDictionary`2"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Remove(`0)">
            <summary>Removes the element with the specified key from the <see cref="T:GSF.Collections.ProcessDictionary`2"/>.</summary>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException">key is null.</exception>
            <returns>This method returns a <see cref="T:System.Boolean"/> value indicating whether the item was removed.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.TryGetValue(`0,`1@)">
            <summary>Gets the value associated with the specified key.</summary>
            <returns>True, if the <see cref="T:GSF.Collections.ProcessDictionary`2"/> contains an element with the specified key; otherwise, false.</returns>
            <param name="value">When this method returns, contains the value associated with the specified key, if the
            key is found; otherwise, the default value for the type of the value parameter. This parameter is passed
            uninitialized.</param>
            <param name="key">The key of the value to get.</param>
            <exception cref="T:System.ArgumentNullException">key is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.GetOrAdd(`0,System.Func{`0,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist.
            </summary>
            <param name="key">The key to be added to the dictionary if it does not already exist.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>The value of the key in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.GetOrAdd(`0,`1)">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist.
            </summary>
            <param name="key">The key to be added to the dictionary if it does not already exist.</param>
            <param name="value">The value to assign to the key if the key does not already exist.</param>
            <returns>The value of the key in the dictionary.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.AddOrUpdate(`0,System.Func{`0,`1},System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key already exists.
            </summary>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValueFactory">The function used to generate a value for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on the key's existing value</param>
            <returns>The new value for the key. This will be either be the result of addValueFactory (if the key was absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.AddOrUpdate(`0,`1,System.Func{`0,`1,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key already exists.
            </summary>
            <param name="key">The key to be added or whose value should be updated</param>
            <param name="addValue">The value to be added for an absent key</param>
            <param name="updateValueFactory">The function used to generate a new value for an existing key based on the key's existing value</param>
            <returns>The new value for the key. This will be either be the result of addValueFactory (if the key was absent) or the result of updateValueFactory (if the key was present).</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.AddOrUpdate(`0,System.Func{`0,`1})">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key already exists.
            </summary>
            <param name="key">The key to be added or updated.</param>
            <param name="valueFactory">The function used to generate a value for the key.</param>
            <returns>The value of the key in the dictionary after updating.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.AddOrUpdate(`0,`1)">
            <summary>
            Adds a key/value pair to the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key does not already exist,
            or updates a key/value pair in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> if the key already exists.
            </summary>
            <param name="key">The key to be added or updated.</param>
            <param name="value">The value to be assigned to the key.</param>
            <returns>The value of the key in the dictionary after updating.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.BinarySearch(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.BinarySearch(System.Collections.Generic.KeyValuePair{`0,`1},System.Collections.Generic.IComparer{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or-
            null to use the default comparer: Generic.Comparer(Of T).Default</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.BinarySearch(System.Int32,System.Int32,System.Collections.Generic.KeyValuePair{`0,`1},System.Collections.Generic.IComparer{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="index">The zero-based starting index of the range to search.</param>
            <param name="count">The length of the range to search.</param>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or- null to use
            the default comparer: Generic.Comparer(Of T).Default</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.IndexOf(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.IndexOf(System.Collections.Generic.KeyValuePair{`0,`1},System.Int32,System.Int32)">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="count">The number of elements in the section to search.</param>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the search.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.LastIndexOf(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.LastIndexOf(System.Collections.Generic.KeyValuePair{`0,`1},System.Int32)">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the backward search.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.LastIndexOf(System.Collections.Generic.KeyValuePair{`0,`1},System.Int32,System.Int32)">
            <summary>
            This function doesn't have the same meaning in the <see cref="T:GSF.Collections.ProcessDictionary`2"/> as it does in
            <see cref="T:GSF.Collections.ProcessQueue`1"/>, so it is marked as hidden from the editor.  However it returns
            <see cref="M:GSF.Collections.ProcessDictionary`2.IndexOfKey(`0)"/> so that it returns a value that at least makes sense
            in case it gets called.
            </summary>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the backward search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <returns>This method returns an <see cref="T:System.Int32"/> that is the index of the item.Key.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Sort">
            <summary>
            <see cref="T:GSF.Collections.ProcessDictionary`2"/> is based on a <see cref="T:GSF.Collections.DictionaryList`2"/> which is already
            sorted, so calling this function has no effect.  As a result this function is marked as hidden from the editor.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Sort(System.Collections.Generic.IComparer{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            <see cref="T:GSF.Collections.ProcessDictionary`2"/> is based on a <see cref="T:GSF.Collections.DictionaryList`2"/> which is already
            sorted, so calling this function has no effect.  As a result this function is marked as hidden from the editor.
            </summary>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or-
            null to use the default comparer: Generic.Comparer(Of T).Default</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Sort(System.Comparison{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            <see cref="T:GSF.Collections.ProcessDictionary`2"/> is based on a <see cref="T:GSF.Collections.DictionaryList`2"/> which is already
            sorted, so calling this function has no effect.  As a result this function is marked as hidden from the editor.
            </summary>
            <param name="comparison">The comparison to use when comparing elements.</param>
        </member>
        <member name="M:GSF.Collections.ProcessDictionary`2.Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>
            <see cref="T:GSF.Collections.ProcessDictionary`2"/> is based on a <see cref="T:GSF.Collections.DictionaryList`2"/> which is already
            sorted, so calling this function has no effect.  As a result this function is marked as hidden from the editor.
            </summary>
            <param name="index">The zero-based starting index of the range to search.</param>
            <param name="count">The length of the range to search.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or-
            null to use the default comparer: Generic.Comparer(Of T).Default</param>
        </member>
        <member name="T:GSF.Collections.QueueThreadingMode">
            <summary>
            Enumeration of possible <see cref="T:GSF.Collections.ProcessQueue`1"/> threading modes.
            </summary>
        </member>
        <member name="F:GSF.Collections.QueueThreadingMode.Asynchronous">
            <summary>
            Processes several items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> at once on different threads, where processing order is not important.
            </summary>
        </member>
        <member name="F:GSF.Collections.QueueThreadingMode.Synchronous">
            <summary>
            Processes items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> one at a time on a single thread, where processing order is important.
            </summary>
        </member>
        <member name="T:GSF.Collections.QueueProcessingStyle">
            <summary>
            Enumeration of possible <see cref="T:GSF.Collections.ProcessQueue`1"/> processing styles.
            </summary>
        </member>
        <member name="F:GSF.Collections.QueueProcessingStyle.OneAtATime">
            <summary>
            Defines <see cref="T:GSF.Collections.ProcessQueue`1"/> processing delegate to process only one item at a time.
            </summary>
            <remarks>
            This is the typical <see cref="T:GSF.Collections.QueueProcessingStyle"/> when the <see cref="T:GSF.Collections.QueueThreadingMode"/> is asynchronous.
            </remarks>
        </member>
        <member name="F:GSF.Collections.QueueProcessingStyle.ManyAtOnce">
            <summary>
            Defines <see cref="T:GSF.Collections.ProcessQueue`1"/> processing delegate to process all currently available items in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            Items are passed into delegate as an array.
            </summary>
            <remarks>
            This is the optimal <see cref="T:GSF.Collections.QueueProcessingStyle"/> when the <see cref="T:GSF.Collections.QueueThreadingMode"/> is synchronous.
            </remarks>
        </member>
        <member name="T:GSF.Collections.RequeueReason">
            <summary>
            Enumeration of possible requeue reasons.
            </summary>
        </member>
        <member name="F:GSF.Collections.RequeueReason.CannotProcess">
            <summary>
            Requeuing item since it cannot be processed at this time.
            </summary>
        </member>
        <member name="F:GSF.Collections.RequeueReason.Exception">
            <summary>
            Requeuing item due to an exception.
            </summary>
        </member>
        <member name="F:GSF.Collections.RequeueReason.Timeout">
            <summary>
            Requeing item due to timeout.
            </summary>
        </member>
        <member name="T:GSF.Collections.RequeueMode">
            <summary>
            Enumeration of possible requeue modes.
            </summary>
        </member>
        <member name="F:GSF.Collections.RequeueMode.Prefix">
            <summary>
            Requeues item at the beginning of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="F:GSF.Collections.RequeueMode.Suffix">
            <summary>
            Requeues item at the end of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="T:GSF.Collections.ProcessQueue`1">
            <summary>
            Represents a thread-safe (via locking) list of items, based on <see cref="T:System.Collections.Generic.List`1"/>, that get processed on independent threads with a consumer provided function.
            </summary>
            <typeparam name="T">Type of object to process</typeparam>
            <remarks>
            <para>This class acts as a strongly-typed collection of objects to be processed.</para>
            <para>Note that the <see cref="T:GSF.Collections.ProcessQueue`1"/> will not start processing until the Start method is called.</para>
            </remarks>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultProcessInterval">
            <summary>
            Default processing interval (in milliseconds).
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultMaximumThreads">
            <summary>
            Default maximum number of processing threads.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultProcessTimeout">
            <summary>
            Default processing timeout (in milliseconds).
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultRequeueOnTimeout">
            <summary>
            Default setting for requeuing items on processing timeout.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultRequeueOnException">
            <summary>
            Default setting for requeuing items on processing exceptions.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.RealTimeProcessInterval">
            <summary>
            Default real-time processing interval (in milliseconds).
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultRequeueModeOnTimeout">
            <summary>
            Default setting for requeuing mode on processing timeout.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueue`1.DefaultRequeueModeOnException">
            <summary>
            Default setting for requeuing mode on processing exceptions.
            </summary>
        </member>
        <member name="T:GSF.Collections.ProcessQueue`1.ProcessItemFunctionSignature">
            <summary>
            Function signature that defines a method to process items one at a time.
            </summary>
            <param name="item">Item to be processed.</param>
            <remarks>
            <para>Required unless <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> is implemented.</para>
            <para>Creates an asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> to process individual items - one item at a time - on multiple threads.</para>
            </remarks>
        </member>
        <member name="T:GSF.Collections.ProcessQueue`1.ProcessItemsFunctionSignature">
            <summary>
            Function signature that defines a method to process multiple items at once.
            </summary>
            <param name="items">Items to be processed.</param>
            <remarks>
            <para>Required unless <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> is implemented.</para>
            <para>Creates an asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> to process groups of items simultaneously on multiple threads.</para>
            </remarks>
        </member>
        <member name="T:GSF.Collections.ProcessQueue`1.CanProcessItemFunctionSignature">
            <summary>
            Function signature that determines if an item can be currently processed.
            </summary>
            <param name="item">Item to be checked for processing availability.</param>
            <returns>True, if item can be processed. The default is true.</returns>
            <remarks>
            <para>Implementation of this function is optional. It is assumed that an item can be processed if this
            function is not defined</para>
            <para>Items must eventually get to a state where they can be processed, or they will remain in the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            indefinitely.</para>
            <para>
            Note that when this function is implemented and ProcessingStyle = ManyAtOnce (i.e., 
            <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> is defined), then each item presented for 
            processing must evaluate as "CanProcessItem = True" before any items are processed.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.ItemProcessed">
            <summary>
            Event that is raised after an item has been successfully processed.
            </summary>
            <remarks>
            <para>Allows custom handling of successfully processed items.</para>
            <para>Allows notification when an item has completed processing in the allowed amount of time, if a process
            timeout is specified.</para>
            <para>Raised only when ProcessingStyle = OneAtATime (i.e., <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> is defined).</para>
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.ItemsProcessed">
            <summary>
            Event that is raised after an array of items have been successfully processed.
            </summary>
            <remarks>
            <para>Allows custom handling of successfully processed items.</para>
            <para>Allows notification when an item has completed processing in the allowed amount of time, if a process
            timeout is specified.</para>
            <para>Raised only when when ProcessingStyle = ManyAtOnce (i.e., <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> is defined).</para>
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.ItemTimedOut">
            <summary>
            Event that is raised if an item's processing time exceeds the specified process timeout.
            </summary>
            <remarks>
            <para>Allows custom handling of items that took too long to process.</para>
            <para>Raised only when ProcessingStyle = OneAtATime (i.e., <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> is defined).</para>
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.ItemsTimedOut">
            <summary>
            Event that is raised if the processing time for an array of items exceeds the specified process timeout.
            </summary>
            <remarks>
            <para>Allows custom handling of items that took too long to process.</para>
            <para>Raised only when ProcessingStyle = ManyAtOnce (i.e., <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> is defined).</para>
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.ProcessException">
            <summary>
            Event that is raised if an exception is encountered while attempting to processing an item in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <remarks>
            Processing will not stop for any exceptions thrown by the user function, but any captured exceptions will
            be exposed through this event.
            </remarks>
        </member>
        <member name="E:GSF.Collections.ProcessQueue`1.Disposed">
            <summary>
            Occurs when the class has been disposed.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.#ctor(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a <see cref="T:GSF.Collections.ProcessQueue`1"/> based on the generic List(Of T) class.
            </summary>
            <param name="processItemFunction">Delegate that defines a method to process one item at a time.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">The maximum number of threads for the queue to use.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.#ctor(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a <see cref="T:GSF.Collections.ProcessQueue`1"/> based on the generic List(Of T) class.
            </summary>
            <param name="processItemFunction">Delegate that defines a method to process one item at a time.</param>
            <param name="canProcessItemFunction">Delegate that determines if an item can currently be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">The maximum number of threads for the queue to use.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.#ctor(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> based on the generic List(Of T) class.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">The maximum number of threads for the queue to use.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.#ctor(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> based on the generic List(Of T) class.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate that determines if an item can currently be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">The maximum number of threads for the queue to use.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.#ctor(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Collections.Generic.IList{`0},System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Allows derived classes to define their own instance, if desired.
            </summary>
            <param name="processItemFunction">Delegate that defines a method to process one item at a time.</param>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate that determines if an item can currently be processed.</param>
            <param name="processList">A storage list for items to be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">The maximum number of threads for the queue to use.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Collections.ProcessQueue`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>The element at the specified index.</returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- index is equal to or greater than <see cref="T:GSF.Collections.ProcessQueue`1"/> length.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.TryTake(`0@)">
            <summary>
            Attempts to remove and return an object from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <param name="item">When this method returns, if the object was removed and returned successfully, item contains the removed object. If no object was available to be removed, the value is unspecified.</param>
            <returns><c>true</c> if an object was removed and returned successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.TryTake(`0[]@)">
            <summary>
            Attempts to remove and return all objects from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <param name="items">When this method returns, if any objects were removed and returned successfully, item array contains the removed objects. If no object was available to be removed, the value is null.</param>
            <returns><c>true</c> if any objects were removed and returned successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.IsReadOnly">
            <summary>Gets a value indicating whether the <see cref="T:GSF.Collections.ProcessQueue`1"/> is read-only.</summary>
            <returns>True, if the <see cref="T:GSF.Collections.ProcessQueue`1"/> is read-only; otherwise, false. In the default implementation, this property
            always returns false.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction">
            <summary>
            Gets or sets the user function for processing individual items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> one at a time.
            </summary>
            <remarks>
            <para>Cannot be defined simultaneously with <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/>.</para>
            <para>A <see cref="T:GSF.Collections.ProcessQueue`1"/> must be defined to process a single item at a time or many items at once.</para>
            <para>Implementation makes ProcessingStyle = OneAtATime.</para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction">
            <summary>
            Gets or sets the user function for processing multiple items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> at once.
            </summary>
            <remarks>
            <para>This function and <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> cannot be defined at the same time</para>
            <para>A <see cref="T:GSF.Collections.ProcessQueue`1"/> must be defined to process a single item at a time or many items at once</para>
            <para>Implementation of this function makes ProcessingStyle = ManyAtOnce</para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.CanProcessItemFunction">
            <summary>
            Gets or sets the user function determining if an item is ready to be processed.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessingIsRealTime">
            <summary>
            Gets indicator that items will be processed in real-time.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ThreadingMode">
            <summary>
            Gets the current <see cref="T:GSF.Collections.QueueThreadingMode"/> for the <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., synchronous or asynchronous).
            </summary>
            <remarks>
            <para>The maximum number of processing threads determines the <see cref="T:GSF.Collections.QueueThreadingMode"/>.</para>
            <para>If the maximum threads are set to one, item processing will be synchronous
            (i.e., ThreadingMode = Synchronous).</para>
            <para>If the maximum threads are more than one, item processing will be asynchronous
            (i.e., ThreadingMode = Asynchronous).</para>
            <para>
            Note that for asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/>, the processing interval will control how many threads are spawned
            at once. If items are processed faster than the specified processing interval, only one process thread
            will ever be spawned at a time. To ensure multiple threads are utilized to <see cref="T:GSF.Collections.ProcessQueue`1"/> items, lower
            the process interval (minimum process interval is 1 millisecond).
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessingStyle">
            <summary>
            Gets the item <see cref="T:GSF.Collections.QueueProcessingStyle"/> for the <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., one at a time or many at once).
            </summary>
            <returns>
            <para>OneAtATime, if the <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> is implemented.</para>
            <para>ManyAtOnce, if the <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> is implemented.</para>
            </returns>
            <remarks>
            <para>The implemented item processing function determines the <see cref="T:GSF.Collections.QueueProcessingStyle"/>.</para>
            <para>
            If the <see cref="T:GSF.Collections.QueueProcessingStyle"/> is ManyAtOnce, all available items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> are presented for processing
            at each processing interval. If you expect items to be processed in the order in which they were received, make
            sure you use a synchronous <see cref="T:GSF.Collections.ProcessQueue`1"/>. Real-time <see cref="T:GSF.Collections.ProcessQueue`1"/> are inherently synchronous.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessInterval">
            <summary>
            Gets or sets the interval, in milliseconds, on which new items begin processing.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.MaximumThreads">
            <summary>
            Gets or sets the maximum number of threads to process simultaneously.
            </summary>
            <value>Sets the maximum number of processing threads.</value>
            <returns>Maximum number of processing threads.</returns>
            <remarks>If MaximumThreads is set to one, item processing will be synchronous (i.e., ThreadingMode = Synchronous)</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ProcessTimeout">
            <summary>
            Gets or sets the maximum time, in milliseconds, allowed for processing an item.
            </summary>
            <value>Sets the maximum number of milliseconds allowed to process an item.</value>
            <returns>The maximum number of milliseconds allowed to process an item.</returns>
            <remarks>Set to Timeout.Infinite (i.e., -1) to allow processing to take as long as needed.</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.SynchronizedOperationType">
            <summary>
            Gets or sets the type of synchronized operation used to process items in a real-time <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.RequeueOnTimeout">
            <summary>
            Gets or sets whether or not to automatically place an item back into the <see cref="T:GSF.Collections.ProcessQueue`1"/> if the processing times out.
            </summary>
            <remarks>Ignored if the ProcessTimeout is set to Timeout.Infinite (i.e., -1).</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.RequeueOnException">
            <summary>
            Gets or sets whether or not to automatically place an item back into the <see cref="T:GSF.Collections.ProcessQueue`1"/> if an exception occurs
            while processing.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.RequeueModeOnTimeout">
            <summary>
            Gets or sets the mode of insertion used (prefix or suffix) when at item is placed back into the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            after processing times out.
            </summary>
            <remarks>Only relevant when RequeueOnTimeout = True.</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.RequeueModeOnException">
            <summary>
            Gets or sets the mode of insertion used (prefix or suffix) when at item is placed back into the
            <see cref="T:GSF.Collections.ProcessQueue`1"/> after an exception occurs while processing.
            </summary>
            <remarks>Only relevant when RequeueOnException = True.</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.Enabled">
            <summary>
            Gets or sets indicator that the <see cref="T:GSF.Collections.ProcessQueue`1"/> is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.IsProcessing">
            <summary>
            Gets indicator that the <see cref="T:GSF.Collections.ProcessQueue`1"/> is actively processing items.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.IsEmpty">
            <summary>
            Gets a value that indicates whether the <see cref="T:GSF.Collections.ProcessQueue`1"/> is empty.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ItemsBeingProcessed">
            <summary>
            Gets the total number of items currently being processed.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.TotalProcessedItems">
            <summary>
            Gets the total number of items processed so far.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.TotalFunctionCalls">
            <summary>
            Gets the total number of calls to <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> or <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.ThreadCount">
            <summary>
            Gets the current number of active threads.
            </summary>
            <returns>Current number of active threads.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the <see cref="T:GSF.Collections.ProcessQueue`1"/> has been active.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.Name">
            <summary>
            Gets or sets name for this <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <remarks>
            This name is used for class identification in strings (e.g., used in error messages).
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.Count">
            <summary>Gets the number of elements actually contained in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The number of elements actually contained in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.IsSynchronized">
            <summary>Gets a value indicating whether access to the <see cref="T:GSF.Collections.ProcessQueue`1"/> is synchronized (thread safe).  Always returns true for <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>true, <see cref="T:GSF.Collections.ProcessQueue`1"/> is always synchronized (thread safe).</returns>
            <remarks>The <see cref="T:GSF.Collections.ProcessQueue`1"/> is effectively "synchronized" since all functions SyncLock operations internally.</remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.CancellationToken">
            <summary>
            Gets the per processing thread cancellation token to check when a <see cref="P:GSF.Collections.ProcessQueue`1.ProcessTimeout"/> is specified.
            </summary>
            <remarks>
            This token should be checked in the user implemented <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemFunction"/> or <see cref="P:GSF.Collections.ProcessQueue`1.ProcessItemsFunction"/> to
            determine if a timeout has occurred so that the code can cleanly exit.
            </remarks>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.CurrentStatistics">
            <summary>
            Gets the current run-time statistics of the <see cref="T:GSF.Collections.ProcessQueue`1"/> as a single group of values.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.Status">
            <summary>
            Gets current status of <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.InternalEnumerable">
            <summary>
            Allows derived classes to access the interfaced internal <see cref="T:GSF.Collections.ProcessQueue`1"/> directly.
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.SyncRoot">
            <summary>
            Gets an object that can be used to synchronize access to the <see cref="T:GSF.Collections.ProcessQueue`1"/>. 
            </summary>
        </member>
        <member name="P:GSF.Collections.ProcessQueue`1.InternalList">
            <summary>
            Gets the internal list for direct use by <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Collections.ProcessQueue`1"/> object.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Collections.ProcessQueue`1"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.SignalDataModified">
            <summary>
            Manually signals that data has been modified and processing should resume.
            </summary>
            <remarks>
            This function should be called in cases where a user may need to signal data modification. For example,
            if <typeparamref name="T"/> was a dictionary or list that was updated - you would need to manually
            signal that data had changed in this item.
            </remarks>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Contains(`0)">
            <summary>
            Determines whether an element is in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <returns>True, if item is found in the <see cref="T:GSF.Collections.ProcessQueue`1"/>; otherwise, false.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ToArray">
            <summary>
            Copies the elements contained in the <see cref="T:GSF.Collections.ProcessQueue`1"/> to a new array. 
            </summary>
            <returns>A new array containing the elements copied from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <returns>An enumerator for the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Start">
            <summary>
            Starts item processing.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Stop">
            <summary>
            Stops item processing.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Flush">
            <summary>
            Blocks the current thread, if the <see cref="T:GSF.Collections.ProcessQueue`1"/> is active (i.e., user has called "Start" method), until all items
            in <see cref="T:GSF.Collections.ProcessQueue`1"/> are processed, and then stops the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <remarks>
            <para>
            Begins processing items as quickly as possible, regardless of currently defined process interval, until all
            items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> have been processed. Stops the <see cref="T:GSF.Collections.ProcessQueue`1"/> when this function ends.
            This method is typically called on shutdown to make sure any remaining queued items get processed before the
            <see cref="T:GSF.Collections.ProcessQueue`1"/> is destructed.
            </para>
            <para>
            It is possible for items to be added to the <see cref="T:GSF.Collections.ProcessQueue`1"/> while the flush is executing. The flush will continue to
            process items as quickly as possible until the <see cref="T:GSF.Collections.ProcessQueue`1"/> is empty. Unless the user stops queuing items to be
            processed, the flush call may never return (not a happy situation on shutdown). For this reason, during this
            function call, requeuing of items on exception or process timeout is temporarily disabled.
            </para>
            <para>
            The <see cref="T:GSF.Collections.ProcessQueue`1"/> does not clear queue prior to destruction. If the user fails to call this method before the
            class is destructed, there may be items that remain unprocessed in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.OnItemProcessed(`0)">
            <summary>
            Raises the base class <see cref="E:GSF.Collections.ProcessQueue`1.ItemProcessed"/> event.
            </summary>
            <remarks>
            Derived classes cannot raise events of their base classes, so we expose event wrapper methods to accommodate
            as needed.
            </remarks>
            <param name="item">A generic type T to be passed to ItemProcessed.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.OnItemsProcessed(`0[])">
            <summary>
            Raises the base class <see cref="E:GSF.Collections.ProcessQueue`1.ItemsProcessed"/> event.
            </summary>
            <remarks>
            Derived classes cannot raise events of their base classes, so we expose event wrapper methods to accommodate
            as needed.
            </remarks>
            <param name="items">An array of generic type T to be passed to ItemsProcessed.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.OnItemTimedOut(`0)">
            <summary>
            Raises the base class <see cref="E:GSF.Collections.ProcessQueue`1.ItemTimedOut"/> event.
            </summary>
            <remarks>
            Derived classes cannot raise events of their base classes, so we expose event wrapper methods to accommodate
            as needed.
            </remarks>
            <param name="item">A generic type T to be passed to ItemProcessed.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.OnItemsTimedOut(`0[])">
            <summary>
            Raises the base class <see cref="E:GSF.Collections.ProcessQueue`1.ItemsTimedOut"/> event.
            </summary>
            <remarks>
            Derived classes cannot raise events of their base classes, so we expose event wrapper methods to accommodate
            as needed.
            </remarks>
            <param name="items">An array of generic type T to be passed to ItemsProcessed.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.OnProcessException(System.Exception)">
            <summary>
            Raises the base class <see cref="E:GSF.Collections.ProcessQueue`1.ProcessException"/> event.
            </summary>
            <remarks>
            Derived classes cannot raise events of their base classes, so we expose event wrapper methods to accommodate
            as needed.
            </remarks>
            <param name="ex"><see cref="T:System.Exception"/> to be passed to ProcessException.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.DataAdded">
            <summary>
            Notifies queue that data was added and/or modified, so it can begin processing data.
            </summary>
            <remarks>
            <para>
            Derived classes *must* make sure to call this method after data gets added, so that the
            process timer can be enabled for intervaled <see cref="T:GSF.Collections.ProcessQueue`1"/> and data processing can begin.
            </para>
            <para>
            To make sure items in the <see cref="T:GSF.Collections.ProcessQueue`1"/> always get processed, this function is expected to be
            invoked from within a SyncLock of the exposed SyncRoot (i.e., InternalList).
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CanProcessItem(`0)">
            <summary>
            Determines if an item can be processed.
            </summary>
            <values>True, if user provided no implementation for the CanProcessItemFunction.</values>
            <remarks>
            <para>
            Use this function instead of invoking the CanProcessItemFunction pointer
            directly, since implementation of this delegate is optional.
            </para>
            </remarks>
            <param name="item">The item T to process.</param>
            <returns>A <see cref="T:System.Boolean"/> value indicating whether it can process the item or not.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CanProcessItems(`0[])">
            <summary>
            Determines if all items can be processed.
            </summary>
            <values>True, if user provided no implementation for the CanProcessItemFunction.</values>
            <remarks>
            <para>
            Use this function instead of invoking the CanProcessItemFunction pointer
            directly, since implementation of this delegate is optional.
            </para>
            </remarks>
            <param name="items">An array of items of type T.</param>
            <returns>A <see cref="T:System.Boolean"/> value indicating whether the process queue can process the items.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.RequeueItem(`0,GSF.Collections.RequeueReason)">
            <summary>
            Requeues item into <see cref="T:GSF.Collections.ProcessQueue`1"/> according to specified requeue reason.
            </summary>
            <param name="item">A generic item of type T to be requeued.</param>
            <param name="reason">The reason the object is being requeued.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.RequeueItems(`0[],GSF.Collections.RequeueReason)">
            <summary>
            Requeues items into <see cref="T:GSF.Collections.ProcessQueue`1"/> according to specified requeue reason.
            </summary>
            <param name="items">Array of type T to be requeued.</param>
            <param name="reason">The reason the object is being requeued.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
            <param name="collection">
            The collection whose elements should be added to the end of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            The collection itself cannot be null, but it can contain elements that are null, if type T is a reference type.
            </param>
            <exception cref="T:System.ArgumentNullException">collection is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.BinarySearch(`0)">
            <summary>
            Searches the entire sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, using a binary search algorithm, for an element using the
            default comparer and returns the zero-based index of the element.
            </summary>
            <remarks>
            <see cref="T:GSF.Collections.ProcessQueue`1"/> must be sorted in order for this function to return an accurate result.
            </remarks>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <returns>
            The zero-based index of item in the sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, if item is found; otherwise, a negative number that is the
            bitwise complement of the index of the next element that is larger than item or, if there is no larger element,
            the bitwise complement of count.
            </returns>
            <exception cref="T:System.InvalidOperationException">The default comparer, Generic.Comparer.Default, cannot find an
            implementation of the IComparable generic interface or the IComparable interface for type T.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.BinarySearch(`0,System.Collections.Generic.IComparer{`0})">
            <summary>
            Searches the entire sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, using a binary search algorithm, for an element using the
            specified comparer and returns the zero-based index of the element.
            </summary>
            <remarks>
            <see cref="T:GSF.Collections.ProcessQueue`1"/> must be sorted in order for this function to return an accurate result.
            </remarks>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or-
            null to use the default comparer: Generic.Comparer(Of T).Default</param>
            <returns>
            The zero-based index of item in the sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, if item is found; otherwise, a negative number that is the
            bitwise complement of the index of the next element that is larger than item or, if there is no larger element,
            the bitwise complement of count.
            </returns>
            <exception cref="T:System.InvalidOperationException">The default comparer, Generic.Comparer.Default, cannot find an
            implementation of the IComparable generic interface or the IComparable interface for type T.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.BinarySearch(System.Int32,System.Int32,`0,System.Collections.Generic.IComparer{`0})">
            <summary>
            Searches a range of elements in the sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, using a binary search algorithm, for an
            element using the specified comparer and returns the zero-based index of the element.
            </summary>
            <remarks>
            <see cref="T:GSF.Collections.ProcessQueue`1"/> must be sorted in order for this function to return an accurate result.
            </remarks>
            <param name="index">The zero-based starting index of the range to search.</param>
            <param name="count">The length of the range to search.</param>
            <param name="item">The object to locate. The value can be null for reference types.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements -or- null to use
            the default comparer: Generic.Comparer(Of T).Default</param>
            <returns>
            The zero-based index of item in the sorted <see cref="T:GSF.Collections.ProcessQueue`1"/>, if item is found; otherwise, a negative number that is the
            bitwise complement of the index of the next element that is larger than item or, if there is no larger element,
            the bitwise complement of count.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            -or- count is less than 0 -or- startIndex and count do not specify a valid section in the <see cref="T:GSF.Collections.ProcessQueue`1"/></exception>
            <exception cref="T:System.InvalidOperationException">The default comparer, Generic.Comparer.Default, cannot find an
            implementation of the IComparable generic interface or the IComparable interface for type T.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ConvertAll``1(System.Converter{`0,``0})">
            <summary>Converts the elements in the current <see cref="T:GSF.Collections.ProcessQueue`1"/> to another type, and returns a <see cref="T:GSF.Collections.ProcessQueue`1"/> containing the
            converted elements.</summary>
            <returns>A generic list of the target type containing the converted elements from the current <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
            <param name="converter">A Converter delegate that converts each element from one type to another type.</param>
            <exception cref="T:System.ArgumentNullException">converter is null.</exception>
            <typeparam name="TOutput">The generic type used.</typeparam>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Exists(System.Predicate{`0})">
            <summary>Determines whether the <see cref="T:GSF.Collections.ProcessQueue`1"/> contains elements that match the conditions defined by the specified
            predicate.</summary>
            <returns>True, if the <see cref="T:GSF.Collections.ProcessQueue`1"/> contains one or more elements that match the conditions defined by the specified
            predicate; otherwise, false.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the elements to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Find(System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the first occurrence within the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The first element that matches the conditions defined by the specified predicate, if found;
            otherwise, the default value for type T.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindAll(System.Predicate{`0})">
            <summary>Retrieves all elements that match the conditions defined by the specified predicate.</summary>
            <returns>A generic list containing all elements that match the conditions defined by the specified predicate,
            if found; otherwise, an empty list.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the elements to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindIndex(System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the first occurrence within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the
            specified index to the last element.</summary>
            <returns>The zero-based index of the first occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindIndex(System.Int32,System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the first occurrence within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the
            specified index to the last element.</summary>
            <returns>The zero-based index of the first occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the first occurrence within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the
            specified index to the last element.</summary>
            <returns>The zero-based index of the first occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            -or- count is less than 0 -or- startIndex and count do not specify a valid section in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindLast(System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type T.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindLastIndex(System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the last occurrence within the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The zero-based index of the last occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindLastIndex(System.Int32,System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the last occurrence within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the
            first element to the specified index.</summary>
            <returns>The zero-based index of the last occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="startIndex">The zero-based starting index of the backward search.</param>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.FindLastIndex(System.Int32,System.Int32,System.Predicate{`0})">
            <summary>Searches for an element that matches the conditions defined by the specified predicate, and returns
            the zero-based index of the last occurrence within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that contains the
            specified number of elements and ends at the specified index.</summary>
            <returns>The zero-based index of the last occurrence of an element that matches the conditions defined by
            match, if found; otherwise, –1.</returns>
            <param name="count">The number of elements in the section to search.</param>
            <param name="startIndex">The zero-based starting index of the backward search.</param>
            <param name="match">The Predicate delegate that defines the conditions of the element to search for.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            -or- count is less than 0 -or- startIndex and count do not specify a valid section in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ForEach(System.Action{`0})">
            <summary>Performs the specified action on each element of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <param name="action">The Action delegate to perform on each element of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">action is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.GetRange(System.Int32,System.Int32)">
            <summary>Creates a shallow copy of a range of elements in the source <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>A shallow copy of a range of elements in the source <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
            <param name="count">The number of elements in the range.</param>
            <param name="index">The zero-based <see cref="T:GSF.Collections.ProcessQueue`1"/> index at which the range starts.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- count is less than 0.</exception>
            <exception cref="T:System.ArgumentException">index and count do not denote a valid range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.IndexOf(`0,System.Int32)">
            <summary>Searches for the specified object and returns the zero-based index of the first occurrence within
            the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the specified index to the last element.</summary>
            <returns>The zero-based index of the first occurrence of item within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that
            extends from index to the last element, if found; otherwise, –1.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the search.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.IndexOf(`0,System.Int32,System.Int32)">
            <summary>Searches for the specified object and returns the zero-based index of the first occurrence within
            the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that starts at the specified index and contains the specified number of
            elements.</summary>
            <returns>The zero-based index of the first occurrence of item within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that
            starts at index and contains count number of elements, if found; otherwise, –1.</returns>
            <param name="count">The number of elements in the section to search.</param>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the search.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>
            -or- count is less than 0 -or- index and count do not specify a valid section in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.InsertRange(System.Int32,System.Collections.Generic.IEnumerable{`0})">
            <summary>Inserts the elements of a collection into the <see cref="T:GSF.Collections.ProcessQueue`1"/> at the specified index.</summary>
            <param name="collection">The collection whose elements should be inserted into the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The collection
            itself cannot be null, but it can contain elements that are null, if type T is a reference type.</param>
            <param name="index">The zero-based index at which the new elements should be inserted.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- index is greater than <see cref="T:GSF.Collections.ProcessQueue`1"/> length.</exception>
            <exception cref="T:System.ArgumentNullException">collection is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.LastIndexOf(`0)">
            <summary>Searches for the specified object and returns the zero-based index of the last occurrence within the
            entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The zero-based index of the last occurrence of item within the entire the <see cref="T:GSF.Collections.ProcessQueue`1"/>, if found;
            otherwise, –1.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.LastIndexOf(`0,System.Int32)">
            <summary>Searches for the specified object and returns the zero-based index of the last occurrence within the
            range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that extends from the first element to the specified index.</summary>
            <returns>The zero-based index of the last occurrence of item within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that
            extends from the first element to index, if found; otherwise, –1.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the backward search.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/>. </exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.LastIndexOf(`0,System.Int32,System.Int32)">
            <summary>Searches for the specified object and returns the zero-based index of the last occurrence within the
            range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that contains the specified number of elements and ends at the specified index.</summary>
            <returns>The zero-based index of the last occurrence of item within the range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/> that
            contains count number of elements and ends at index, if found; otherwise, –1.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
            <param name="index">The zero-based starting index of the backward search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is outside the range of valid indexes for the <see cref="T:GSF.Collections.ProcessQueue`1"/> -or-
            count is less than 0 -or- index and count do not specify a valid section in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.RemoveAll(System.Predicate{`0})">
            <summary>Removes the all the elements that match the conditions defined by the specified predicate.</summary>
            <returns>The number of elements removed from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
            <param name="match">The Predicate delegate that defines the conditions of the elements to remove.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.RemoveRange(System.Int32,System.Int32)">
            <summary>Removes a range of elements from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <param name="count">The number of elements to remove.</param>
            <param name="index">The zero-based starting index of the range of elements to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- count is less than 0.</exception>
            <exception cref="T:System.ArgumentException">index and count do not denote a valid range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Reverse">
            <summary>Reverses the order of the elements in the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Reverse(System.Int32,System.Int32)">
            <summary>Reverses the order of the elements in the specified range.</summary>
            <param name="count">The number of elements in the range to reverse.</param>
            <param name="index">The zero-based starting index of the range to reverse.</param>
            <exception cref="T:System.ArgumentException">index and count do not denote a valid range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- count is less than 0.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Sort">
            <summary>Sorts the elements in the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>, using the default comparer.</summary>
            <exception cref="T:System.InvalidOperationException">The default comparer, Generic.Comparer.Default, cannot find an
            implementation of the IComparable generic interface or the IComparable interface for type T.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Sort(System.Collections.Generic.IComparer{`0})">
            <summary>Sorts the elements in the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>, using the specified comparer.</summary>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements, or null to use
            the default comparer: Generic.Comparer.Default.</param>
            <exception cref="T:System.ArgumentException">The implementation of comparer caused an error during the sort. For
            example, comparer might not return 0 when comparing an item with itself.</exception>
            <exception cref="T:System.InvalidOperationException">the comparer is null and the default comparer,
            Generic.Comparer.Default, cannot find an implementation of the IComparable generic interface or the
            IComparable interface for type T.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Sort(System.Int32,System.Int32,System.Collections.Generic.IComparer{`0})">
            <summary>Sorts the elements in a range of elements in the <see cref="T:GSF.Collections.ProcessQueue`1"/>, using the specified comparer.</summary>
            <param name="count">The length of the range to sort.</param>
            <param name="index">The zero-based starting index of the range to sort.</param>
            <param name="comparer">The Generic.IComparer implementation to use when comparing elements, or null to use
            the default comparer: Generic.Comparer.Default.</param>
            <exception cref="T:System.ArgumentException">The implementation of comparer caused an error during the sort. For
            example, comparer might not return 0 when comparing an item with itself.</exception>
            <exception cref="T:System.InvalidOperationException">the comparer is null and the default comparer,
            Generic.Comparer.Default, cannot find an implementation of the IComparable generic interface or the
            IComparable interface for type T.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- count is less than 0.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Sort(System.Comparison{`0})">
            <summary>Sorts the elements in the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>, using the specified comparison.</summary>
            <param name="comparison">The comparison to use when comparing elements.</param>
            <exception cref="T:System.ArgumentException">The implementation of comparison caused an error during the sort. For
            example, comparison might not return 0 when comparing an item with itself.</exception>
            <exception cref="T:System.ArgumentNullException">comparison is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.TrueForAll(System.Predicate{`0})">
            <summary>Determines whether every element in the <see cref="T:GSF.Collections.ProcessQueue`1"/> matches the conditions defined by the specified
            predicate.</summary>
            <returns>True, if every element in the <see cref="T:GSF.Collections.ProcessQueue`1"/> matches the conditions defined by the specified predicate;
            otherwise, false. If the <see cref="T:GSF.Collections.ProcessQueue`1"/> has no elements, the return value is true.</returns>
            <param name="match">The Predicate delegate that defines the conditions to check against the elements.</param>
            <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Add(`0)">
            <summary>Adds an item to the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <param name="item">The item to add to the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Insert(System.Int32,`0)">
            <summary>Inserts an element into the <see cref="T:GSF.Collections.ProcessQueue`1"/> at the specified index.</summary>
            <param name="item">The object to insert. The value can be null for reference types.</param>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- index is greater than <see cref="T:GSF.Collections.ProcessQueue`1"/> length.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CopyTo(`0[],System.Int32)">
            <summary>Copies the entire <see cref="T:GSF.Collections.ProcessQueue`1"/> to a compatible one-dimensional array, starting at the beginning of the
            target array.</summary>
            <param name="array">The one-dimensional array that is the destination of the elements copied from <see cref="T:GSF.Collections.ProcessQueue`1"/>. The
            array must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
            <exception cref="T:System.ArgumentException">arrayIndex is equal to or greater than the length of array -or- the
            number of elements in the source <see cref="T:GSF.Collections.ProcessQueue`1"/> is greater than the available space from arrayIndex to the end of the
            destination array.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">arrayIndex is less than 0.</exception>
            <exception cref="T:System.ArgumentNullException">array is null.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.IndexOf(`0)">
            <summary>Searches for the specified object and returns the zero-based index of the first occurrence within
            the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>The zero-based index of the first occurrence of item within the entire <see cref="T:GSF.Collections.ProcessQueue`1"/>, if found; otherwise, –1.</returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Clear">
            <summary>
            Removes all elements from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.Remove(`0)">
            <summary>Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <returns>True, if item is successfully removed; otherwise, false. This method also returns false if item was
            not found in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</returns>
            <param name="item">The object to remove from the <see cref="T:GSF.Collections.ProcessQueue`1"/>. The value can be null for reference types.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.RemoveAt(System.Int32)">
            <summary>Removes the element at the specified index of the <see cref="T:GSF.Collections.ProcessQueue`1"/>.</summary>
            <param name="index">The zero-based index of the element to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than 0 -or- index is equal to or greater than
            <see cref="T:GSF.Collections.ProcessQueue`1"/> length.</exception>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ProcessItem(`0)">
            <summary>
            Handles standard processing of a single item. 
            </summary>
            <param name="item">A generic item of type T to be processed.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ProcessItems(`0[])">
            <summary>
            Handles standard processing of multiple items.
            </summary>
            <param name="items">Array of type T.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ProcessTimerThreadProc(System.Object,System.Timers.ElapsedEventArgs)">
            <summary>
            Processes queued items on an interval.
            </summary>
            <param name="sender">The sender object of the item.</param>
            <param name="e">Arguments for the elapsed event.</param>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ProcessNextItem">
            <summary>
            Processes next item in queue, one at a time (i.e., ProcessingStyle = OneAtATime). 
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.ProcessNextItems">
            <summary>
            Processes next items in an array of items as a group (i.e., ProcessingStyle = ManyAtOnce).
            </summary>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100, MaximumThreads = 5,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100, MaximumThreads = 5,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,System.Int32)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Int32)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new asynchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> using  specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature)">
            <summary>
            Creates a new synchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) with the default settings:
            ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new synchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) with the default settings:
            ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,System.Double,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new synchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) using specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new synchronous <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) using specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature)">
            <summary>
            Creates a new real-time <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessTimeout = Infinite,
            RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new real-time <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessTimeout = Infinite,
            RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new real-time <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new real-time <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemFunction">Delegate that processes one item at a time.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            MaximumThreads = 5, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,System.Int32)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Int32)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessInterval = 100,
            ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateAsynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new asynchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="maximumThreads">An <see cref="T:System.Int32"/> value that determines the maximum number of threads used to process items.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature)">
            <summary>
            Creates a new synchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) with the default settings:
            ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new synchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) with the default settings:
            ProcessInterval = 100, ProcessTimeout = Infinite, RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,System.Double,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new synchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateSynchronousQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Double,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new synchronous, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., single process thread) using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processInterval">a <see cref="T:System.Double"/> value which represents the process interval in milliseconds.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature)">
            <summary>
            Creates a new real-time, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessTimeout = Infinite,
            RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature)">
            <summary>
            Creates a new real-time, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> with the default settings: ProcessTimeout = Infinite,
            RequeueOnTimeout = False, RequeueOnException = False.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new real-time, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="M:GSF.Collections.ProcessQueue`1.CreateRealTimeQueue(GSF.Collections.ProcessQueue{`0}.ProcessItemsFunctionSignature,GSF.Collections.ProcessQueue{`0}.CanProcessItemFunctionSignature,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Creates a new real-time, bulk item <see cref="T:GSF.Collections.ProcessQueue`1"/> using specified settings.
            </summary>
            <param name="processItemsFunction">Delegate that defines a method to process multiple items at once.</param>
            <param name="canProcessItemFunction">Delegate which determines whether an item can be processed.</param>
            <param name="processTimeout">The number of seconds before a process should timeout.</param>
            <param name="requeueOnTimeout">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue an item on timeout.</param>
            <param name="requeueOnException">A <see cref="T:System.Boolean"/> value that indicates whether a process should requeue after an exception.</param>
            <returns>A ProcessQueue object based on type T.</returns>
        </member>
        <member name="T:GSF.Collections.ProcessQueueStatistics">
            <summary>
            Represents the statistics of a <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.IsEnabled">
            <summary>
            Gets indicator that the <see cref="T:GSF.Collections.ProcessQueue`1"/> is currently enabled.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.IsProcessing">
            <summary>
            Gets indicator that the <see cref="T:GSF.Collections.ProcessQueue`1"/> is actively processing items.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ProcessingInterval">
            <summary>
            Gets the interval, in milliseconds, on which new items begin processing.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ProcessTimeout">
            <summary>
            Gets the maximum time, in milliseconds, allowed for processing an item.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ThreadingMode">
            <summary>
            Gets the current <see cref="T:GSF.Collections.QueueThreadingMode"/> for the <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., synchronous or asynchronous).
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ProcessingStyle">
            <summary>
            Gets the item <see cref="T:GSF.Collections.QueueProcessingStyle"/> for the <see cref="T:GSF.Collections.ProcessQueue`1"/> (i.e., one at a time or many at once).
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the process <see cref="T:GSF.Collections.ProcessQueue`1"/> has been active.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ActiveThreads">
            <summary>
            Gets the current number of active threads.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.QueueCount">
            <summary>
            Gets the number of elements queued for processing in the <see cref="T:GSF.Collections.ProcessQueue`1"/>.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.ItemsBeingProcessed">
            <summary>
            Gets the total number of items currently being processed.
            </summary>
        </member>
        <member name="F:GSF.Collections.ProcessQueueStatistics.TotalProcessedItems">
            <summary>
            Gets the total number of items processed so far.
            </summary>
        </member>
        <member name="T:GSF.Collections.RollingWindow`1">
            <summary>
            Represents a rolling window of data with FIFO semantics that will
            automatically truncate the data when the window size is exceeded.
            </summary>
            <typeparam name="T">The type of objects to be stored in the rolling window.</typeparam>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.#ctor(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Collections.RollingWindow`1"/> class.
            </summary>
            <param name="windowSize">The size of the window maintained by the collection.</param>
        </member>
        <member name="P:GSF.Collections.RollingWindow`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.RollingWindow`1.WindowSize">
            <summary>
            Gets the size of the window maintained by the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.RollingWindow`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.Collections.RollingWindow`1"/> is read-only.
            </summary>
        </member>
        <member name="P:GSF.Collections.RollingWindow`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>
            The element at the specified index.
            </returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:GSF.Collections.RollingWindow`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.Add(`0)">
            <summary>
            Adds an item to the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
            <param name="item">The object to add to the <see cref="T:GSF.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item to the <see cref="T:GSF.Collections.RollingWindow`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:GSF.Collections.RollingWindow`1"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:GSF.Collections.RollingWindow`1"/>.</exception>
            <exception cref="T:System.InvalidOperationException">Rolling window is full (<see cref="P:GSF.Collections.RollingWindow`1.Count"/> = <see cref="P:GSF.Collections.RollingWindow`1.WindowSize"/>.</exception>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.Remove(`0)">
            <summary>
            Removes the first occurrence of a specific object from the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
            <returns>
            true if <paramref name="item"/> was successfully removed from the <see cref="T:GSF.Collections.RollingWindow`1"/>; otherwise, false.
            This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:GSF.Collections.RollingWindow`1"/> item at the specified index.
            </summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is not a valid index in the <see cref="T:GSF.Collections.RollingWindow`1"/>.</exception>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
            <returns>
            The index of <paramref name="item"/> if found in the list; otherwise, -1.
            </returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:GSF.Collections.RollingWindow`1"/> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item"/> is found in the <see cref="T:GSF.Collections.RollingWindow`1"/>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:GSF.Collections.RollingWindow`1"/>.</param>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.Clear">
            <summary>
            Removes all items from the <see cref="T:GSF.Collections.RollingWindow`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:GSF.Collections.RollingWindow`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from <see cref="T:GSF.Collections.RollingWindow`1"/>. The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array"/> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentException">The number of elements in the source <see cref="T:GSF.Collections.RollingWindow`1"/> is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination <paramref name="array"/>.</exception>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Collections.RollingWindow`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Collections.SettingsCollection">
            <summary>
            A collection of settings that can be represented as a string of key-value pairs for easy persistence and also provide built-in validation support for the settings.
            </summary>
            <example>
            This example shows how to use <see cref="T:GSF.Collections.SettingsCollection"/> for key-value pair type settings and apply validation to them:
            <code>
            using System;
            using System.Collections.Generic;
            using GSF.Collections;
            using GSF.Validation;
            
            class Program
            {
                static void Main(string[] args)
                {
                    // Initialize settings.
                    SettingsCollection settings = "Server=localhost;Port=5000";
                    // Add validation rules.
                    settings.Validation.AddValidation("Server", new NonNullStringValidator());
                    settings.Validation.AddValidation("Port", new NonNullStringValidator());
                    settings.Validation.AddValidation("Port", new NumericRangeValidator(1000, 2000));
            
                    // Validate settings.
                    string errors;
                    if (!settings.Validation.Validate(out errors))
                    {
                        // Show validation errors.
                        Console.WriteLine(string.Format("Settings: {0}\r\n", settings));
                        Console.WriteLine(errors);
                    }
                    else
                    {
                        // Show stored settings.
                        foreach (KeyValuePair&lt;string, string&gt; setting in settings)
                        {
                            Console.WriteLine(string.Format("Key={0}; Value={1}", setting.Key, setting.Value));
                        }
                    }
                    
                    Console.ReadLine();
                }
            }
            </code>
            </example>
            <seealso cref="T:GSF.Validation.ValidationService"/>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.SettingsCollection"/> class.
            </summary>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.#ctor(System.Collections.Generic.IEqualityComparer{System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.SettingsCollection"/> class.
            </summary>
            <param name="comparer">The <see cref="T:System.StringComparer"/> to use when comparing keys or null to use the default <see cref="T:System.StringComparer"/>.</param>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.SettingsCollection"/> class.
            </summary>
            <param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are to be copied to this <see cref="T:GSF.Collections.SettingsCollection"/>.</param>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.#ctor(System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IEqualityComparer{System.String})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Collections.SettingsCollection"/> class.
            </summary>
            <param name="dictionary">The <see cref="T:System.Collections.Generic.IDictionary`2"/> whose elements are to be copied to this <see cref="T:GSF.Collections.SettingsCollection"/>.</param>
            <param name="comparer">The <see cref="T:System.StringComparer"/> to use when comparing keys or null to use the default <see cref="T:System.StringComparer"/>.</param>
        </member>
        <member name="P:GSF.Collections.SettingsCollection.Validation">
            <summary>
            Gets the <see cref="T:GSF.Validation.ValidationService"/> object used to perform validation on the <see cref="P:System.Collections.Generic.Dictionary`2.Values"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.TryAdd(System.String,System.String)">
            <summary>
            Adds an element with the specified <paramref name="key"/> and <paramref name="value"/> if an element is not present with the specified <paramref name="key"/>.
            </summary>
            <param name="key">The key of the element to add.</param>
            <param name="value">The value of the element to add.</param>
            <returns><strong>true</strong> if an element is added; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.ToString">
            <summary>
            Gets the <see cref="T:System.String"/> representation of <see cref="T:GSF.Collections.SettingsCollection"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents <see cref="T:GSF.Collections.SettingsCollection"/>.</returns>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.op_Implicit(GSF.Collections.SettingsCollection)~System.String">
            <summary>
            Implicitly converts <see cref="T:GSF.Collections.SettingsCollection"/> to a <see cref="T:System.String"/>.
            </summary>
            <param name="value">The <see cref="T:GSF.Collections.SettingsCollection"/> to convert.</param>
            <returns>A <see cref="T:System.String"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Collections.SettingsCollection.op_Implicit(System.String)~GSF.Collections.SettingsCollection">
            <summary>
            Implicitly converts <see cref="T:System.String"/> to <see cref="T:GSF.Collections.SettingsCollection"/>.
            </summary>
            <param name="value">The <see cref="T:System.String"/> to convert.</param>
            <returns>A <see cref="T:GSF.Collections.SettingsCollection"/> object representing the result.</returns>
        </member>
        <member name="T:GSF.Collections.ConcurrentIsolatedQueue`1">
            <summary>
            Provides a buffer of point data where reads are isolated from writes.
            This class differs from <see cref="T:GSF.Collections.IsolatedQueue`1"/> because writes can be concurrent. 
            Reads on the other hand have to be externally synchronized.
            </summary>
        </member>
        <member name="F:GSF.Collections.ConcurrentIsolatedQueue`1.IsolatedNode.Slots">
            <summary>
            The slots to put stuff.
            </summary>
        </member>
        <member name="F:GSF.Collections.ConcurrentIsolatedQueue`1.IsolatedNode.NextNode">
            <summary>
            The next node of the linked list.
            </summary>
        </member>
        <member name="F:GSF.Collections.ConcurrentIsolatedQueue`1.IsolatedNode.PositionIndex">
            <summary>
            The base index of this node
            </summary>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.IsolatedNode.#ctor">
            <summary>
            Creates a <see cref="T:GSF.Collections.ConcurrentIsolatedQueue`1.IsolatedNode"/>
            </summary>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.#ctor">
            <summary>
            Creates an <see cref="T:GSF.Collections.IsolatedQueue`1"/>
            </summary>
        </member>
        <member name="P:GSF.Collections.ConcurrentIsolatedQueue`1.Count">
            <summary>
            The number of elements in the queue. 
            </summary>
            <returns>
            Note: Due to the nature of concurrency. This is a representative number.
            and does not mean the exact number of items in the queue unless both Enqueue and Dequeue
            are not currently processing.
            </returns>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.Enqueue(`0)">
            <summary>
            Adds the provided item to the <see cref="T:GSF.Collections.ConcurrentIsolatedQueue`1"/>. This method is thread safe.
            </summary>
            <param name="item">cannot be null</param>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.TryDequeue(`0@)">
            <summary>
            Attempts to dequeue the specified item from the <see cref="T:GSF.Collections.ConcurrentIsolatedQueue`1"/>. This method is NOT thread safe.
            </summary>
            <param name="item">an output for the item</param>
            <returns></returns>
            <remarks>
            During a race condition, the queue might not be completely empty when TryDequeue returns false. Instead this method returns false 
            rather than blocking and waiting on the race condition to satisfy.
            </remarks>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.Enqueue(`0[],System.Int32,System.Int32)">
            <summary>
            Adds the provided items to the <see cref="T:GSF.Collections.IsolatedQueue`1"/>.
            </summary>
            <param name="items">the items to add</param>
            <param name="offset">the offset position</param>
            <param name="length">the length</param>
        </member>
        <member name="M:GSF.Collections.ConcurrentIsolatedQueue`1.Dequeue(`0[],System.Int32,System.Int32)">
            <summary>
            Dequeues all of the items into the provided array
            </summary>
            <param name="items">where to put the items</param>
            <param name="startingIndex">the starting index</param>
            <param name="length">the maximum number of times to store</param>
            <returns>the number of items dequeued</returns>
        </member>
        <member name="T:GSF.Collections.DynamicObjectPool`1">
            <summary>
            Provides a thread safe queue that acts as a buffer pool. 
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Collections.DynamicObjectPool`1.#ctor(System.Func{`0},System.Int32)">
            <summary>
            Creates a new Resource Queue.
            </summary>
            <param name="instance">A delegate that will return the necessary queue.</param>
            <param name="targetCount">the ideal number of objects that are always pending on the queue.</param>
        </member>
        <member name="M:GSF.Collections.DynamicObjectPool`1.Dequeue">
            <summary>
            Removes an item from the queue. If one does not exist, one is created.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Collections.DynamicObjectPool`1.Enqueue(`0)">
            <summary>
            Adds an item back to the queue.
            </summary>
            <param name="resource">The resource to queue.</param>
        </member>
        <member name="T:GSF.Collections.IndexedArray`1">
            <summary>
            A self growing array of items. This class is thread safe.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Collections.IndexedArray`1.#ctor">
            <summary>
            Creates an <see cref="T:GSF.Collections.IndexedArray`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Collections.IndexedArray`1.#ctor(`0)">
            <summary>
            Creates an <see cref="T:GSF.Collections.IndexedArray`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Collections.IndexedArray`1.Item(System.Int32)">
            <summary>
            Gets/Sets the items in this array. Returns the default(t) if the item does not exist, 
            or default(t) is the item in the list.
            </summary>
            <param name="index">the index position to lookup</param>
        </member>
        <member name="M:GSF.Collections.IndexedArray`1.Clear">
            <summary>
            Sets all items to their default value
            </summary>
        </member>
        <member name="T:GSF.Collections.IsolatedQueue`1">
            <summary>
            Provides a buffer of point data where reads are isolated from writes.
            However, reads must be synchronized with other reads and writes must be synchronized with other writes.
            </summary>
        </member>
        <member name="T:GSF.Collections.IsolatedQueue`1.IsolatedNode">
            <summary>
            Represents an individual node that allows for items to be added and removed from the 
            queue independently and without locks. 
            </summary>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.IsolatedNode.#ctor(System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.Collections.IsolatedQueue`1.IsolatedNode"/>
            </summary>
            <param name="count">the number of items in each node.</param>
        </member>
        <member name="P:GSF.Collections.IsolatedQueue`1.IsolatedNode.DequeueMustMoveToNextNode">
            <summary>
            Gets if the current node is out of entries.
            </summary>
        </member>
        <member name="P:GSF.Collections.IsolatedQueue`1.IsolatedNode.CanDequeue">
            <summary>
            Gets if there are items that can be dequeued
            </summary>
        </member>
        <member name="P:GSF.Collections.IsolatedQueue`1.IsolatedNode.CanEnqueue">
            <summary>
            Gets if this list can be enqueued
            </summary>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.IsolatedNode.Enqueue(`0)">
            <summary>
            Adds the following item to the queue. Be sure to check if it is full first.
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.#ctor">
            <summary>
            Creates an <see cref="T:GSF.Collections.IsolatedQueue`1"/>
            </summary>
        </member>
        <member name="P:GSF.Collections.IsolatedQueue`1.Count">
            <summary>
            The number of elements in the queue. 
            </summary>
            <returns>
            Note: Due to the nature of simultaneous access. This is a representative number.
            and does not mean the exact number of items in the queue unless both Enqueue and Dequeue
            are not currently processing.
            </returns>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.Enqueue(`0)">
            <summary>
            Addes the provided item to the <see cref="T:GSF.Collections.IsolatedQueue`1"/>.
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.TryDequeue(`0@)">
            <summary>
            Attempts to dequeue the specified item from the <see cref="T:GSF.Collections.IsolatedQueue`1"/>
            </summary>
            <param name="item">an output for the item</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.Enqueue(`0[],System.Int32,System.Int32)">
            <summary>
            Adds the provided items to the <see cref="T:GSF.Collections.IsolatedQueue`1"/>.
            </summary>
            <param name="items">the items to add</param>
            <param name="offset">the offset position</param>
            <param name="length">the length</param>
        </member>
        <member name="M:GSF.Collections.IsolatedQueue`1.Dequeue(`0[],System.Int32,System.Int32)">
            <summary>
            Dequeues all of the items into the provided array
            </summary>
            <param name="items">where to put the items</param>
            <param name="startingIndex">the starting index</param>
            <param name="length">the maximum number of times to store</param>
            <returns>the number of items dequeued</returns>
        </member>
        <member name="T:GSF.Collections.ListExtensions">
            <summary>
            Extensions for <see cref="T:System.Collections.Generic.List`1"/>
            </summary>
        </member>
        <member name="M:GSF.Collections.ListExtensions.RemoveWhere``1(System.Collections.Generic.List{``0},System.Func{``0,System.Boolean})">
            <summary>
            Iterates through each item in the list. Allowing items to be removed from the list.
            </summary>
            <param name="list">the list to iterate though</param>
            <param name="shouldRemove">the function to call to determine 
            if the items should be removed from the list. </param>
            <returns>
            The number of items removed from the list.
            </returns>
            <remarks>
            In order to minimize the overhead of a removal. Any item removed with be replaced with
            the last item in the list. Therefore Sequence will not be preserved using this method.
            </remarks>
        </member>
        <member name="T:GSF.Collections.NullableArray`1">
            <summary>
            Creates an array of a struct type that uses bitmask for designating a null value.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Collections.NullableArray`1.#ctor">
            <summary>
            Creates a <see cref="T:GSF.Collections.NullableArray`1"/>
            </summary>
        </member>
        <member name="M:GSF.Collections.NullableArray`1.Add(System.Int32,`0)">
            <summary>
            Adds the provided item to an indexed position of the array, auto-growing the array
            if needed.
            </summary>
            <param name="index">the zero based index</param>
            <param name="item"></param>
        </member>
        <member name="M:GSF.Collections.NullableArray`1.TryGet(System.Int32,`0@)">
            <summary>
            Attempts to get the provided item from the array if it has been added.
            </summary>
            <param name="index"></param>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Collections.NullableArray`1.Clear">
            <summary>
            Clears the array by setting all of the masked bits to false.
            </summary>
        </member>
        <member name="T:GSF.Collections.SortedQueue`2">
            <summary>
            Creates a <see cref="T:GSF.Collections.SortedQueue`2"/>.
            This class allows adding items in random order, but dequeuing based upon the sorting of <see ref="TKey"/>
            </summary>
            <remarks>
            Under the surface, it's using a <see cref="T:System.Collections.Generic.SortedList`2"/> and may not be extremely fast
            for large item lists.
            </remarks>
            <typeparam name="TKey"></typeparam>
            <typeparam name="TValue"></typeparam>
        </member>
        <member name="M:GSF.Collections.SortedQueue`2.#ctor">
            <summary>
            Creates a <see cref="T:GSF.Collections.SortedQueue`2"/>
            </summary>
        </member>
        <member name="P:GSF.Collections.SortedQueue`2.Head">
            <summary>
            Gets the first item in the queue. Throws an exception if it does not exist.
            </summary>
        </member>
        <member name="P:GSF.Collections.SortedQueue`2.Count">
            <summary>
            Gets the number of items in the queue;
            </summary>
        </member>
        <member name="M:GSF.Collections.SortedQueue`2.TryGetValue(`0,`1@)">
            <summary>
            Attempts to get the provided item.
            </summary>
            <param name="key"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Collections.SortedQueue`2.Enqueue(`0,`1)">
            <summary>
            Queues an item in the list.
            </summary>
            <param name="key"></param>
            <param name="value"></param>
        </member>
        <member name="M:GSF.Collections.SortedQueue`2.Dequeue">
            <summary>
            Removes the first item in the list.
            </summary>
            <returns></returns>
        </member>
        <member name="P:GSF.Collections.SortedQueue`2.Item(`0)">
            <summary>
            An indexer
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.ApplicationType">
            <summary>
            Specifies the type of the application.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.Unknown">
            <summary>
            Application is of unknown type.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.Native">
            <summary>
            Application doesn't require a subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.WindowsGui">
            <summary>
            Application runs in the Windows GUI subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.WindowsCui">
            <summary>
            Application runs in the Windows character subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.OS2Cui">
            <summary>
            Application runs in the OS/2 character subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.PosixCui">
            <summary>
            Application runs in the POSIX character subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.NativeWindows">
            <summary>
            Application is a native Win9x driver.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.WindowsCEGui">
            <summary>
            Application runs in the Windows CE subsystem.
            </summary>
        </member>
        <member name="F:GSF.ApplicationType.Web">
            <summary>
            The application is a web site or web application.
            </summary>
        </member>
        <member name="T:GSF.UpdateType">
            <summary>
            Indicates the type of update.
            </summary>
        </member>
        <member name="F:GSF.UpdateType.Information">
            <summary>
            Update is informational.
            </summary>
        </member>
        <member name="F:GSF.UpdateType.Warning">
            <summary>
            Update is a warning.
            </summary>
        </member>
        <member name="F:GSF.UpdateType.Alarm">
            <summary>
            Update is an alarm.
            </summary>
        </member>
        <member name="T:GSF.Common">
            <summary>
            Defines common global functions.
            </summary>
            <summary>
            Defines common global functions.
            </summary>
        </member>
        <member name="M:GSF.Common.GetApplicationType">
            <summary>
            Gets the type of the currently executing application.
            </summary>
            <returns>One of the <see cref="T:GSF.ApplicationType"/> values.</returns>
        </member>
        <member name="M:GSF.Common.GetOSPlatformID">
            <summary>
            Gets the operating system <see cref="T:System.PlatformID"/>
            </summary>
            <returns>The operating system <see cref="T:System.PlatformID"/>.</returns>
            <remarks>
            This function will properly detect the platform ID, even if running on Mac.
            </remarks>
        </member>
        <member name="M:GSF.Common.GetOSProductName">
            <summary>
            Gets the operating system product name.
            </summary>
            <returns>Operating system product name.</returns>
        </member>
        <member name="M:GSF.Common.GetProcessMemory">
            <summary>
            Gets the memory usage by the current process.
            </summary>
            <returns>Memory usage by the current process.</returns>
        </member>
        <member name="M:GSF.Common.GetTotalPhysicalMemory">
            <summary>
            Gets the total physical system memory.
            </summary>
            <returns>Total physical system memory.</returns>
        </member>
        <member name="M:GSF.Common.GetAvailablePhysicalMemory">
            <summary>
            Gets the available physical system memory.
            </summary>
            <returns>Total available system memory.</returns>
        </member>
        <member name="F:GSF.Common.IsPosixEnvironment">
            <summary>
            Determines if the current system is a POSIX style environment.
            </summary>
            <remarks>
            <para>
            Since a .NET application compiled under Mono can run under both Windows and Unix style platforms,
            you can use this property to easily determine the current operating environment.
            </para>
            <para>
            This property will return <c>true</c> for both MacOSX and Unix environments. Use the Platform property
            of the <see cref="P:System.Environment.OSVersion"/> to determine more specific platform type, e.g., 
            MacOSX or Unix. Note that all flavors of Linux will show up as <see cref="F:System.PlatformID.Unix"/>.
            </para>
            </remarks>        
        </member>
        <member name="F:GSF.Common.IsMono">
            <summary>
            Determines if the code base is currently running under Mono.
            </summary>
            <remarks>
            This property can be used to make a run-time determination if Windows or Mono based .NET is being used. However, it is
            highly recommended to use the MONO compiler directive wherever possible instead of determining this at run-time.
            </remarks>
        </member>
        <member name="M:GSF.Common.IIf``1(System.Boolean,``0,``0)">
            <summary>Returns one of two strongly-typed objects.</summary>
            <returns>One of two objects, depending on the evaluation of given expression.</returns>
            <param name="expression">The expression you want to evaluate.</param>
            <param name="truePart">Returned if expression evaluates to True.</param>
            <param name="falsePart">Returned if expression evaluates to False.</param>
            <typeparam name="T">Return type used for immediate expression</typeparam>
            <remarks>
            <para>This function acts as a strongly-typed immediate if (a.k.a. inline if).</para>
            <para>
            It is expected that this function will only be used in languages that do not support ?: conditional operations, e.g., Visual Basic.NET.
            In Visual Basic this function can be used as a strongly-typed IIf replacement by specifying "Imports GSF.Common".
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Common.CreateArray``1(System.Int32)">
            <summary>Creates a strongly-typed Array.</summary>
            <returns>New array of specified type.</returns>
            <param name="length">Desired length of new array.</param>
            <typeparam name="T">Return type for new array.</typeparam>
            <remarks>
            <para>It is expected that this function will only be used in Visual Basic.NET.</para>
            <para>
            The Array.CreateInstance provides better performance and more direct CLR access for array creation (not to
            mention less confusion on the matter of array lengths) in VB.NET, however the returned System.Array is not
            typed properly. This function properly casts the return array based on the type specification helping
            when Option Strict is enabled.
            </para>
            </remarks>
            <example>
            <code language="VB">
                Dim buffer As Byte() = CreateArray(Of Byte)(12)
                Dim matrix As Integer()() = CreateArray(Of Integer())(10)
            </code>
            </example>
        </member>
        <member name="M:GSF.Common.CreateArray``1(System.Int32,``0)">
            <summary>Creates a strongly-typed Array with an initial value parameter.</summary>
            <returns>New array of specified type.</returns>
            <param name="length">Desired length of new array.</param>
            <param name="initialValue">Value used to initialize all array elements.</param>
            <typeparam name="T">Return type for new array.</typeparam>
            <remarks>
            It is expected that this function will only be used in Visual Basic.NET.
            </remarks>
            <example>
            <code language="VB">
                Dim elements As Integer() = CreateArray(12, -1)
                Dim names As String() = CreateArray(100, "undefined")
            </code>
            </example>
        </member>
        <member name="M:GSF.Common.ToNonNullString``1(``0)">
            <summary>
            Converts value to string; null objects (or DBNull objects) will return an empty string (""). 
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of <see cref="T:System.Object"/> to convert to string.</typeparam>
            <param name="value">Value to convert to string.</param>
            <returns><paramref name="value"/> as a string; if <paramref name="value"/> is null, empty string ("") will be returned. </returns>
        </member>
        <member name="M:GSF.Common.ToNonNullString``1(``0,System.String)">
            <summary>
            Converts value to string; null objects (or DBNull objects) will return specified <paramref name="nonNullValue"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of <see cref="T:System.Object"/> to convert to string.</typeparam>
            <param name="value">Value to convert to string.</param>
            <param name="nonNullValue"><see cref="T:System.String"/> to return if <paramref name="value"/> is null.</param>
            <returns><paramref name="value"/> as a string; if <paramref name="value"/> is null, <paramref name="nonNullValue"/> will be returned.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="nonNullValue"/> cannot be null.</exception>
        </member>
        <member name="M:GSF.Common.ToNonNullString(System.String)">
            <summary>
            Makes sure returned string value is not null; if this string is null, empty string ("") will be returned. 
            </summary>
            <param name="value"><see cref="T:System.String"/> to verify is not null.</param>
            <returns><see cref="T:System.String"/> value; if <paramref name="value"/> is null, empty string ("") will be returned.</returns>
        </member>
        <member name="M:GSF.Common.ToNonNullNorEmptyString``1(``0,System.String)">
            <summary>
            Converts value to string; null objects, DBNull objects or empty strings will return specified <paramref name="nonNullNorEmptyValue"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of <see cref="T:System.Object"/> to convert to string.</typeparam>
            <param name="value">Value to convert to string.</param>
            <param name="nonNullNorEmptyValue"><see cref="T:System.String"/> to return if <paramref name="value"/> is null.</param>
            <returns><paramref name="value"/> as a string; if <paramref name="value"/> is null, DBNull or an empty string <paramref name="nonNullNorEmptyValue"/> will be returned.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="nonNullNorEmptyValue"/> must not be null or an empty string.</exception>
        </member>
        <member name="M:GSF.Common.ToNonNullNorWhiteSpace``1(``0,System.String)">
            <summary>
            Converts value to string; null objects, DBNull objects, empty strings or all white space strings will return specified <paramref name="nonNullNorWhiteSpaceValue"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of <see cref="T:System.Object"/> to convert to string.</typeparam>
            <param name="value">Value to convert to string.</param>
            <param name="nonNullNorWhiteSpaceValue"><see cref="T:System.String"/> to return if <paramref name="value"/> is null.</param>
            <returns><paramref name="value"/> as a string; if <paramref name="value"/> is null, DBNull, empty or all white space, <paramref name="nonNullNorWhiteSpaceValue"/> will be returned.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="nonNullNorWhiteSpaceValue"/> must not be null, an empty string or white space.</exception>
        </member>
        <member name="M:GSF.Common.TypeConvertToString(System.Object)">
            <summary>
            Converts <paramref name="value"/> to a <see cref="T:System.String"/> using an appropriate <see cref="T:System.ComponentModel.TypeConverter"/>.
            </summary>
            <param name="value">Value to convert to a <see cref="T:System.String"/>.</param>
            <returns><paramref name="value"/> converted to a <see cref="T:System.String"/>.</returns>
            <remarks>
            <para>
            If <see cref="T:System.ComponentModel.TypeConverter"/> fails, the value's <c>ToString()</c> value will be returned.
            Returned value will never be null, if no value exists an empty string ("") will be returned.
            </para>
            <para>
            You can use the <see cref="M:GSF.StringExtensions.ConvertToType``1(System.String)"/> string extension
            method or <see cref="M:GSF.Common.TypeConvertFromString(System.String,System.Type)"/> to convert the string back to its
            original <see cref="T:System.Type"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Common.TypeConvertToString(System.Object,System.Globalization.CultureInfo)">
            <summary>
            Converts <paramref name="value"/> to a <see cref="T:System.String"/> using an appropriate <see cref="T:System.ComponentModel.TypeConverter"/>.
            </summary>
            <param name="value">Value to convert to a <see cref="T:System.String"/>.</param>
            <param name="culture"><see cref="T:System.Globalization.CultureInfo"/> to use for the conversion.</param>
            <returns><paramref name="value"/> converted to a <see cref="T:System.String"/>.</returns>
            <remarks>
            <para>
            If <see cref="T:System.ComponentModel.TypeConverter"/> fails, the value's <c>ToString()</c> value will be returned.
            Returned value will never be null, if no value exists an empty string ("") will be returned.
            </para>
            <para>
            You can use the <see cref="M:GSF.StringExtensions.ConvertToType``1(System.String,System.Globalization.CultureInfo)"/> string
            extension method or <see cref="M:GSF.Common.TypeConvertFromString(System.String,System.Type,System.Globalization.CultureInfo)"/> to convert
            the string back to its original <see cref="T:System.Type"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Common.TypeConvertFromString(System.String,System.Type)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <param name="value">Source string to convert to type.</param>
            <param name="type"><see cref="T:System.Type"/> to convert string to.</param>
            <returns>
            <see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of
            specified type if conversion fails.
            </returns>
            <remarks>
            <para>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert <paramref name="value"/>
            to the specified <paramref name="type"/>, the best way to make sure <paramref name="value"/>
            can be converted back to its original type is to use the same <see cref="T:System.ComponentModel.TypeConverter"/> to
            convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </para>
            <para>
            This function varies from <see cref="M:GSF.StringExtensions.ConvertToType``1(System.String)"/>  in that it
            will use the default value for the <paramref name="type"/> parameter if <paramref name="value"/>
            is empty or <c>null</c>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Common.TypeConvertFromString(System.String,System.Type,System.Globalization.CultureInfo)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <param name="value">Source string to convert to type.</param>
            <param name="type"><see cref="T:System.Type"/> to convert string to.</param>
            <param name="culture"><see cref="T:System.Globalization.CultureInfo"/> to use for the conversion.</param>
            <returns>
            <see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of
            specified type if conversion fails.
            </returns>
            <remarks>
            <para>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert <paramref name="value"/>
            to the specified <paramref name="type"/>, the best way to make sure <paramref name="value"/>
            can be converted back to its original type is to use the same <see cref="T:System.ComponentModel.TypeConverter"/> to
            convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </para>
            <para>
            This function varies from <see cref="M:GSF.StringExtensions.ConvertToType``1(System.String,System.Globalization.CultureInfo)"/>
            in that it will use the default value for the <paramref name="type"/> parameter if
            <paramref name="value"/> is empty or <c>null</c>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Common.SystemTimer">
            <summary>
            Gets a high-resolution number of seconds, including fractional seconds, that have
            elapsed since 12:00:00 midnight, January 1, 0001.
            </summary>
        </member>
        <member name="M:GSF.Common.IsDefaultValue(System.Object)">
            <summary>Determines if given item is equal to its default value (e.g., null or 0.0).</summary>
            <param name="item">Object to evaluate.</param>
            <returns>Result of evaluation as a <see cref="T:System.Boolean"/>.</returns>
            <remarks>
            Native types default to zero, not null, therefore this can be used to evaluate if an item is its default (i.e., uninitialized) value.
            </remarks>
        </member>
        <member name="M:GSF.Common.IsReference(System.Object)">
            <summary>Determines if given item is a reference type.</summary>
            <param name="item">Object to evaluate.</param>
            <returns>Result of evaluation as a <see cref="T:System.Boolean"/>.</returns>
        </member>
        <member name="M:GSF.Common.IsNonStringReference(System.Object)">
            <summary>Determines if given item is a reference type but not a string.</summary>
            <param name="item">Object to evaluate.</param>
            <returns>Result of evaluation as a <see cref="T:System.Boolean"/>.</returns>
        </member>
        <member name="M:GSF.Common.IsNumericType(System.TypeCode)">
            <summary>
            Determines if <paramref name="typeCode"/> is a numeric type, i.e., one of:
            <see cref="F:System.TypeCode.Boolean"/>, <see cref="F:System.TypeCode.SByte"/>, <see cref="F:System.TypeCode.Byte"/>,
            <see cref="F:System.TypeCode.Int16"/>, <see cref="F:System.TypeCode.UInt16"/>, <see cref="F:System.TypeCode.Int32"/>,
            <see cref="F:System.TypeCode.UInt32"/>, <see cref="F:System.TypeCode.Int64"/>, <see cref="F:System.TypeCode.UInt64"/>
            <see cref="F:System.TypeCode.Single"/>, <see cref="F:System.TypeCode.Double"/> or <see cref="F:System.TypeCode.Decimal"/>.
            </summary>
            <param name="typeCode"><see cref="T:System.TypeCode"/> value to check.</param>
            <returns><c>true</c> if <paramref name="typeCode"/> is a numeric type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Common.IsNumericType(System.Type)">
            <summary>
            Determines if <paramref name="type"/> is a numeric type, i.e., has a <see cref="T:System.TypeCode"/> that is one of:
            <see cref="F:System.TypeCode.Boolean"/>, <see cref="F:System.TypeCode.SByte"/>, <see cref="F:System.TypeCode.Byte"/>,
            <see cref="F:System.TypeCode.Int16"/>, <see cref="F:System.TypeCode.UInt16"/>, <see cref="F:System.TypeCode.Int32"/>,
            <see cref="F:System.TypeCode.UInt32"/>, <see cref="F:System.TypeCode.Int64"/>, <see cref="F:System.TypeCode.UInt64"/>
            <see cref="F:System.TypeCode.Single"/>, <see cref="F:System.TypeCode.Double"/> or <see cref="F:System.TypeCode.Decimal"/>.
            </summary>
            <param name="type"><see cref="T:System.Type"/> to check.</param>
            <returns><c>true</c> if <paramref name="type"/> is a numeric type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Common.IsNumericType``1">
            <summary>
            Determines if <typeparamref name="T"/> is a numeric type, i.e., has a <see cref="T:System.TypeCode"/> that is one of:
            <see cref="F:System.TypeCode.Boolean"/>, <see cref="F:System.TypeCode.SByte"/>, <see cref="F:System.TypeCode.Byte"/>,
            <see cref="F:System.TypeCode.Int16"/>, <see cref="F:System.TypeCode.UInt16"/>, <see cref="F:System.TypeCode.Int32"/>,
            <see cref="F:System.TypeCode.UInt32"/>, <see cref="F:System.TypeCode.Int64"/>, <see cref="F:System.TypeCode.UInt64"/>
            <see cref="F:System.TypeCode.Single"/>, <see cref="F:System.TypeCode.Double"/> or <see cref="F:System.TypeCode.Decimal"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> to check.</typeparam>
            <returns><c>true</c> if <typeparamref name="T"/> is a numeric type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Common.IsNumericType(System.Object)">
            <summary>
            Determines if <see cref="T:System.Type"/> of <paramref name="item"/> is a numeric type, i.e., <paramref name="item"/>
            is <see cref="T:System.IConvertible"/> and has a <see cref="T:System.TypeCode"/> that is one of:
            <see cref="F:System.TypeCode.Boolean"/>, <see cref="F:System.TypeCode.SByte"/>, <see cref="F:System.TypeCode.Byte"/>,
            <see cref="F:System.TypeCode.Int16"/>, <see cref="F:System.TypeCode.UInt16"/>, <see cref="F:System.TypeCode.Int32"/>,
            <see cref="F:System.TypeCode.UInt32"/>, <see cref="F:System.TypeCode.Int64"/>, <see cref="F:System.TypeCode.UInt64"/>
            <see cref="F:System.TypeCode.Single"/>, <see cref="F:System.TypeCode.Double"/> or <see cref="F:System.TypeCode.Decimal"/>.
            </summary>
            <param name="item">Object to evaluate.</param>
            <returns><c>true</c> if <paramref name="item"/> is a numeric type; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Common.IsNumeric(System.Object)">
            <summary>
            Determines if given <paramref name="item"/> is or can be interpreted as numeric.
            </summary>
            <param name="item">Object to evaluate.</param>
            <returns><c>true</c> if <paramref name="item"/> is or can be interpreted as numeric; otherwise, <c>false</c>.</returns>
            <remarks>
            If type of <paramref name="item"/> is a <see cref="T:System.Char"/> or a <see cref="T:System.String"/>, then if value can be parsed as a numeric
            value, result will be <c>true</c>.
            </remarks>
        </member>
        <member name="M:GSF.Common.Min``1(``0[])">
            <summary>Returns the smallest item from a list of parameters.</summary>
            <typeparam name="T">Return type <see cref="T:System.Type"/> that is the minimum value in the <paramref name="itemList"/>.</typeparam>
            <param name="itemList">A variable number of parameters of the specified type.</param>
            <returns>Result is the minimum value of type <see cref="T:System.Type"/> in the <paramref name="itemList"/>.</returns>
        </member>
        <member name="M:GSF.Common.Max``1(``0[])">
            <summary>Returns the largest item from a list of parameters.</summary>
            <typeparam name="T">Return type <see cref="T:System.Type"/> that is the maximum value in the <paramref name="itemList"/>.</typeparam>
            <param name="itemList">A variable number of parameters of the specified type .</param>
            <returns>Result is the maximum value of type <see cref="T:System.Type"/> in the <paramref name="itemList"/>.</returns>
        </member>
        <member name="M:GSF.Common.Mid``1(``0,``0,``0)">
            <summary>Returns the value that is neither the largest nor the smallest.</summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the objects passed to and returned from this method.</typeparam>
            <param name="value1">Value 1.</param>
            <param name="value2">Value 2.</param>
            <param name="value3">Value 3.</param>
            <returns>Result is the value that is neither the largest nor the smallest.</returns>
        </member>
        <member name="M:GSF.Common.NotNull(System.Object,System.Object)">
            <summary>
            Returns <paramref name="value"/> if not <c>null</c>; otherwise <paramref name="nonNullValue"/>.
            </summary>
            <param name="value">Value to test.</param>
            <param name="nonNullValue">Value to return if primary value is null.</param>
            <returns><paramref name="value"/> if not <c>null</c>; otherwise <paramref name="nonNullValue"/>.</returns>
            <remarks>
            This function is useful when using evaluated code parsers based on older versions of .NET, e.g.,
            the RazorEngine or the ExpressionEvaluator.
            </remarks>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.AcronymValidationAttribute">
            <summary>
            Represents a <see cref="T:System.ComponentModel.DataAnnotations.RegularExpressionAttribute"/> for validating Acronyms, i.e., expressions
            that consist only of upper case letters, numbers, '!', '-', '@', '#', '_' , '.' or '$'.
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.AcronymValidationAttribute.ValidationPattern">
            <summary>
            Defines the regular expression pattern used to validate value. 
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.AcronymValidationAttribute.DefaultErrorMessage">
            <summary>
            Defines the default error message used when pattern fails validation.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.AcronymValidationAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.AcronymValidationAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.EmailValidationAttribute">
            <summary>
            Represents a <see cref="T:System.ComponentModel.DataAnnotations.RegularExpressionAttribute"/> for validating e-mail addresses.
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.EmailValidationAttribute.ValidationPattern">
            <summary>
            Defines the regular expression pattern used to validate value. 
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.EmailValidationAttribute.DefaultErrorMessage">
            <summary>
            Defines the default error message used when pattern fails validation.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.EmailValidationAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.EmailValidationAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.InitialValueScriptAttribute">
            <summary>
            Defines an attribute that will define an initial value script for a modeled table field
            that will get evaluated and assigned in the target use environment, e.g., Javascript.
            </summary>
            <remarks>
            <para>
            Example to set initial value to 30 days from now using a Javascript expression:
            <c>[InitialValueScript("(new Date()).addDays(30)")]</c>
            </para>
            <para>
            Note that the <see cref="T:System.ComponentModel.DefaultValueAttribute"/> should be used to set any constant values
            for new modeled record instances and the <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> should
            be used for applying any needed server-side run-time expression defaults, either of these will
            get assigned when using the <see cref="M:GSF.Data.Model.TableOperations`1.NewRecord"/> function.
            The <see cref="T:GSF.ComponentModel.DataAnnotations.InitialValueScriptAttribute"/> is used to initialize the property value using
            an expression that gets evaluated in the target environment.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.DataAnnotations.InitialValueScriptAttribute.InitialValueScript">
            <summary>
            Gets the initial value expression for a modeled table field.
            </summary>
            <remarks>
            Expression should be in target language, e.g., Javascript.
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.InitialValueScriptAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.InitialValueScriptAttribute"/>/
            </summary>
            <param name="initialValueScript">Initial value expression for a modeled table field.</param>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.IsDeletedFlagAttribute">
            <summary>
            Defines an attribute that will define the field name that represents a record marked for deletion.
            </summary>
        </member>
        <member name="P:GSF.ComponentModel.DataAnnotations.IsDeletedFlagAttribute.FieldName">
            <summary>
            Field name used as is-deleted record marker.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.IsDeletedFlagAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.IsDeletedFlagAttribute"/>.
            </summary>
            <param name="fieldName">Field name used as is-deleted record marker.</param>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.LabelAttribute">
            <summary>
            Defines an attribute that will define a UI label to used for a modeled table field.
            </summary>
        </member>
        <member name="P:GSF.ComponentModel.DataAnnotations.LabelAttribute.Label">
            <summary>
            Gets UI label for modeled table field.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.LabelAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.LabelAttribute"/>.
            </summary>
            <param name="label">UI label for modeled table field.</param>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.NamespaceDoc">
            <summary>
            Contains classes and attributes used for component modeling used with data annotations.
            </summary>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.PrimaryLabelAttribute">
            <summary>
            Defines an attribute that will define the field name that best represents the row identification to a user.
            </summary>
            <remarks>
            An example of when this would be used is during a record deletion confirmation, e.g:
            Are you sure you want to delete "PrimaryLabel.FieldName.Value"?
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.DataAnnotations.PrimaryLabelAttribute.FieldName">
            <summary>
            Field name used as primary label.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.PrimaryLabelAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.PrimaryLabelAttribute"/>.
            </summary>
            <param name="fieldName">Field name used as primary label.</param>
        </member>
        <member name="T:GSF.ComponentModel.DataAnnotations.UrlValidationAttribute">
            <summary>
            Represents a <see cref="T:System.ComponentModel.DataAnnotations.RegularExpressionAttribute"/> for validating URL's.
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.UrlValidationAttribute.ValidationPattern">
            <summary>
            Defines the regular expression pattern used to validate value. 
            </summary>
        </member>
        <member name="F:GSF.ComponentModel.DataAnnotations.UrlValidationAttribute.DefaultErrorMessage">
            <summary>
            Defines the default error message used when pattern fails validation.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DataAnnotations.UrlValidationAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DataAnnotations.UrlValidationAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.ComponentModel.DefaultValueExpressionAttribute">
            <summary>
            Defines a C# expression attribute that when evaluated will specify the default value for a property.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.DefaultValueExpressionAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>
            </summary>
            <param name="expression">C# expression that will evaluate to the desired default value.</param>
        </member>
        <member name="T:GSF.ComponentModel.EvaluationOrderException">
            <summary>
            Represents an exception related to <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.EvaluationOrder"/> values.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.EvaluationOrderException.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.EvaluationOrderException"/>.
            </summary>
            <param name="message">Exception message.</param>
        </member>
        <member name="T:GSF.ComponentModel.IValueExpressionAttribute">
            <summary>
            Defines an interface for value expression attributes.
            </summary>
        </member>
        <member name="P:GSF.ComponentModel.IValueExpressionAttribute.Expression">
            <summary>
            Gets C# expression that will evaluate to the desired value.
            </summary>
            <remarks>
            Use the <see cref="M:GSF.ComponentModel.IValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)"/> method to get a per-property
            based value for use with the <see cref="T:GSF.ComponentModel.ValueExpressionParser"/>. Use
            <see cref="M:GSF.ComponentModel.ValueExpressionParser.DeriveExpression(System.String,GSF.ComponentModel.IValueExpressionAttribute,System.Reflection.MemberInfo,System.String)"/> to automatically
            replace any <c>this</c> keywords with <c>Instance</c> so as to properly
            reference the modeled <see cref="P:GSF.ComponentModel.ValueExpressionScopeBase`1.Instance"/>.
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.IValueExpressionAttribute.Cached">
            <summary>
            Gets or sets value that determines if value should be cached after first evaluation.
            Defaults to <c>false</c>.
            </summary>
        </member>
        <member name="P:GSF.ComponentModel.IValueExpressionAttribute.EvaluationOrder">
            <summary>
            Gets or sets the numeric evaluation order for this expression. Defaults to zero.
            </summary>
            <remarks>
            <para>
            This is useful for providing an order of operations to evaluations of
            <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/> attributes where one expression may
            be dependent on another. Note that properties are normally evaluated in the order
            in which they are defined in the class, but this is not guaranteed, using this
            attribute allows the order of evaluation to be changed. 
            </para>
            <para>
            When no <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.EvaluationOrder"/> is specified, the sort order for a property
            will be zero. Properties will be ordered numerically based on this value.
            </para>
            <para>
            For any <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.Expression"/> value that references the <c>this</c> keyword,
            a positive evaluation order will be required.
            </para>
            <para>
            See <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.IValueExpressionAttribute.TypeRegistry">
            <summary>
            Gets or sets any <see cref="T:ExpressionEvaluator.TypeRegistry"/> to use if the attribute
            <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.Expression"/> needs to be pre-parsed.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.IValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.Expression"/> based value used to update a modeled property.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Expression based on source property.</returns>
            <remarks>
            <para>
            This function allows derived attribute implementations to adjust the expression based
            on property information, e.g., property type.
            </para>
            <para>
            The property update value is typically used to assign expression values to a modeled type.
            </para>
            <para>
            Default implementation should return <c>Expression</c>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.IValueExpressionAttribute.GetExpressionUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the modeled property based value used to update the <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.Expression"/>.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Assignment expression based on source property.</returns>
            <remarks>
            <para>
            This function allows derived attribute implementations to adjust the update value
            based on property information, e.g., property type.
            </para>
            <para>
            The expression update value is typically used to assign modeled property values back
            to expressions allowing synchronization of a model with an external source, e.g., a
            user interface element.
            </para>
            <para>
            Default implementation should return <c>$"Instance.{property.Name}"</c>.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.ComponentModel.IValueExpressionScope`1">
            <summary>
            Defines an interface used for providing contextual scope when evaluating
            instances of the <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/>.
            </summary>
            <typeparam name="T">Type of associated model.</typeparam>
        </member>
        <member name="P:GSF.ComponentModel.IValueExpressionScope`1.Instance">
            <summary>
            Gets or sets the current <typeparamref name="T"/> instance.
            </summary>
            <remarks>
            By using the <see cref="M:GSF.ComponentModel.ValueExpressionParser.ReplaceThisKeywords(System.String,System.String)"/> function, expressions
            can reference the current <typeparamref name="T"/> instance using the <c>this</c> keyword.
            See <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </remarks>
        </member>
        <member name="T:GSF.ComponentModel.NamespaceDoc">
            <summary>
            Contains classes and attributes used for component modeling.
            </summary>
        </member>
        <member name="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute">
            <summary>
            Defines a C# expression attribute that when evaluated will type convert its value for a property.
            </summary>
            <remarks>
            This attribute is typically used when synchronizing modeled values to an external sources, e.g.,
            user interface elements.
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.TypeConvertedValueExpressionAttribute.ReturnType">
            <summary>
            Gets the return <see cref="T:System.Type"/> for this <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/>.
            </summary>
            <remarks>
            When value is <c>null</c>, the <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/> will be
            pre-parsed in an attempt to auto-derive the return type. Note that when using this attribute,
            it often will be necessary to assign the current <see cref="T:ExpressionEvaluator.TypeRegistry"/> so that the parser
            will have access to needed symbols. If the expression's return type is known in advance, it
            is optimal to provide it in the attribute constructor.
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.TypeConvertedValueExpressionAttribute.#ctor(System.String,System.Type)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/>
            </summary>
            <param name="expression">C# expression that will evaluate to the type converted property value.</param>
            <param name="returnType">
            Return type for specified C# <paramref name="expression"/>; defaults to <c>null</c> to auto-derive
            the <paramref name="expression"/> return type by pre-parsing expression.
            </param>
            <remarks>
            When the <paramref name="returnType"/> is known in advance, it is optimal to provide it.
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.TypeConvertedValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/> based value used to update a modeled property.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Expression based on source property.</returns>
            <remarks>
            The property update value is typically used to assign expression values to a modeled type. For example:
            <code>
            [TypeConvertedValueExpression("Form.maskedTextBoxMessageInterval.Text", typeof(string))]
            public int MessageInterval { get; set; }
            </code>
            Would generate an expression of "Common.TypeConvertFromString(Form.maskedTextBoxMessageInterval.Text, typeof(int))"
            which would be executed as part of an overall expression that looked like
            <c>Instance.MessageInterval = Common.TypeConvertFromString(Form.maskedTextBoxMessageInterval.Text, typeof(int))</c>
            when called from <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateProperties(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.TypeConvertedValueExpressionAttribute.GetExpressionUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the modeled property based value used to update the <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/>.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Expression based on source property.</returns>
            <remarks>
            The expression update value is typically used to assign modeled property values back
            to expressions allowing synchronization of a model with an external source, e.g., a
            user interface element. For example:
            <code>
            [TypeConvertedValueExpression("Form.maskedTextBoxMessageInterval.Text", typeof(string))]
            public int MessageInterval { get; set; }
            </code>
            Would generate an update expression of "Common.TypeConvertToString(Instance.MessageInterval)"
            which would be executed as part of an overall expression that looked like
            <c>Form.maskedTextBoxMessageInterval.Text = Common.TypeConvertToString(Instance.MessageInterval)</c>
            when called from <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressions(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </remarks>
        </member>
        <member name="T:GSF.ComponentModel.TypeRegistryExtensions">
            <summary>
            Defines extension functions related to <see cref="T:ExpressionEvaluator.TypeRegistry"/> manipulation.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.TypeRegistryExtensions.Clone(ExpressionEvaluator.TypeRegistry)">
            <summary>
            Clones the specified <paramref name="typeRegistry"/>.
            </summary>
            <param name="typeRegistry"><see cref="T:ExpressionEvaluator.TypeRegistry"/> to clone.</param>
            <returns>Clone of the specified <paramref name="typeRegistry"/>.</returns>
        </member>
        <member name="M:GSF.ComponentModel.TypeRegistryExtensions.RegisterSymbols(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Registers the specified <paramref name="symbols"/> into the <paramref name="targetTypeRegistry"/>.
            </summary>
            <param name="symbols">Symbols to register.</param>
            <param name="targetTypeRegistry">Type registry to target; set to <c>null</c> for a clone of the default registry.</param>
            <returns>Target registry that with new registered symbols.</returns>
        </member>
        <member name="T:GSF.ComponentModel.UpdateValueExpressionAttribute">
            <summary>
            Defines a C# expression attribute that when evaluated will specify an updated value for a property.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.UpdateValueExpressionAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/>
            </summary>
            <param name="expression">C# expression that will evaluate to the desired default value.</param>
        </member>
        <member name="T:GSF.ComponentModel.ValueExpressionAttributeBase">
            <summary>
            Represents a base attribute class for C# expressions that when evaluated will specify a new value for a property.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionAttributeBase.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/>
            </summary>
            <param name="expression">C# expression that will evaluate to the desired value.</param>
            <exception cref="T:System.ArgumentNullException">Parameter <paramref name="expression"/> cannot be <c>null</c>.</exception>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression">
            <summary>
            Gets C# expression that will evaluate to the desired value.
            </summary>
            <remarks>
            Use the <see cref="M:GSF.ComponentModel.ValueExpressionAttributeBase.GetPropertyUpdateValue(System.Reflection.PropertyInfo)"/> method to get a per-property
            based value for use with the <see cref="T:GSF.ComponentModel.ValueExpressionParser"/>. Use
            <see cref="M:GSF.ComponentModel.ValueExpressionParser.DeriveExpression(System.String,GSF.ComponentModel.IValueExpressionAttribute,System.Reflection.MemberInfo,System.String)"/> to automatically
            replace any <c>this</c> keywords with <c>Instance</c> so as to properly
            reference the modeled <see cref="P:GSF.ComponentModel.ValueExpressionScopeBase`1.Instance"/>.
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionAttributeBase.Cached">
            <summary>
            Gets or sets value that determines if value should be cached after first evaluation.
            Defaults to <c>false</c>.
            </summary>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionAttributeBase.EvaluationOrder">
            <summary>
            Gets or sets the numeric evaluation order for this expression. Defaults to zero.
            </summary>
            <remarks>
            <para>
            This is useful for providing an order of operations to evaluations of
            <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/> attributes where one expression may
            be dependent on another. Note that properties are normally evaluated in the order
            in which they are defined in the class, but this is not guaranteed, using this
            attribute allows the order of evaluation to be changed. 
            </para>
            <para>
            When no <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.EvaluationOrder"/> is specified, the sort order for a property
            will be zero. Properties will be ordered numerically based on this value.
            </para>
            <para>
            For any <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/> value that references the <c>this</c> keyword,
            a positive evaluation order will be required.
            </para>
            <para>
            See <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionAttributeBase.TypeRegistry">
            <summary>
            Gets or sets any <see cref="T:ExpressionEvaluator.TypeRegistry"/> to use if the attribute
            <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/> needs to be pre-parsed.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionAttributeBase.GetPropertyUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/> based value used to update a modeled property.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Expression based on source property.</returns>
            <remarks>
            <para>
            This function allows derived attribute implementations to adjust the expression based
            on property information, e.g., property type.
            </para>
            <para>
            The property update value is typically used to assign expression values to a modeled type.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionAttributeBase.GetExpressionUpdateValue(System.Reflection.PropertyInfo)">
            <summary>
            Gets the modeled property based value used to update the <see cref="P:GSF.ComponentModel.ValueExpressionAttributeBase.Expression"/>.
            </summary>
            <param name="property">Property from which attribute was derived.</param>
            <returns>Assignment expression based on source property.</returns>
            <remarks>
            <para>
            This function allows derived attribute implementations to adjust the update value
            based on property information, e.g., property type.
            </para>
            <para>
            The expression update value is typically used to assign modeled property values back
            to expressions allowing synchronization of a model with an external source, e.g., a
            user interface element.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.ComponentModel.ValueExpressionParser">
            <summary>
            Represents a parser for <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instances.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.ValueExpressionParser"/>.
            </summary>
            <param name="expression">C# expression to be parsed.</param>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser.#ctor(GSF.ComponentModel.IValueExpressionAttribute,System.Reflection.PropertyInfo)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.ValueExpressionParser"/> from the specified
            <paramref name="valueExpressionAttribute"/> and <paramref name="property"/>
            parameters deriving the base expression value from
            <see cref="M:GSF.ComponentModel.IValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)"/>.
            </summary>
            <param name="valueExpressionAttribute">Source <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instance.</param>
            <param name="property">Source <see cref="T:System.Reflection.PropertyInfo"/> instance.</param>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry">
            <summary>
            Gets the default <see cref="T:ExpressionEvaluator.TypeRegistry"/> instance used for evaluating <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instances.
            </summary>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser.HasThisKeywords(System.String)">
            <summary>
            Returns a flag that determines if the "this" keyword exists with the specified <paramref name="expression"/>.
            </summary>
            <param name="expression">Expression to search.</param>
            <returns><c>true</c> if "this" keyword exists in expression; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser.ReplaceThisKeywords(System.String,System.String)">
            <summary>
            Replaces references to "this" keyword with a specified <paramref name="fieldName"/>.
            </summary>
            <param name="expression">Expression to search.</param>
            <param name="fieldName">Replacement value for "this" keyword usages.</param>
            <returns>An expression with "this" keywords replaced with specified <paramref name="fieldName"/>.</returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser.DeriveExpression(System.String,GSF.ComponentModel.IValueExpressionAttribute,System.Reflection.MemberInfo,System.String)">
            <summary>
            Derives an expression based on <paramref name="member"/> info with any <c>this</c>
            keywords properly referencing <see cref="P:GSF.ComponentModel.ValueExpressionScopeBase`1.Instance"/> value.
            </summary>
            <param name="expression">Expression to derive, typically from <see cref="M:GSF.ComponentModel.IValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)"/> or <see cref="M:GSF.ComponentModel.IValueExpressionAttribute.GetExpressionUpdateValue(System.Reflection.PropertyInfo)"/>.</param>
            <param name="valueExpressionAttribute">Associated <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instance.</param>
            <param name="member">Associated <see cref="T:System.Reflection.MemberInfo"/> instance, typically target property for <paramref name="valueExpressionAttribute"/>.</param>
            <param name="typeName">Modeled type name, e.g., typeof&lt;T&gt;.FullName.</param>
            <returns>Derived expression with any <c>this</c> keywords properly referencing <see cref="P:GSF.ComponentModel.ValueExpressionScopeBase`1.Instance"/> value.</returns>
            <exception cref="T:GSF.ComponentModel.EvaluationOrderException">
            Specified <paramref name="expression"/> references the <c>this</c> keyword and must specify a positive <see cref="P:GSF.ComponentModel.IValueExpressionAttribute.EvaluationOrder"/>.
            </exception>
            <exception cref="T:System.ArgumentNullException">Parameter <paramref name="expression"/> cannot be <c>null</c>.</exception>
        </member>
        <member name="T:GSF.ComponentModel.ValueExpressionParser`1">
            <summary>
            Represents a typed parser for <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instances.
            </summary>
            <typeparam name="T">Type of associated model.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.ValueExpressionParser`1"/>.
            </summary>
            <param name="expression">C# expression to be parsed.</param>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.#ctor(GSF.ComponentModel.IValueExpressionAttribute,System.Reflection.PropertyInfo)">
            <summary>
            Creates a new <see cref="T:GSF.ComponentModel.ValueExpressionParser"/> from the specified
            <paramref name="valueExpressionAttribute"/> and <paramref name="property"/>
            parameters deriving the base expression value from
            <see cref="M:GSF.ComponentModel.IValueExpressionAttribute.GetPropertyUpdateValue(System.Reflection.PropertyInfo)"/>.
            </summary>
            <param name="valueExpressionAttribute">Source <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instance.</param>
            <param name="property">Source <see cref="T:System.Reflection.PropertyInfo"/> instance.</param>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.Parse(System.Linq.Expressions.Expression,ExpressionEvaluator.TypeRegistry,System.Boolean)">
            <summary>
            Parses the expression with the provided parameter expression <paramref name="scope"/> and optional <paramref name="typeRegistry"/>.
            </summary>
            <param name="scope">Parameter expression used to provide context to parsed instances.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <param name="isCall"><c>true</c> if parsing an action; otherwise, <c>false</c> for a function.</param>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.InitializeType">
            <summary>
            Validates that any static type <typeparamref name="T"/> functionality is initialized.
            </summary>
            <remarks>
            As long as type <typeparamref name="T"/> defines a parameterless constructor, this method
            will create an instance of the modeled class so that any defined static functionality will
            be initialized. Calling this method in advance of any of the static create or update delegate
            generation functions will allow modeled types to self-register any custom symbols and types
            that may be used during evaluation of value expressions attributes, e.g.:
            <code>
            static MyModel()
            {
                TableOperations&lt;MyModel&gt;.TypeRegistry.RegisterType&lt;MyType&gt;();
            }
            </code>
            </remarks>
            <returns>
            <c>true</c> if type <typeparamref name="T"/> supports a parameterless constructor and was
            successfully initialized; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will create new instance of type <typeparamref name="T"/> applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances that are
            declared on the type <typeparamref name="T"/> properties.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will create new
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes.
            The newly created object will automatically have applied any defined default values as specified by
            the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in a newly created model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will create new <typeparamref name="T"/> instances with default values applied.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstanceForType``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will create new instance of type <typeparamref name="T"/> applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> instances that are
            declared on the type <typeparamref name="T"/> properties.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will create new
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> attributes.
            The newly created object will automatically have applied any defined default values as specified by
            the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in a newly created model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will create new <typeparamref name="T"/> instances with default values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.ApplyDefaults(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances that are
            declared on the type <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is
            accepted as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes.
            The updated object will automatically have applied any defined default values as specified by
            the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with default values applied.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.ApplyDefaultsForType``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> instances that are
            declared on the type <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is
            accepted as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> attributes.
            The updated object will automatically have applied any defined default values as specified by
            the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with default values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateInstance(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> applying any
            specified <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is accepted
            as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> attributes. The updated object will automatically
            have applied any defined update values as specified by the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with update expression values applied.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateInstanceForType``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> applying any
            specified <typeparamref name="TValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is accepted
            as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <typeparamref name="TValueExpressionAttribute"/> attributes. The updated object will automatically
            have applied any defined update values as specified by the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with update expression values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressions(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will execute expression assignments on an instance of type <typeparamref name="T"/>
            where expressions are <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances that are declared
            on the type <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is accepted
            as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances,
            or <c>null</c> to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            <para>
            This function is useful for generating a delegate to a compiled function that will execute expression
            assignments on objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attributes. Note that the expression in the
            <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attribute is expected to evaluate to a property
            such that it can be assigned the target type <typeparamref name="T"/> property value.
            <note type="note">
            This function will assign current modeled property values back to expressions, this is often useful
            when a model is being synchronized to an external source, e.g., user interface elements.
            </note>
            </para>
            <para>
            This method is the inverse call for <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateProperties(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </para>
            </remarks>
            <returns>
            Generated delegate that will execute expression assignments on <typeparamref name="T"/> instances.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressionsForType``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will execute expression assignments on an instance of type <typeparamref name="T"/>
            where expressions are <typeparamref name="TValueExpressionAttribute"/> instances that are declared
            on the type <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance is accepted
            as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will execute expression
            assignments on objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <typeparamref name="TValueExpressionAttribute"/> attributes. Note that the expression in the
            <typeparamref name="TValueExpressionAttribute"/> attribute is expected to evaluate to a property
            such that it can be assigned the target type <typeparamref name="T"/> property value.
            <note type="note">
            This function will assign current modeled property values back to expressions, this is often useful
            when a model is being synchronized to an external source, e.g., user interface elements.
            </note>
            </remarks>
            <returns>
            Generated delegate that will execute expression assignments on <typeparamref name="T"/> instances.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateProperties(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> assigning values
            from <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances that are declared on the
            type <typeparamref name="T"/> properties to the property values. Target <typeparamref name="T"/>
            instance is accepted as the parameter to the returned delegate <see cref="T:System.Action`1"/>.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances, or
            <c>null</c> to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            <para>
            This function is useful for generating a delegate to a compiled function that will update objects
            of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attributes. The updated object will automatically
            have applied any defined update values as specified by the encountered attributes.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </para>
            <para>
            This method is the inverse call for <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressions(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>. Internally the method simply calls
            <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateInstanceForType``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/> for type <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/>.
            </para>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with update expression values applied.
            </returns>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will create new instance of type <typeparamref name="T"/> accepting a
            contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any
            specified <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>
            instances that are declared on the type <typeparamref name="T"/> properties.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will create new
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes.
            The newly created object will automatically have applied any defined default values as specified by
            the encountered attributes. The generated delegate takes a parameter to a contextual object useful
            for providing extra runtime data to <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes; the
            parameter must be derived from <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields,
            methods or properties defined in the derived class will be automatically accessible from the
            expressions declared in the <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes. By default,
            the expressions will have access to the current <typeparamref name="T"/> instance by referencing the
            <c>this</c> keyword, which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in a newly created model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will create new <typeparamref name="T"/> instances with default values applied.
            </returns>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstanceForType``2(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will create new instance of type <typeparamref name="T"/> accepting a
            contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any
            specified <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/>
            instances that are declared on the type <typeparamref name="T"/> properties.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will create new
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> attributes.
            The newly created object will automatically have applied any defined default values as specified by
            the encountered attributes. The generated delegate takes a parameter to a contextual object useful
            for providing extra runtime data to <typeparamref name="TValueExpressionAttribute"/> attributes; the
            parameter must be derived from <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields,
            methods or properties defined in the derived class will be automatically accessible from the
            expressions declared in the <typeparamref name="TValueExpressionAttribute"/> attributes. By default,
            the expressions will have access to the current <typeparamref name="T"/> instance by referencing the
            <c>this</c> keyword, which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in a newly created model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will create new <typeparamref name="T"/> instances with expression values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.ApplyDefaults``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> accepting
            a contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>
            instances that are declared on the type <typeparamref name="T"/> properties. Target
            <typeparamref name="T"/> instance needs to be assigned to the
            <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes.
            The updated object will automatically have applied any defined default values as specified by
            the encountered attributes. The generated delegate takes a parameter to a contextual object useful
            for providing extra runtime data to <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes; the
            parameter must be derived from <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields,
            methods or properties defined in the derived class will be automatically accessible from the
            expressions declared in the <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> attributes. By default,
            the expressions will have access to the current <typeparamref name="T"/> instance by referencing the
            <c>this</c> keyword, which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with expression values applied.
            </returns>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.ApplyDefaultsForType``2(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> accepting
            a contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any specified
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/>
            instances that are declared on the type <typeparamref name="T"/> properties. Target
            <typeparamref name="T"/> instance needs to be assigned to the
            <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated with
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <typeparamref name="TValueExpressionAttribute"/> attributes.
            The updated object will automatically have applied any defined default values as specified by
            the encountered attributes. The generated delegate takes a parameter to a contextual object useful
            for providing extra runtime data to <typeparamref name="TValueExpressionAttribute"/> attributes; the
            parameter must be derived from <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields,
            methods or properties defined in the derived class will be automatically accessible from the
            expressions declared in the <typeparamref name="TValueExpressionAttribute"/> attributes. By default,
            the expressions will have access to the current <typeparamref name="T"/> instance by referencing the
            <c>this</c> keyword, which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with expression values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> accepting a
            contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any specified
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance needs to be
            assigned to the <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> attributes. The updated object will automatically
            have applied any defined update values as specified by the encountered attributes. The generated
            delegate takes a parameter to a contextual object useful for providing extra runtime data to
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> attributes; the parameter must be derived from
            <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields, methods or properties defined in the
            derived class will be automatically accessible from the expressions declared in the
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> attributes. By default, the expressions will have
            access to the current <typeparamref name="T"/> instance by referencing the <c>this</c> keyword,
            which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with update expression values applied.
            </returns>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateInstanceForType``2(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will update an instance of type <typeparamref name="T"/> accepting a
            contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter applying any specified
            <typeparamref name="TValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance needs to be
            assigned to the <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will update
            objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <typeparamref name="TValueExpressionAttribute"/> attributes. The updated object will automatically
            have applied any defined update values as specified by the encountered attributes. The generated
            delegate takes a parameter to a contextual object useful for providing extra runtime data to
            <typeparamref name="TValueExpressionAttribute"/> attributes; the parameter must be derived from
            <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields, methods or properties defined in the
            derived class will be automatically accessible from the expressions declared in the
            <typeparamref name="TValueExpressionAttribute"/> attributes. By default, the expressions will have
            access to the current <typeparamref name="T"/> instance by referencing the <c>this</c> keyword,
            which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>.
            <note type="note">
            This function will assign evaluated expression values to properties in an existing model.
            </note>
            </remarks>
            <returns>
            Generated delegate that will update <typeparamref name="T"/> instances with expression values applied.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressions``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will execute expression assignments on an instance of type <typeparamref name="T"/>
            accepting a contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter where expressions
            are <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance needs to be
            assigned to the <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances,
            or <c>null</c> to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will execute expression
            assignments on objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attributes. The generated delegate takes a parameter
            to a contextual object useful for providing extra runtime data to the expressions defined in attributes
            of type <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/>; the contextual parameter must be derived
            from <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields, methods or properties defined in the
            derived class will be automatically accessible from the expressions declared in the
            <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attributes. By default, the expressions will have
            access to the current <typeparamref name="T"/> instance by referencing the <c>this</c> keyword,
            which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>. Note that the expression in
            the <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> attribute is expected to evaluate to a property
            such that it can be assigned the target type <typeparamref name="T"/> property value.
            <note type="note">
            This function will assign current modeled property values back to expressions, this is often useful
            when a model is being synchronized to an external source, e.g., user interface elements.
            </note>
            </remarks>
            <returns>
            Generated delegate that will execute expression assignments on <typeparamref name="T"/> instances.
            </returns>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="M:GSF.ComponentModel.ValueExpressionParser`1.UpdateExpressionsForType``2(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)">
            <summary>
            Generates a delegate that will execute expression assignments on an instance of type <typeparamref name="T"/>
            accepting a contextual <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> object parameter where expressions
            are <typeparamref name="TValueExpressionAttribute"/> instances that are declared on the type
            <typeparamref name="T"/> properties. Target <typeparamref name="T"/> instance needs to be
            assigned to the <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/> property prior to call.
            </summary>
            <param name="properties">Specific properties to target, or <c>null</c> to target all properties.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            This function is useful for generating a delegate to a compiled function that will execute expression
            assignments on objects of type <typeparamref name="T"/> where properties of the type of have been decorated
            with <typeparamref name="TValueExpressionAttribute"/> attributes. The generated delegate takes a parameter
            to a contextual object useful for providing extra runtime data to the expressions defined in attributes
            of type <typeparamref name="TValueExpressionAttribute"/>; the contextual parameter must be derived from
            <see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/>. Any public fields, methods or properties defined in the
            derived class will be automatically accessible from the expressions declared in the
            <typeparamref name="TValueExpressionAttribute"/> attributes. By default, the expressions will have
            access to the current <typeparamref name="T"/> instance by referencing the <c>this</c> keyword,
            which is an alias to <see cref="P:GSF.ComponentModel.IValueExpressionScope`1.Instance"/>. Note that the expression in
            the <typeparamref name="TValueExpressionAttribute"/> attribute is expected to evaluate to a property
            such that it can be assigned the target type <typeparamref name="T"/> property value.
            <note type="note">
            This function will assign current modeled property values back to expressions, this is often useful
            when a model is being synchronized to an external source, e.g., user interface elements.
            </note>
            </remarks>
            <returns>
            Generated delegate that will execute expression assignments on <typeparamref name="T"/> instances.
            </returns>
            <typeparam name="TValueExpressionAttribute"><see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> parameter type.</typeparam>
            <typeparam name="TExpressionScope"><see cref="T:GSF.ComponentModel.IValueExpressionScope`1"/> parameter type.</typeparam>
        </member>
        <member name="T:GSF.ComponentModel.ValueExpressionScopeBase`1">
            <summary>
            Represent a base class used for providing contextual scope when evaluating
            instances of the <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/>.
            </summary>
            <remarks>
            This class should be extended with public instance fields that will be automatically
            exposed to <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/> expressions.
            </remarks>
            <typeparam name="T">Type of associated model.</typeparam>
        </member>
        <member name="P:GSF.ComponentModel.ValueExpressionScopeBase`1.Instance">
            <summary>
            Gets or sets the current <typeparamref name="T"/> instance.
            </summary>
            <remarks>
            By using the <see cref="M:GSF.ComponentModel.ValueExpressionParser.ReplaceThisKeywords(System.String,System.String)"/> function, expressions
            can reference the current <typeparamref name="T"/> instance using the <c>this</c> keyword.
            See <see cref="M:GSF.ComponentModel.ValueExpressionParser`1.CreateInstance``1(System.Collections.Generic.IEnumerable{System.Reflection.PropertyInfo},ExpressionEvaluator.TypeRegistry)"/>.
            </remarks>
        </member>
        <member name="T:GSF.CompoundValue`1">
            <summary>
            Represents a collection of individual values that together represent a compound value once all the values have been assigned.
            </summary>
            <remarks>
            Composite values are stored as <see cref="T:System.Nullable`1"/> and can be cumulated until all values have been assigned so that a
            compound value can be created.
            </remarks>
            <typeparam name="T"><see cref="T:System.Type"/> of composite values.</typeparam>
        </member>
        <member name="M:GSF.CompoundValue`1.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.CompoundValue`1"/>.
            </summary>
        </member>
        <member name="M:GSF.CompoundValue`1.#ctor(System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.CompoundValue`1"/> specifing the total number of composite values to track.
            </summary>
            <remarks>
            The specified <paramref name="count"/> of items are added to the <see cref="T:GSF.CompoundValue`1"/>,
            each item will be marked as unassigned (i.e., null).
            </remarks>
            <param name="count">Total number of composite values to track.</param>
        </member>
        <member name="M:GSF.CompoundValue`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Creates a new <see cref="T:GSF.CompoundValue`1"/> from the specified list.
            </summary>
            <param name="values">List of values used to initialize <see cref="T:GSF.CompoundValue`1"/>.</param>
        </member>
        <member name="M:GSF.CompoundValue`1.#ctor(System.Collections.Generic.IEnumerable{System.Nullable{`0}})">
            <summary>
            Creates a new <see cref="T:GSF.CompoundValue`1"/> from the specified list.
            </summary>
            <param name="values">List of values used to initialize <see cref="T:GSF.CompoundValue`1"/>.</param>
        </member>
        <member name="P:GSF.CompoundValue`1.AllAssigned">
            <summary>
            Gets a boolean value indicating if all of the composite values have been assigned a value.
            </summary>
            <returns>True, if all composite values have been assigned a value; otherwise, false.</returns>
        </member>
        <member name="P:GSF.CompoundValue`1.NoneAssigned">
            <summary>
            Gets a boolean value indicating if none of the composite values have been assigned a value.
            </summary>
            <returns>True, if no composite values have been assigned a value; otherwise, false.</returns>
        </member>
        <member name="M:GSF.CompoundValue`1.ToArray">
            <summary>
            Gets an array of all the <see cref="M:System.Nullable`1.GetValueOrDefault"/> elements of the <see cref="T:GSF.CompoundValue`1"/>.
            </summary>
            <returns>A new array containing copies of the <see cref="M:System.Nullable`1.GetValueOrDefault"/> elements of the <see cref="T:GSF.CompoundValue`1"/>.</returns>
        </member>
        <member name="T:GSF.Configuration.AppSettingsBase">
            <summary>
            Represents the base class for application settings that are synchronized with the "appSettings" section in a configuration file.
            </summary>
            <remarks>
            <para>
            In order to make custom types serializable for the configuration file, implement a <see cref="T:System.ComponentModel.TypeConverter"/> for the type.<br/>
            See <a href="http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx">MSDN</a> for details.
            </para>
            <example>
            Here is an example class derived from <see cref="T:GSF.Configuration.AppSettingsBase"/> that automatically
            serializes its fields and properties to the configuration file.
            <code>
               public enum MyEnum
                {
                    One,
                    Two,
                    Three
                }
            
                public class MySettings : AppSettingsBase
                {
                    // Private property fields (private fields will not be serialized)
                    private double m_doubleVal;
            
                    // Public settings fields
                    public bool BoolVal = true;
                    public int IntVal = 1;
                    public float FloatVal = 3.14F;
                    public string StrVal = "This is a test...";
                    public MyEnum EnumVal = MyEnum.Three;
                    
                    [SettingName("UserOptions"), EncryptSetting()]
                    public string Password = "default";
            
                    // Mark this field to not be serialized to INI file...
                    [SerializeSetting(false)]
                    public decimal DecimalVal;
            
                    [Category("OtherSettings"), DefaultValue(1.159D)]
                    public double DoubleVal
                    {
                        get
                        {
                            return m_doubleVal;
                        }
                        set
                        {
                            m_doubleVal = value;
                        }
                    }
            
                    [SerializeSetting(false)]
                    public bool DontSerializeMe { get; set; }
                }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.AppSettingsBase"/> class for the application's configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.#ctor(GSF.Configuration.ConfigurationFile,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.AppSettingsBase"/> class for the application's configuration file.
            </summary>
            <param name="configFile">Configuration file used for accessing settings.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <remarks>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constuctor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </remarks>
        </member>
        <member name="P:GSF.Configuration.AppSettingsBase.ConfigFile">
            <summary>
            Gets or sets reference to working configuration file.
            </summary>
            <exception cref="T:System.NullReferenceException">value cannot be null.</exception>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.CreateSetting(System.String,System.String,System.String)">
            <summary>
            Create setting in configuration file if it doesn't already exist.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.RetrieveSetting(System.String,System.String)">
            <summary>
            Retrieves setting from configuration file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <returns>Setting value.</returns>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.StoreSetting(System.String,System.String,System.String)">
            <summary>
            Stores setting to configuration file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.AppSettingsBase.PersistSettings">
            <summary>
            Persist any pending changes to configuration file.
            This method is for internal use.
            </summary>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsBase">
            <summary>
            Represents the base class for application settings that are synchronized with a categorized section in a configuration file.
            </summary>
            <remarks>
            <para>
            In order to make custom types serializable for the configuration file, implement a <see cref="T:System.ComponentModel.TypeConverter"/> for the type.<br/>
            See <a href="http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx">MSDN</a> for details.
            </para>
            <example>
            Here is an example class derived from <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> that automatically
            serializes its fields and properties to the configuration file.
            <code>
               public enum MyEnum
                {
                    One,
                    Two,
                    Three
                }
            
                public class MySettings : CategorizedSettingsBase
                {
                    // Private property fields (private fields will not be serialized)
                    private double m_doubleVal;
            
                    // Public settings fields
                    public bool BoolVal = true;
                    public int IntVal = 1;
                    public float FloatVal = 3.14F;
                    public string StrVal = "This is a test...";
                    public MyEnum EnumVal = MyEnum.Three;
                    
                    [SettingName("UserOptions"), EncryptSetting()]
                    public string Password = "default";
            
                    // Mark this field to not be serialized to configuration file...
                    [SerializeSetting(false)]
                    public decimal DecimalVal;
            
                    public MySettings()
                        : base("GeneralSettings") {}
            
                    [Category("OtherSettings"), Description("My double value setting description."), DefaultValue(1.159D)]
                    public double DoubleVal
                    {
                        get
                        {
                            return m_doubleVal;
                        }
                        set
                        {
                            m_doubleVal = value;
                        }
                    }
            
                    [SerializeSetting(false)]
                    public bool DontSerializeMe { get; set; }
                }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.#ctor(System.String,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <remarks>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.#ctor(GSF.Configuration.ConfigurationFile,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> class for the application's configuration file.
            </summary>
            <param name="configFile">Configuration file used for accessing settings.</param>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <remarks>
            <para>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </para>
            <para>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constructor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsBase.ConfigFile">
            <summary>
            Gets or sets reference to working configuration file.
            </summary>
            <exception cref="T:System.NullReferenceException">value cannot be null.</exception>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsBase.CategoryName">
            <summary>
            Gets or sets default category name of section used to access settings in configuration file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsBase.UseCategoryAttributes">
            <summary>
            Gets or sets value that determines whether a <see cref="T:System.ComponentModel.CategoryAttribute"/> applied to a field or property
            will be used for the category name.
            </summary>
            <remarks>
            If <see cref="P:GSF.Configuration.CategorizedSettingsBase.UseCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <see cref="P:GSF.Configuration.CategorizedSettingsBase.CategoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <see cref="P:GSF.Configuration.CategorizedSettingsBase.CategoryName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.CreateSetting(System.String,System.String,System.String)">
            <summary>
            Create setting in configuration file if it doesn't already exist.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.RetrieveSetting(System.String,System.String)">
            <summary>
            Retrieves setting from configuration file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <returns>Setting value.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.StoreSetting(System.String,System.String,System.String)">
            <summary>
            Stores setting to configuration file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.PersistSettings">
            <summary>
            Persist any pending changes to configuration file.
            This method is for internal use.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.GetFieldCategoryName(System.String)">
            <summary>
            Gets the category name to use for the specified field or property.
            </summary>
            <param name="name">Field or property name.</param>
            <returns><see cref="P:System.ComponentModel.CategoryAttribute.Category"/> applied to specified field or property; or <see cref="P:GSF.Configuration.CategorizedSettingsBase.CategoryName"/> if attribute does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
            <remarks>
            <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> will only be returned if <see cref="P:GSF.Configuration.CategorizedSettingsBase.UseCategoryAttributes"/> is <c>true</c>; otherwise
            <see cref="P:GSF.Configuration.CategorizedSettingsBase.CategoryName"/> value will be returned.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.GetFieldDescription(System.String)">
            <summary>
            Gets the description specified by <see cref="T:System.ComponentModel.DescriptionAttribute"/>, if any, applied to the specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Description applied to specified field or property; or null if one does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase.GetFieldSettingScope(System.String)">
            <summary>
            Gets the <see cref="T:GSF.Configuration.SettingScope"/> specified by <see cref="T:System.Configuration.UserScopedSettingAttribute"/>, if any, applied to the specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Description applied to specified field or property; or null if one does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsBase`1">
            <summary>
            Represents the base class for application settings that are synchronized with a categorized section in a configuration file
            and will perform bi-directional synchronization of elements marked with <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> 
            to an external source, e.g., user interface elements.
            </summary>
            <remarks>
            Consumer will need to call <see cref="M:GSF.Configuration.CategorizedSettingsBase`2.UpdateProperties"/> method when modeled
            external sources are updated to ensure properties stay in-sync with external source.
            </remarks>
            <typeparam name="TCategorizedSettings">Type of derived <see cref="T:GSF.Configuration.CategorizedSettingsBase`1"/>.</typeparam>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`1.#ctor(System.String,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`1"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`1.#ctor(System.String,System.Boolean,System.Boolean,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`1"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`1.#ctor(GSF.Configuration.ConfigurationFile,System.String,System.Boolean,System.Boolean,System.Boolean,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`1"/> class for the application's configuration file.
            </summary>
            <param name="configFile">Configuration file used for accessing settings.</param>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.TypeConvertedValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            <para>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </para>
            <para>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constructor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsBase`2">
            <summary>
            Represents the base class for application settings that are synchronized with a categorized section in a configuration file
            and will perform bi-directional synchronization of elements marked with <typeparamref name="TValueExpressionAttribute"/> to
            an external source, e.g., user interface elements.
            </summary>
            <remarks>
            Consumer will need to call <see cref="M:GSF.Configuration.CategorizedSettingsBase`2.UpdateProperties"/> method when modeled external sources are updated to ensure properties
            stay in-sync with external source.
            </remarks>
            <typeparam name="TValueExpressionAttribute">Type of <see cref="T:GSF.ComponentModel.IValueExpressionAttribute"/> used for run-time value synchronization.</typeparam>
            <typeparam name="TCategorizedSettings">Type of derived <see cref="T:GSF.Configuration.CategorizedSettingsBase`2"/>.</typeparam>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`2.#ctor(System.String,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`2"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`2.#ctor(System.String,System.Boolean,System.Boolean,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`2"/> class for the application's configuration file.
            </summary>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`2.#ctor(GSF.Configuration.ConfigurationFile,System.String,System.Boolean,System.Boolean,System.Boolean,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.CategorizedSettingsBase`2"/> class for the application's configuration file.
            </summary>
            <param name="configFile">Configuration file used for accessing settings.</param>
            <param name="categoryName">Name of default category to use to get and set settings from configuration file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for category names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <typeparamref name="TValueExpressionAttribute"/> instances, or <c>null</c>
            to use <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>.
            </param>
            <remarks>
            <para>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="categoryName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the configuration file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="categoryName"/> value.
            </para>
            <para>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constructor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`2.UpdateProperties">
            <summary>
            Refresh property values from modeled value expressions.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsBase`2.UpdateExpressions">
            <summary>
            Refresh modeled value expressions from property values.
            </summary>
        </member>
        <member name="T:GSF.Configuration.SettingScope">
            <summary>
            Specifies the scope of a setting represented by <see cref="T:GSF.Configuration.CategorizedSettingsElement"/>.
            </summary>
        </member>
        <member name="F:GSF.Configuration.SettingScope.User">
            <summary>
            Settings is intended for user specific use.
            </summary>
        </member>
        <member name="F:GSF.Configuration.SettingScope.Application">
            <summary>
            Settings is intended for application wide use.
            </summary>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsElement">
            <summary>
            Represents a settings entry in the config file.
            </summary>
        </member>
        <member name="F:GSF.Configuration.CategorizedSettingsElement.DefaultValue">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Configuration.CategorizedSettingsElement.Value"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.CategorizedSettingsElement.DefaultDescription">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Configuration.CategorizedSettingsElement.Description"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.CategorizedSettingsElement.DefaultEncrypted">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Configuration.CategorizedSettingsElement.Encrypted"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.CategorizedSettingsElement.DefaultScope">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Configuration.CategorizedSettingsElement.Scope"/> property.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.#ctor(GSF.Configuration.CategorizedSettingsElementCollection)">
            <summary>
            Required by the configuration API and is for internal use only.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.#ctor(GSF.Configuration.CategorizedSettingsElementCollection,System.String)">
            <summary>
            Required by the configuration API and is for internal use only.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Category">
            <summary>
            Gets or sets the <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> to which this <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> belongs.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Name">
            <summary>
            Gets or sets the identifier of the setting.
            </summary>
            <returns>The identifier of the setting.</returns>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Value">
            <summary>
            Gets or sets the value of the setting.
            </summary>
            <returns>The value of the setting.</returns>
            <remarks>
            <see cref="P:GSF.Configuration.CategorizedSettingsElement.Value"/> can reference the value of another setting using <b>Eval([Section].[Setting])</b> syntax or the value of a known .NET 
            type's static member (field, non-indexed property or parameterless method) using <b>Eval([Type].[Member])</b> syntax as shown in the example below:
            <code>
            <![CDATA[
            <?xml version="1.0"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="GSF.Configuration.CategorizedSettingsSection, GSF.Core" />
              </configSections>
              <categorizedSettings>
                <database>
                  <add name="SettingsTable" value="dbo.Settings" description="Table that contains the settings." 
                    encrypted="false" />
                  <add name="AdminEmail" value="SELECT * FROM Eval(Database.SettingsTable) WHERE Name = 'AdminEmail'" 
                    description="Email address of the administrator." encrypted="false" />
                  <add name="AuditQuery" value="SELECT * FROM dbo.Log WHERE EntryTime < 'Eval(System.DateTime.UtcNow)'" 
                    description="Query for retrieving audit records." encrypted="false" />
                </database>
              </categorizedSettings>
            </configuration>
            ]]>
            </code>
            </remarks>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Description">
            <summary>
            Gets or sets the description of the setting.
            </summary>
            <returns>The description of the setting.</returns>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Encrypted">
            <summary>
            Gets or sets a boolean value that indicates whether the setting value is to be encrypted.
            </summary>
            <returns>true, if the setting value is to be encrypted; otherwise false.</returns>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.Scope">
            <summary>
            Gets or sets the <see cref="T:GSF.Configuration.SettingScope"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElement.SerializedValue">
            <summary>
            Gets value that will actually be serialized to the configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.SetCryptoKey(System.String)">
            <summary>
            Sets the key to be used for encrypting and decrypting the <see cref="P:GSF.Configuration.CategorizedSettingsElement.Value"/>.
            </summary>
            <param name="cryptoKey">New crypto key.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.Update(System.Object)">
            <summary>
            Updates setting information.
            </summary>
            <param name="value">New setting value.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.Update(System.Object,System.String)">
            <summary>
            Updates setting information.
            </summary>
            <param name="value">New setting value.</param>
            <param name="description">New setting description.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.Update(System.Object,System.String,System.Boolean)">
            <summary>
            Updates setting information.
            </summary>
            <param name="value">New setting value.</param>
            <param name="description">New setting description.</param>
            <param name="encrypted">A boolean value that indicated whether the new setting value is to be encrypted.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.Update(System.Object,System.String,System.Boolean,GSF.Configuration.SettingScope)">
            <summary>
            Updates setting information.
            </summary>
            <param name="value">New setting value.</param>
            <param name="description">New setting description.</param>
            <param name="encrypted">A boolean value that indicated whether the new setting value is to be encrypted.</param>
            <param name="scope">One of the <see cref="T:GSF.Configuration.SettingScope"/> values.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAs``1">
            <summary>
            Gets the setting value as the specified type.
            </summary>
            <typeparam name="T">Type to which the setting value is to be converted.</typeparam>
            <returns>The type-coerced value of the setting.</returns>
            <remarks>
            If this function fails to properly coerce value to specified type, the default value is returned.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAs``1(``0)">
            <summary>
            Gets the setting value as the specified type.
            </summary>
            <typeparam name="T">Type to which the setting value is to be converted.</typeparam>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>The type-coerced value of the setting.</returns>
            <remarks>
            If this function fails to properly coerce value to specified type, the default value is returned.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsString">
            <summary>
            Gets the setting value as a string.
            </summary>
            <returns>Value as string.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsString(System.String)">
            <summary>
            Gets the setting value as a string.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as string.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsBoolean">
            <summary>
            Gets the setting value as a boolean.
            </summary>
            <returns>Value as boolean.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsBoolean(System.Boolean)">
            <summary>
            Gets the setting value as a boolean.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as boolean.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsByte">
            <summary>
            Gets the setting value as a byte.
            </summary>
            <returns>Value as byte.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsByte(System.Byte)">
            <summary>
            Gets the setting value as a byte.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as byte.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsSByte">
            <summary>
            Gets the setting value as a signed byte.
            </summary>
            <returns>Value as signed byte.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsSByte(System.SByte)">
            <summary>
            Gets the setting value as a signed byte.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as signed byte.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsChar">
            <summary>
            Gets the setting value as a char.
            </summary>
            <returns>Value as char.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsChar(System.Char)">
            <summary>
            Gets the setting value as a char.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as char.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt16">
            <summary>
            Gets the setting value as a short.
            </summary>
            <returns>Value as short.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt16(System.Int16)">
            <summary>
            Gets the setting value as a short.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as short.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt32">
            <summary>
            Gets the setting value as an int.
            </summary>
            <returns>Value as int.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt32(System.Int32)">
            <summary>
            Gets the setting value as an int.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as int.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt64">
            <summary>
            Gets the setting value as a long.
            </summary>
            <returns>Value as long.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsInt64(System.Int64)">
            <summary>
            Gets the setting value as a long.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as long.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt16">
            <summary>
            Gets the setting value as an unsigned short.
            </summary>
            <returns>Value as unsigned short.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt16(System.UInt16)">
            <summary>
            Gets the setting value as an unsigned short.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as unsigned short.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt32">
            <summary>
            Gets the setting value as an unsigned int.
            </summary>
            <returns>Value as unsigned int.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt32(System.UInt32)">
            <summary>
            Gets the setting value as an unsigned int.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as unsigned int.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt64">
            <summary>
            Gets the setting value as an unsigned long.
            </summary>
            <returns>Value as unsigned long.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsUInt64(System.UInt64)">
            <summary>
            Gets the setting value as an unsigned long.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as unsigned long.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsSingle">
            <summary>
            Gets the setting value as a float.
            </summary>
            <returns>Value as float.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsSingle(System.Single)">
            <summary>
            Gets the setting value as a float.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as float.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDouble">
            <summary>
            Gets the setting value as a double.
            </summary>
            <returns>Value as double.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDouble(System.Double)">
            <summary>
            Gets the setting value as a double.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as double.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDecimal">
            <summary>
            Gets the setting value as a decimal.
            </summary>
            <returns>Value as decimal.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDecimal(System.Decimal)">
            <summary>
            Gets the setting value as a decimal.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as decimal.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDateTime">
            <summary>
            Gets the setting value as DateTime.
            </summary>
            <returns>Value as DateTime.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElement.ValueAsDateTime(System.DateTime)">
            <summary>
            Gets the setting value as DateTime.
            </summary>
            <param name="defaultValue">The default value to return if the setting value is empty.</param>
            <returns>Value as DateTime.</returns>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsElementCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> objects.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElementCollection.Name">
            <summary>
            Gets or sets the name of the <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElementCollection.Section">
            <summary>
            Gets or sets the <see cref="T:GSF.Configuration.CategorizedSettingsSection"/> to which this <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> belongs.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElementCollection.Item(System.Int32)">
            <summary>
            Gets or sets the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object at the specified index.
            </summary>
            <param name="index">Zero-based index for the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to retrieve.</param>
            <returns>The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object at the specified index if it exists; otherwise null.</returns>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElementCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object with the specified name.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to retrieve.</param>
            <returns>The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object with the specified name if it exists; otherwise null.</returns>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsElementCollection.Item(System.String,System.Boolean)">
            <summary>
            Gets the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object with the specified name.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to retrieve.</param>
            <param name="ensureExistance">true if the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object is to be created if it does not exist; otherwise false.</param>
            <returns>The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object with the specified name if it exists; otherwise null.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.SetCryptoKey(System.String)">
            <summary>
            Sets the key to be used for encrypting and decrypting setting values.
            </summary>
            <param name="cryptoKey">New crypto key.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.IndexOf(GSF.Configuration.CategorizedSettingsElement)">
            <summary>
            Gets the index of the specified <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.
            </summary>
            <param name="setting">The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object whose index is to be retrieved.</param>
            <returns>Index of the specified <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if found; otherwise -1.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Add(System.String,System.Object)">
            <summary>
            Adds a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if one does not exist.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="value">Value of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Add(System.String,System.Object,System.String)">
            <summary>
            Adds a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if one does not exist.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="value">Value of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="description">Description of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Add(System.String,System.Object,System.String,System.Boolean)">
            <summary>
            Adds a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if one does not exist.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="value">Value of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="description">Description of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="encryptValue">true if the Value of <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object is to be encrypted; otherwise false.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Add(System.String,System.Object,System.String,System.Boolean,GSF.Configuration.SettingScope)">
            <summary>
            Adds a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if one does not exist.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="value">Value of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="description">Description of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <param name="encryptValue">true if the Value of <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object is to be encrypted; otherwise false.</param>
            <param name="scope">One of the <see cref="T:GSF.Configuration.SettingScope"/> values.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Add(GSF.Configuration.CategorizedSettingsElement)">
            <summary>
            Adds a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if one does not exist.
            </summary>
            <param name="setting">The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to add.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Remove(System.String)">
            <summary>
            Removes a <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if it exists.
            </summary>
            <param name="name">Name of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to remove.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Remove(GSF.Configuration.CategorizedSettingsElement)">
            <summary>
            Removes a <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object if it exists.
            </summary>
            <param name="setting">The <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to remove.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.RemoveAt(System.Int32)">
            <summary>
            Removes the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object at the specified index location.
            </summary>
            <param name="index">Index location of the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object to remove.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.Clear">
            <summary>
            Removes all existing <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> objects.
            </summary>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.CreateNewElement">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.
            </summary>
            <returns>Instance of <see cref="T:GSF.Configuration.CategorizedSettingsElement"/>.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.CreateNewElement(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.
            </summary>
            <param name="elementName">Name identifying the <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</param>
            <returns>Instance of <see cref="T:GSF.Configuration.CategorizedSettingsElement"/>.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
            <summary>
            Gets the key for a <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.
            </summary>
            <param name="element"><see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object whose key is to be retrieved.</param>
            <returns>String key value for a <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> object.</returns>
        </member>
        <member name="T:GSF.Configuration.CategorizedSettingsSection">
            <summary>
            Represents a section in the config file with one or more <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> 
            representing categories, each containing one or more <see cref="T:GSF.Configuration.CategorizedSettingsElement"/> objects 
            representing settings under a specific category.
            </summary>
            <seealso cref="T:GSF.Configuration.CategorizedSettingsElement"/>
            <seealso cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsSection.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.CategorizedSettingsSection"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsSection.File">
            <summary>
            Gets or sets the <see cref="T:GSF.Configuration.ConfigurationFile"/> to which this <see cref="T:GSF.Configuration.CategorizedSettingsSection"/> belongs.
            </summary>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsSection.Item(System.String)">
            <summary>
            Gets the <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> object representing settings under the specified category name.
            </summary>
            <param name="name">Name of the category whose settings are to be retrieved.</param>
            <returns><see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> object with settings under the specified category name.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is null or empty string.</exception>
        </member>
        <member name="P:GSF.Configuration.CategorizedSettingsSection.General">
            <summary>
            Gets the <see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> object representing settings under "general" category.
            </summary>
            <returns><see cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/> object with settings under the "general" category.</returns>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsSection.SetCryptoKey(System.String)">
            <summary>
            Sets the key to be used for encrypting and decrypting setting values.
            </summary>
            <param name="cryptoKey">New crypto key.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsSection.Remove(System.String)">
            <summary>
            Removes the specified category name including its associated settings.
            </summary>
            <param name="name">Name of the category to be removed.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="name"/> is null or empty string.</exception>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsSection.DeserializeSection(System.Xml.XmlReader)">
            <summary>
            Reads XML from the configuration file.
            </summary>
            <param name="reader">The <see cref="T:System.Xml.XmlReader"/> object, which reads from the configuration file.</param>
        </member>
        <member name="M:GSF.Configuration.CategorizedSettingsSection.SerializeSection(System.Configuration.ConfigurationElement,System.String,System.Configuration.ConfigurationSaveMode)">
            <summary>
            Creates an XML string containing an unmerged view of the <see cref="T:System.Configuration.ConfigurationSection"/> object as a single section to write to a file.
            </summary>
            <returns>
            An XML string containing an unmerged view of the <see cref="T:System.Configuration.ConfigurationSection"/> object.
            </returns>
            <param name="parentElement">The <see cref="T:System.Configuration.ConfigurationElement"/> instance to use as the parent when performing the un-merge.</param>
            <param name="name">The name of the section to create.</param>
            <param name="saveMode">The <see cref="T:System.Configuration.ConfigurationSaveMode"/> instance to use when writing to a string.</param>
        </member>
        <member name="T:GSF.Configuration.ConfigurationFile">
            <summary>
            Represents a configuration file of a Windows or Web application.
            </summary>
            <example>
            This example shows how to save and read settings from the config file:
            <code>
            using System;
            using System.Configuration;
            using GSF;
            using GSF.Configuration;
            
            class Program
            {
                static void Main(string[] args)
                {
                    // Get the application config file.
                    ConfigurationFile config = ConfigurationFile.Current;
            
                    // Get the sections of config file.
                    CategorizedSettingsElementCollection startup = config.Settings["Startup"];
                    CategorizedSettingsElementCollection passwords = config.Settings["Passwords"];
                    CategorizedSettingsElementCollection monitoring = config.Settings["Monitoring"];
                    KeyValueConfigurationCollection appSettings = config.Configuration.AppSettings.Settings;
                    ConnectionStringSettingsCollection connStrings = config.Configuration.ConnectionStrings.ConnectionStrings;
            
                    // Add settings to the config file under the "appSettings" section.
                    appSettings.Add("SaveSettingOnExit", true.ToString());
                    // Add settings to the config file under the "connectionStrings" section.
                    connStrings.Add(new ConnectionStringSettings("DevSql", "Server=SqlServer;Database=Sandbox;Trusted_Connection=True"));
                    // Add settings to the config (if they don't exist) under a custom "monitoring" section.
                    monitoring.Add("RefreshInterval", 5, "Interval in seconds at which the Monitor screen is to be refreshed.");
                    monitoring.Add("MessagesSnapshot", 30000, "Maximum messages length to be displayed on the Monitor screen.");
                    // Add password to the config file encrypted (if it doesn't exist) under a custom "passwords" section.
                    passwords.Add("Admin", "Adm1nP4ss", "Password used for performing administrative tasks.", true);
                    // Add user-scope setting to the config (if it doesn't exist) under a custom "startup" section.
                    startup.Add("Theme", "Default", "Application theme to use for the session.", false, SettingScope.User);
                    config.Save();  // Save settings to the config file.
            
                    // Read saved settings from the config file.
                    bool saveSettingsOnExit = appSettings["SaveSettingOnExit"].Value.ParseBoolean();
                    string devConnectionString = connStrings["DevSql"].ConnectionString;
                    string appTheme = startup["Theme"].Value;
                    string adminPassword = passwords["Admin"].Value;
                    int refreshInterval = monitoring["RefreshInterval"].ValueAsInt32();
                    int messagesSnapshot = monitoring["MessagesSnapshot"].ValueAsInt32();
            
                    // Print the retrieved settings to the console.
                    Console.WriteLine("SaveSettingOnExit = {0}", saveSettingsOnExit);
                    Console.WriteLine("DevSql = {0}", devConnectionString);
                    Console.WriteLine("Theme = {0}", appTheme);
                    Console.WriteLine("Admin = {0}", adminPassword);
                    Console.WriteLine("RefreshInterval = {0}", refreshInterval);
                    Console.WriteLine("MessagesSnapshot = {0}", messagesSnapshot);
            
                    Console.ReadLine();
                }
            }
            </code>
            This example shows the content of the config file from the sample code above:
            <code>
            <![CDATA[
            <?xml version="1.0" encoding="utf-8"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="GSF.Configuration.CategorizedSettingsSection, GSF.Core" />
              </configSections>
              <appSettings>
                <add key="SaveSettingOnExit" value="True" />
              </appSettings>
              <categorizedSettings>
                <startup>
                  <add name="Theme" value="Default" description="Application theme to use for the session."
                    encrypted="false" scope="User" />
                </startup>
                <passwords>
                  <add name="Admin" value="C+0j6fE/N0Q9b5xaeDKgvRmSeY9zJkO1EQCr7cHoG3x24tztlbBB54PfWsuMGXc/"
                    description="Password used for performing administrative tasks."
                    encrypted="true" />
                </passwords>
                <monitoring>
                  <add name="RefreshInterval" value="5" description="Interval in seconds at which the Monitor screen is to be refreshed."
                    encrypted="false" />
                  <add name="MessagesSnapshot" value="30000" description="Maximum messages length to be displayed on the Monitor screen."
                    encrypted="false" />
                </monitoring>
              </categorizedSettings>
              <connectionStrings>
                <add name="DevSql" connectionString="Server=SqlServer;Database=Sandbox;Trusted_Connection=True" />
              </connectionStrings>
            </configuration>
            ]]>
            </code>
            </example>
            <seealso cref="T:GSF.Configuration.CategorizedSettingsSection"/>
            <seealso cref="T:GSF.Configuration.CategorizedSettingsElement"/>
            <seealso cref="T:GSF.Configuration.CategorizedSettingsElementCollection"/>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Configuration.ConfigurationFile"/> class.
            </summary>        
        </member>
        <member name="P:GSF.Configuration.ConfigurationFile.Culture">
            <summary>
            Gets or sets the <see cref="T:System.Globalization.CultureInfo"/> to use for the conversion of setting values to and from <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConfigurationFile.Configuration">
            <summary>
            Get the underlying <see cref="T:System.Configuration.Configuration"/> that can be accessed using this <see cref="T:GSF.Configuration.ConfigurationFile"/> object.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConfigurationFile.Settings">
            <summary>
            Gets the <see cref="T:GSF.Configuration.CategorizedSettingsSection"/> object representing settings under the "categorizedSettings" section of the config file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConfigurationFile.UserSettings">
            <summary>
            Gets the <see cref="T:GSF.Configuration.ConfigurationFile.UserConfigurationFile"/> where user specific settings are saved.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.Save">
            <summary>
            Writes the configuration settings contained within this <see cref="T:GSF.Configuration.ConfigurationFile"/> object to the configuration file that it represents.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.Save(System.Configuration.ConfigurationSaveMode)">
            <summary>
            Writes the configuration settings contained within this <see cref="T:GSF.Configuration.ConfigurationFile"/> object to the configuration file that it represents.
            </summary>
            <param name="saveMode">One of the <see cref="T:System.Configuration.ConfigurationSaveMode"/> values.</param>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.SaveAs(System.String)">
            <summary>
            Writes the configuration settings contained within this <see cref="T:GSF.Configuration.ConfigurationFile"/> object to the specified configuration file.
            </summary>
            <param name="fileName">The path and file name to save the configuration file to.</param>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.Reload">
            <summary>
            Reloads the current configuration settings from the configuration file that the <see cref="T:GSF.Configuration.ConfigurationFile"/> represents.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.RestoreDefaultUserSettings">
            <summary>
            Restores all the default settings for <see cref="F:GSF.Configuration.SettingScope.User"/> scoped settings.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.SetCryptoKey(System.String)">
            <summary>
            Sets the key to be used for encrypting and decrypting values of <see cref="P:GSF.Configuration.ConfigurationFile.Settings"/>.
            </summary>
            <param name="cryptoKey">New crypto key.</param>
        </member>
        <member name="P:GSF.Configuration.ConfigurationFile.Current">
            <summary>
            Gets the <see cref="T:GSF.Configuration.ConfigurationFile"/> object that represents the config file of the currently executing Windows or Web application.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConfigurationFile.Open(System.String)">
            <summary>
            Opens application config file at the specified <paramref name="configFilePath"/>.
            </summary>
            <param name="configFilePath">Path of the config file that belongs to a Windows or Web application.</param>
            <returns>An <see cref="T:GSF.Configuration.ConfigurationFile"/> object.</returns>
        </member>
        <member name="T:GSF.Configuration.ConnectionStringParser">
            <summary>
            Parses connection strings based on a settings object whose properties
            are annotated with the <see cref="T:GSF.Configuration.SerializeSettingAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty">
            <summary>
            Stores reflected information from a <see cref="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.PropertyInfo"/>
            object used to parse connection strings.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.PropertyInfo">
            <summary>
            The <see cref="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.PropertyInfo"/> object.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.Converter">
            <summary>
            The type converter used to convert the value
            of this property to and from a string.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.Names">
            <summary>
            The name of the property as it appears in the connection string.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.DefaultValue">
            <summary>
            The default value of the property if its value
            is not explicitly specified in the connection string.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.Required">
            <summary>
            Indicates whether or not the property is required
            to be explicitly defined in the connection string.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.ValidationAttributes">
            <summary>
            Gets all validation attributes that may be applied to the property.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.#ctor(System.Reflection.PropertyInfo,ExpressionEvaluator.TypeRegistry)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty"/> class.
            </summary>
            <param name="propertyInfo">The <see cref="F:GSF.Configuration.ConnectionStringParser.ConnectionStringProperty.PropertyInfo"/> object.</param>
            <param name="typeRegistry">
            Type registry to use when parsing <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>
            instances. Set to <c>null</c> for default registry.
            </param>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultParameterDelimiter">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.ParameterDelimiter"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultKeyValueDelimiter">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.KeyValueDelimiter"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultStartValueDelimiter">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.StartValueDelimiter"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultEndValueDelimiter">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.EndValueDelimiter"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultExplicitlySpecifyDefaults">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.ExplicitlySpecifyDefaults"/> property.
            </summary>
        </member>
        <member name="F:GSF.Configuration.ConnectionStringParser.DefaultSerializeUnspecifiedProperties">
            <summary>
            Default value for the <see cref="P:GSF.Configuration.ConnectionStringParser.SerializeUnspecifiedProperties"/> property.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.ConnectionStringParser"/> class.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.ParameterDelimiter">
            <summary>
            Gets or sets the parameter delimiter used to
            separate key-value pairs in the connection string.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.KeyValueDelimiter">
            <summary>
            Gets or sets the key-value delimiter used to
            separate keys from values in the connection string.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.StartValueDelimiter">
            <summary>
            Gets or sets the start value delimiter used to denote the
            start of a value in the cases where the value contains one
            of the delimiters defined for the connection string.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.EndValueDelimiter">
            <summary>
            Gets or sets the end value delimiter used to denote the
            end of a value in the cases where the value contains one
            of the delimiters defined for the connection string.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.ExplicitlySpecifyDefaults">
            <summary>
            Gets or sets the flag that determines whether to explicitly
            specify parameter values that match their defaults when
            serializing settings to a connection string.
            </summary>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser.SerializeUnspecifiedProperties">
            <summary>
            Gets or sets the flag that determines whether to include properties which are not
            annotated with the <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> in the connection string.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ComposeConnectionString(System.Object)">
            <summary>
            Serializes the given <paramref name="settingsObject"/> into a connection string.
            </summary>
            <param name="settingsObject">The object whose properties are to be serialized.</param>
            <returns>A connection string containing the serialized properties.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ParseConnectionString(System.String,System.Object)">
            <summary>
            Deserializes the connection string parameters into the given <paramref name="settingsObject"/>.
            </summary>
            <param name="connectionString">The connection string to be parsed.</param>
            <param name="settingsObject">The object whose properties are to be populated with values from the connection string.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="settingsObject"/> is null.</exception>
            <exception cref="T:System.ArgumentException">A required connection string parameter cannot be found in the connection string.</exception>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.GetConnectionStringProperties(System.Type)">
            <summary>
            Gets the set of properties which are part of the connection string.
            </summary>
            <param name="settingsObjectType">The type of the settings object used to look up properties via reflection.</param>
            <returns>The set of properties which are part of the connection string.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ConvertToPropertyType(System.String,GSF.Configuration.ConnectionStringParser.ConnectionStringProperty)">
            <summary>
            Converts the given string value to the type of the given property.
            </summary>
            <param name="value">The string value to be converted.</param>
            <param name="property">The property used to determine what type to convert to.</param>
            <returns>The given string converted to the type of the given property.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ConvertToString(System.Object,GSF.Configuration.ConnectionStringParser.ConnectionStringProperty)">
            <summary>
            Converts the given object to a string.
            </summary>
            <param name="obj">The object to be converted.</param>
            <param name="property">The property which defines the type of the object.</param>
            <returns>The object converted to a string.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ToConnectionString(System.Xml.Linq.XElement)">
            <summary>
            Converts XML to a connection string.
            </summary>
            <param name="element">The root element of the XML to be converted to a connection string.</param>
            <returns>A connection string converted from XML.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser.ToXML(System.String)">
            <summary>
            Converts a connection string to XML.
            </summary>
            <param name="connectionString">The connection string to be converted to XML.</param>
            <exception cref="T:System.InvalidOperationException">The connection string does not define exactly one root element.</exception>
            <returns>The XML root element converted from the connection string.</returns>
        </member>
        <member name="T:GSF.Configuration.ConnectionStringParser`1">
            <summary>
            Parses connection strings based on a settings object whose properties
            are annotated with <typeparamref name="TParameterAttribute"/>.
            </summary>
            <typeparam name="TParameterAttribute">
            The type of the attribute to search for when determining whether
            to serialize a property to the connection string.
            </typeparam>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser`1.SerializeUnspecifiedProperties">
            <summary>
            Redefined to throw an exception. This property has no meaning when
            property serialization is determined by the existence of the typed parameter.
            </summary>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser`1.GetConnectionStringProperties(System.Type)">
            <summary>
            Gets the set of properties which are part of the connection string.
            </summary>
            <param name="settingsObjectType">The type of the settings object used to look up properties via reflection.</param>
            <returns>The set of properties which are part of the connection string.</returns>
        </member>
        <member name="P:GSF.Configuration.ConnectionStringParser`1.TypeRegistry">
            <summary>
            Gets or sets <see cref="T:ExpressionEvaluator.TypeRegistry"/> instance used for evaluating
            encountered instances of the <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> on modeled
            connection string values that are marked with <typeparamref name="TParameterAttribute"/>.
            </summary>
            <remarks>
            Accessing this property will create a unique type registry for the current attribute type
            <typeparamref name="TParameterAttribute"/> which will initially contain the values found in
            the <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/> and can be augmented with
            custom types. Set to <c>null</c> to restore use of the default type registry.
            </remarks>
        </member>
        <member name="T:GSF.Configuration.ConnectionStringParser`2">
            <summary>
            Parses connection strings based on a settings object whose properties are annotated with
            <typeparamref name="TParameterAttribute"/> and <typeparamref name="TNestedSettingsAttribute"/>.
            </summary>
            <typeparam name="TParameterAttribute">
            The type of the attribute to search for when determining whether
            to serialize a property to the connection string.
            </typeparam>
            <typeparam name="TNestedSettingsAttribute">
            The type of the attribute to search for when determining which
            parameters are to be parsed recursively as connection strings.
            </typeparam>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser`2.ComposeConnectionString(System.Object)">
            <summary>
            Serializes the given <paramref name="settingsObject"/> into a connection string.
            </summary>
            <param name="settingsObject">The object whose properties are to be serialized.</param>
            <returns>A connection string containing the serialized properties.</returns>
        </member>
        <member name="M:GSF.Configuration.ConnectionStringParser`2.ParseConnectionString(System.String,System.Object)">
            <summary>
            Deserializes the connection string parameters into the given <paramref name="settingsObject"/>.
            </summary>
            <param name="connectionString">The connection string to be parsed.</param>
            <param name="settingsObject">The object whose properties are to be populated with values from the connection string.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="settingsObject"/> is null.</exception>
            <exception cref="T:System.ArgumentException">A required connection string parameter cannot be found in the connection string.</exception>
        </member>
        <member name="T:GSF.Configuration.EncryptSettingAttribute">
            <summary>
            Represents an attribute that determines if a property or field in a class derived from
            <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> or <see cref="T:GSF.Configuration.AppSettingsBase"/> should be encrypted
            when it is serialized to the configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.EncryptSettingAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.EncryptSettingAttribute"/>; defaults to <c><see cref="P:GSF.Configuration.EncryptSettingAttribute.Encrypt"/> = true</c>.
            </summary>
        </member>
        <member name="M:GSF.Configuration.EncryptSettingAttribute.#ctor(System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.EncryptSettingAttribute"/> with the specified <paramref name="encrypt"/> value.
            </summary>
            <param name="encrypt">
            Assigns flag that determines if the property or field this <see cref="T:GSF.Configuration.EncryptSettingAttribute"/>
            modifies should be encrypted when serialized to the configuration file.
            </param>
        </member>
        <member name="P:GSF.Configuration.EncryptSettingAttribute.Encrypt">
            <summary>
            Gets or sets flag that determines if the property or field this <see cref="T:GSF.Configuration.EncryptSettingAttribute"/>
            modifies should be encrypted when serialized to the configuration file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.EncryptSettingAttribute.PrivateKey">
            <summary>
            Gets or sets optional encryption key that will be used on a setting for added security.
            </summary>
            <remarks>
            This key is not the actual key used for encryption, it is used for hash lookup of the actual AES key.
            If this key is not specified, the property name will be used for the hash lookup.
            </remarks>
        </member>
        <member name="T:GSF.Configuration.IniSettingsBase">
            <summary>
            Represents the base class for application settings that are synchronized to an INI file.
            </summary>
            <remarks>
            <para>
            In order to make custom types serializable for the INI file, implement a <see cref="T:System.ComponentModel.TypeConverter"/> for the type.<br/>
            See <a href="http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx">MSDN</a> for details.
            </para>
            <example>
            Here is an example class derived from <see cref="T:GSF.Configuration.IniSettingsBase"/> that automatically
            serializes its fields and properties to the INI file.
            <code>
               public enum MyEnum
                {
                    One,
                    Two,
                    Three
                }
            
                public class MySettings : IniSettingsBase
                {
                    // Private property fields (private fields will not be serialized)
                    private double m_doubleVal;
            
                    // Public settings fields
                    public bool BoolVal = true;
                    public int IntVal = 1;
                    public float FloatVal = 3.14F;
                    public string StrVal = "This is a test...";
                    public MyEnum EnumVal = MyEnum.Three;
                    
                    [SettingName("UserOptions"), EncryptSetting()]
                    public string Password = "default";
            
                    // Mark this field to not be serialized to INI file...
                    [SerializeSetting(false)]
                    public decimal DecimalVal;
            
                    public MySettings()
                        : base(FilePath.GetAbsolutePath("MySettings.ini"), "GeneralSettings") {}
            
                    [Category("OtherSettings"), DefaultValue(1.159D)]
                    public double DoubleVal
                    {
                        get
                        {
                            return m_doubleVal;
                        }
                        set
                        {
                            m_doubleVal = value;
                        }
                    }
            
                    [SerializeSetting(false)]
                    public bool DontSerializeMe { get; set; }
                }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.#ctor(System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.IniSettingsBase"/> class for the application's INI file.
            </summary>
            <param name="iniFileName">Name of INI file to use for accessing settings.</param>
            <param name="sectionName">Name of default section to use to get and set settings from INI file.</param>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.#ctor(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.IniSettingsBase"/> class for the application's INI file.
            </summary>
            <param name="iniFileName">Name of INI file to use for accessing settings.</param>
            <param name="sectionName">Name of default section to use to get and set settings from INI file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for section names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the INI file.
            </param>
            <remarks>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="sectionName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the INI file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="sectionName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.#ctor(GSF.Interop.IniFile,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.IniSettingsBase"/> class for the application's INI file.
            </summary>
            <param name="iniFile">INI file to use for accessing settings.</param>
            <param name="sectionName">Name of default section to use to get and set settings from INI file.</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for section names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the INI file.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <remarks>
            <para>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="sectionName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the INI file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="sectionName"/> value.
            </para>
            <para>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constuctor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Configuration.IniSettingsBase.IniFile">
            <summary>
            Gets or sets reference to working INI file.
            </summary>
            <exception cref="T:System.NullReferenceException">value cannot be null.</exception>
        </member>
        <member name="P:GSF.Configuration.IniSettingsBase.SectionName">
            <summary>
            Gets or sets default name of section used to access settings in INI file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.IniSettingsBase.UseCategoryAttributes">
            <summary>
            Gets or sets value that determines whether a <see cref="T:System.ComponentModel.CategoryAttribute"/> applied to a field or property
            will be used for the section name.
            </summary>
            <remarks>
            If <see cref="P:GSF.Configuration.IniSettingsBase.UseCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <see cref="P:GSF.Configuration.IniSettingsBase.SectionName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the INI file in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <see cref="P:GSF.Configuration.IniSettingsBase.SectionName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.CreateSetting(System.String,System.String,System.String)">
            <summary>
            Create setting in INI file if it doesn't already exist.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.RetrieveSetting(System.String,System.String)">
            <summary>
            Retrieves setting from INI file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <returns>Setting value.</returns>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.StoreSetting(System.String,System.String,System.String)">
            <summary>
            Stores setting to INI file.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.PersistSettings">
            <summary>
            Persists any pending changes to INI file.
            This method is for internal use.
            </summary>
        </member>
        <member name="M:GSF.Configuration.IniSettingsBase.GetFieldSectionName(System.String)">
            <summary>
            Gets the section name to use for the specified field or property.
            </summary>
            <param name="name">Field or property name.</param>
            <returns><see cref="P:System.ComponentModel.CategoryAttribute.Category"/> applied to specified field or property; or <see cref="P:GSF.Configuration.IniSettingsBase.SectionName"/> if attribute does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
            <remarks>
            <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> will only be returned if <see cref="P:GSF.Configuration.IniSettingsBase.UseCategoryAttributes"/> is <c>true</c>; otherwise
            <see cref="P:GSF.Configuration.IniSettingsBase.SectionName"/> value will be returned.
            </remarks>
        </member>
        <member name="T:GSF.Configuration.IPersistSettings">
            <summary>
            Defines as interface that specifies that this object can persists settings to a config file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.IPersistSettings.PersistSettings">
            <summary>
            Determines whether the object settings are to be persisted to the config file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.IPersistSettings.SettingsCategory">
            <summary>
            Gets or sets the category name under which the object settings are persisted in the config file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.IPersistSettings.SaveSettings">
            <summary>
            Saves settings to the config file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.IPersistSettings.LoadSettings">
            <summary>
            Loads saved settings from the config file.
            </summary>
        </member>
        <member name="T:GSF.Configuration.NamespaceDoc">
            <summary>
            Contains classes, base classes and attributes related to simplifying access to configuration files including creating a categorized settings section.
            </summary>
        </member>
        <member name="T:GSF.Configuration.RegistrySettingsBase">
            <summary>
            Represents the base class for application settings that are synchronized to the registry.
            </summary>
            <remarks>
            <para>
            In order to make custom types serializable for the registry, implement a <see cref="T:System.ComponentModel.TypeConverter"/> for the type.<br/>
            See <a href="http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx">MSDN</a> for details.
            </para>
            <example>
            Here is an example class derived from <see cref="T:GSF.Configuration.RegistrySettingsBase"/> that automatically
            serializes its fields and properties to the registry.
            <code>
               public enum MyEnum
                {
                    One,
                    Two,
                    Three
                }
            
                public class MySettings : RegistrySettingsBase
                {
                    // Private property fields (private fields will not be serialized)
                    private double m_doubleVal;
            
                    // Public settings fields
                    public bool BoolVal = true;
                    public int IntVal = 1;
                    public float FloatVal = 3.14F;
                    public string StrVal = "This is a test...";
                    public MyEnum EnumVal = MyEnum.Three;
                    
                    [SettingName("UserOptions"), EncryptSetting()]
                    public string Password = "default";
            
                    // Mark this field to not be serialized to registry...
                    [SerializeSetting(false)]
                    public decimal DecimalVal;
            
                    public MySettings()
                        : base("HKEY_CURRENT_USER\\Software\\My Company\\My Product\\", "General Settings") {}
            
                    [Category("OtherSettings"), DefaultValue(1.159D)]
                    public double DoubleVal
                    {
                        get
                        {
                            return m_doubleVal;
                        }
                        set
                        {
                            m_doubleVal = value;
                        }
                    }
            
                    [SerializeSetting(false)]
                    public bool DontSerializeMe { get; set; }
                }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.#ctor(System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.RegistrySettingsBase"/> class for the application's registry based settings.
            </summary>
            <param name="rootPath">Defines the root registry path used to access settings in the registry (e.g., "HKEY_CURRENT_USER\\Software\\My Company\\My Product\\").</param>
            <param name="keyName">Defines the name of default key used to access settings in the registry (e.g., "General Settings").</param>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.#ctor(System.String,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.RegistrySettingsBase"/> class for the application's registry based settings.
            </summary>
            <param name="rootPath">Defines the root registry path used to access settings in the registry (e.g., "HKEY_CURRENT_USER\\Software\\My Company\\My Product\\").</param>
            <param name="keyName">Defines the name of default key used to access settings in the registry (e.g., "General Settings").</param>
            <param name="useCategoryAttributes">Determines if category attributes will be used for the registry key names.</param>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the registry.
            </param>
            <param name="initialize">Determines if <see cref="M:GSF.Configuration.SettingsBase.Initialize"/> method should be called from constructor.</param>
            <remarks>
            <para>
            If <paramref name="useCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <paramref name="keyName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the registry in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will serialized into the section labeled by the <paramref name="keyName"/> value.
            </para>
            <para>
            Note that some .NET languages (e.g., Visual Basic) will not initialize member elements before call to constuctor,
            in this case <paramref name="initialize"/> should be set to <c>false</c>, then the <see cref="M:GSF.Configuration.SettingsBase.Initialize"/>
            method should be called manually after all properties have been initialized. Alternately, consider using the
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> on the fields or properties and this will be used to initialize the values.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Configuration.RegistrySettingsBase.RootPath">
            <summary>
            Gets or sets root registry path used to access settings in the registry (e.g., "HKEY_CURRENT_USER\\Software\\My Company\\My Product\\").
            </summary>
        </member>
        <member name="P:GSF.Configuration.RegistrySettingsBase.KeyName">
            <summary>
            Gets or sets name of default key used to access settings in the registry (e.g., "General Settings").
            </summary>
        </member>
        <member name="P:GSF.Configuration.RegistrySettingsBase.UseCategoryAttributes">
            <summary>
            Gets or sets value that determines whether a <see cref="T:System.ComponentModel.CategoryAttribute"/> applied to a field or property
            will be used for the registry key names.
            </summary>
            <remarks>
            If <see cref="P:GSF.Configuration.RegistrySettingsBase.UseCategoryAttributes"/> is false, all settings will be placed in section labeled by the
            <see cref="P:GSF.Configuration.RegistrySettingsBase.KeyName"/> value; otherwise, if a <see cref="T:System.ComponentModel.CategoryAttribute"/> exists on a field or
            property then the member value will serialized into the registry in a section labeled the same
            as the <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> value and if the attribute doesn't exist the member value
            will stored in the registry key identified by the <see cref="P:GSF.Configuration.RegistrySettingsBase.KeyName"/> value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.CreateSetting(System.String,System.String,System.String)">
            <summary>
            Create setting in registry if it doesn't already exist.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.RetrieveSetting(System.String,System.String)">
            <summary>
            Retrieves setting from registry.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <returns>Setting value.</returns>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.StoreSetting(System.String,System.String,System.String)">
            <summary>
            Stores setting to registry.
            This method is for internal use.
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.PersistSettings">
            <summary>
            Persist any pending changes to registry.
            This method is for internal use.
            </summary>
        </member>
        <member name="M:GSF.Configuration.RegistrySettingsBase.GetFieldKeyName(System.String)">
            <summary>
            Gets the key name to use for storing the specified field or property in the registry.
            </summary>
            <param name="name">Field or property name.</param>
            <returns><see cref="P:System.ComponentModel.CategoryAttribute.Category"/> applied to specified field or property; or <see cref="P:GSF.Configuration.RegistrySettingsBase.KeyName"/> if attribute does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
            <remarks>
            <see cref="P:System.ComponentModel.CategoryAttribute.Category"/> will only be returned if <see cref="P:GSF.Configuration.RegistrySettingsBase.UseCategoryAttributes"/> is <c>true</c>; otherwise
            <see cref="P:GSF.Configuration.RegistrySettingsBase.KeyName"/> value will be returned.
            </remarks>
        </member>
        <member name="T:GSF.Configuration.SerializeSettingAttribute">
            <summary>
            Represents an attribute that determines if a property or field in a class derived from
            <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> or <see cref="T:GSF.Configuration.AppSettingsBase"/> should be serialized
            to the configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SerializeSettingAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.SerializeSettingAttribute"/>; defaults to <c><see cref="P:GSF.Configuration.SerializeSettingAttribute.Serialize"/> = true</c>.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SerializeSettingAttribute.#ctor(System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> with the specified <paramref name="serialize"/> value.
            </summary>
            <param name="serialize">
            Assigns flag that determines if the property or field this <see cref="T:GSF.Configuration.SerializeSettingAttribute"/>
            modifies should be serialized to the configuration file.
            </param>
        </member>
        <member name="P:GSF.Configuration.SerializeSettingAttribute.Serialize">
            <summary>
            Gets or sets flag that determines if the property or field this <see cref="T:GSF.Configuration.SerializeSettingAttribute"/>
            modifies should be serialized to the configuration file.
            </summary>
        </member>
        <member name="T:GSF.Configuration.SettingNameAttribute">
            <summary>
            Represents an attribute that defines the setting name of a property or field in a class derived from
            <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> or <see cref="T:GSF.Configuration.AppSettingsBase"/> when serializing the value
            to the configuration file.
            </summary>
            <remarks>
            This attribute allows consumers to override the name of the setting going into the configuration file,
            if the attribute doesn't exist the property or field name is used.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.SettingNameAttribute.#ctor(System.String[])">
            <summary>
            Creates a new <see cref="T:GSF.Configuration.SettingNameAttribute"/> with the specified <paramref name="names"/> value.
            </summary>
            <param name="names">Assigns name(s) used to serialize setting into config file.</param>
        </member>
        <member name="P:GSF.Configuration.SettingNameAttribute.Name">
            <summary>
            Gets the name used to serialize field or property into config file.
            </summary>
        </member>
        <member name="P:GSF.Configuration.SettingNameAttribute.Names">
            <summary>
            Gets the names used to serialize field or property into config file.
            </summary>
        </member>
        <member name="T:GSF.Configuration.SettingsBase">
            <summary>
            Represents the base class for application settings that are synchronized with its configuration file.
            </summary>
            <remarks>
            In order to make custom types serializable for the configuration file, implement a <see cref="T:System.ComponentModel.TypeConverter"/> for the type.<br/>
            See <a href="http://msdn.microsoft.com/en-us/library/ayybcxe5.aspx">MSDN</a> for details.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.#ctor(System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Configuration.SettingsBase"/> class for the application's configuration file.
            </summary>
            <param name="requireSerializeSettingAttribute">
            Assigns flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is required
            to exist before a field or property is serialized to the configuration file.
            </param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.SettingsBase.Culture">
            <summary>
            Gets or sets the <see cref="T:System.Globalization.CultureInfo"/> to use for the conversion of setting values to and from <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="P:GSF.Configuration.SettingsBase.MemberAccessBindingFlags">
            <summary>
            Gets or sets <see cref="T:System.Reflection.BindingFlags"/> used to access fields and properties of derived class.
            </summary>
            <remarks>
            Value defaults to <c><see cref="F:System.Reflection.BindingFlags.Public"/> | <see cref="F:System.Reflection.BindingFlags.Instance"/> | <see cref="F:System.Reflection.BindingFlags.DeclaredOnly"/></c>.
            </remarks>
        </member>
        <member name="P:GSF.Configuration.SettingsBase.RequireSerializeSettingAttribute">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.Configuration.SerializeSettingAttribute"/> is
            required to exist before a field or property is serialized to the configuration
            file; defaults to False.
            </summary>
        </member>
        <member name="P:GSF.Configuration.SettingsBase.Item(System.String)">
            <summary>
            Gets or sets the value of the specified field or property.
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Value of setting.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Configuration.CategorizedSettingsBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.CreateSetting(System.String,System.String,System.String)">
            <summary>
            Implementor should create setting in configuration file (or other location).
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.RetrieveSetting(System.String,System.String)">
            <summary>
            Implementor should retrieve setting from configuration file (or other location).
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <returns>Setting value.</returns>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.StoreSetting(System.String,System.String,System.String)">
            <summary>
            Implementor should store setting to configuration file (or other location).
            </summary>
            <param name="name">Field or property name, if useful (can be different from setting name).</param>
            <param name="setting">Setting name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.PersistSettings">
            <summary>
            Implementor should persist any pending changes to configuration file (or other location).
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetSettingName(System.String)">
            <summary>
            Gets setting name to use for specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns><see cref="P:GSF.Configuration.SettingNameAttribute.Name"/> applied to specified field or property; or <paramref name="name"/> if attribute does not exist.</returns>
            <remarks>
            Field or property name will be used for setting name unless user applied a <see cref="T:GSF.Configuration.SettingNameAttribute"/>
            on the field or property to override name used to serialize value in configuration file.
            </remarks>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetDefaultValue(System.String)">
            <summary>
            Gets the default value specified by <see cref="T:System.ComponentModel.DefaultValueAttribute"/>, if any, applied to the specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Default value applied to specified field or property; or null if one does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetEncryptStatus(System.String)">
            <summary>
            Gets the encryption status specified by <see cref="T:GSF.Configuration.EncryptSettingAttribute"/>, if any, applied to the specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Encryption status applied to specified field or property; or <c>false</c> if one does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetEncryptKey(System.String)">
            <summary>
            Gets the optional private encryption key specified by <see cref="T:GSF.Configuration.EncryptSettingAttribute"/>, if any, applied to the specified field or property. 
            </summary>
            <param name="name">Field or property name.</param>
            <returns>Encryption private key applied to specified field or property; or <c>null</c> if one does not exist.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="name"/> cannot be null or empty.</exception>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.CreateValue(System.String,System.Object)">
            <summary>
            Adds a setting to the application's configuration file, if it doesn't already exist.
            </summary>
            <param name="name">Field or property name.</param>
            <param name="value">Setting value.</param>
            <remarks>
            Use this function to ensure a setting exists, it will not override an existing value.
            </remarks>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.SetValue(System.String,System.Object)">
            <summary>
            Copies the given value into the specified application setting.
            </summary>
            <param name="name">Field or property name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetValue``1(System.String)">
            <summary>
            Gets the application's configuration file setting converted to the given type.
            </summary>
            <typeparam name="T">Type to use for setting conversion.</typeparam>
            <param name="name">Field or property name.</param>
            <returns>Value of specified configuration file setting converted to the given type.</returns>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetValue(System.String,System.Type)">
            <summary>
            Gets the application's configuration file setting converted to the given type.
            </summary>
            <param name="name">Field or property name.</param>
            <param name="type">Setting type.</param>
            <returns>Value of specified configuration file setting converted to the given type.</returns>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetValue``1(System.String,``0@)">
            <summary>
            Copies the specified application setting into the given value.
            </summary>
            <typeparam name="T">Type to use for setting conversion.</typeparam>
            <param name="name">Field or property name.</param>
            <param name="value">Setting value.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Initialize">
            <summary>
            Initializes configuration settings from derived class fields or properties.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.RestoreDefaultSettings">
            <summary>
            Restores the default settings of the configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.DeriveDefaultValue(System.String,System.Object)">
            <summary>
            Attempts to get best default value for given member.
            </summary>
            <param name="name">Field or property name.</param>
            <param name="value">Current field or property value.</param>
            <remarks>
            If <paramref name="value"/> is equal to its default(type) value, then any value derived from <see cref="T:System.ComponentModel.DefaultValueAttribute"/> will be used instead.
            </remarks>
            <returns>The object that is the best default value.</returns>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetEnumerator">
            <summary>
            Returns an enumerator based on <see cref="T:System.String"/> elements that iterates over the field and property names of this class
            that are targeted for serialization to the configuration file.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.</returns>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Load">
            <summary>
            Loads configuration file into setting fields.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.Save">
            <summary>
            Saves setting fields into configuration file.
            </summary>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.ExecuteActionForFields(System.Action{System.Reflection.FieldInfo})">
            <summary>
            Executes specified action over all public derived class member fields.
            </summary>
            <param name="fieldAction">Action to execute for all derived class member fields.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.ExecuteActionForProperties(System.Action{System.Reflection.PropertyInfo},System.Reflection.BindingFlags)">
            <summary>
            Executes specified action over all public derived class properties.
            </summary>
            <param name="propertyAction">Action to execute for all properties.</param>
            <param name="isGetOrSet"><see cref="F:System.Reflection.BindingFlags.GetProperty"/> or <see cref="F:System.Reflection.BindingFlags.SetProperty"/>.</param>
        </member>
        <member name="M:GSF.Configuration.SettingsBase.GetAttributeValue``2(System.String,``1,System.Func{``0,``1})">
            <summary>
            Attempts to find specified attribute and return specified value.
            </summary>
            <typeparam name="TAttribute">Type of <see cref="T:System.Attribute"/> to find.</typeparam>
            <typeparam name="TValue">Type of value attribute delegate returns.</typeparam>
            <param name="name">Name of field or property to search for attribute.</param>
            <param name="defaultValue">Default value to return if attribute doesn't exist.</param>
            <param name="attributeValue">Function delegate used to return desired attribute property.</param>
            <returns>Specified attribute value if it exists; otherwise default value.</returns>
        </member>
        <member name="T:GSF.Console.Arguments">
             <summary>
             Represents an ordered set of arguments along with optional arguments parsed from a command-line.
             </summary>
             <example>
             This example shows how to parse a command-line command that does not contain an executable name:
             <code>
             using System;
             using GSF;
             using GSF.Console;
            
             class Program
             {
                 static void Main()
                 {
                     Arguments args = new Arguments("Sample.txt -wrap=true");
                     string file = args["OrderedArg1"];
                     bool wrapText = args["wrap"].ParseBoolean();
                    
                     Console.WriteLine(string.Format("File: {0}", file));
                     Console.WriteLine(string.Format("Wrap text: {0}", wrapText));
                     Console.ReadLine();
                 }
             }
             </code>
             This example shows how to parse a command-line command that contains an executable name in it:
             <code>
             using System;
             using GSF.Console;
            
             class Program
             {
                 static void Main()
                 {
                     // Environment.CommandLine = @"""c:\program files\tva\theme application\app.exe"" Document1.dcx -theme=default"
                     Arguments args = new Arguments(Environment.CommandLine, true);
                     string doc = args["OrderedArg1"];
                     string theme = args["theme"];
                    
                     Console.WriteLine(string.Format("Document: {0}", doc));
                     Console.WriteLine(string.Format("Application theme: {0}", theme));
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="F:GSF.Console.Arguments.TokenRegex">
            <summary>
            Regular expression pattern for tokenizing a list of arguments.
            </summary>
        </member>
        <member name="F:GSF.Console.Arguments.DefaultOrderedArgID">
            <summary>
            Default value for <see cref="P:GSF.Console.Arguments.OrderedArgID"/>.
            </summary>
        </member>
        <member name="M:GSF.Console.Arguments.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Console.Arguments"/> class.
            </summary>
            <param name="commandLine">The command-line command to be parsed.</param>
        </member>
        <member name="M:GSF.Console.Arguments.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Console.Arguments"/> class.
            </summary>
            <param name="commandLine">The command-line command to be parsed.</param>
            <param name="skipFirstArgument">true if the first argument in the command-line command is to be skipped from being processed; otherwise false.</param>
        </member>
        <member name="M:GSF.Console.Arguments.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Console.Arguments"/> class.
            </summary>
            <param name="commandLine">The command-line command to be parsed.</param>
            <param name="orderedArgID">The prefix to be used in the identifier of ordered arguments.</param>
        </member>
        <member name="M:GSF.Console.Arguments.#ctor(System.String,System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Console.Arguments"/> class.
            </summary>
            <param name="commandLine">The command-line command to be parsed.</param>
            <param name="orderedArgID">The prefix to be used in the identifier of ordered arguments.</param>
            <param name="skipFirstArgument">true if the first argument in the command-line command is to be skipped from being processed; otherwise false.</param>
        </member>
        <member name="M:GSF.Console.Arguments.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a new <see cref="T:GSF.Console.Arguments"/> from serialization parameters.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with populated with data.</param>
            <param name="context">The source <see cref="T:System.Runtime.Serialization.StreamingContext"/> for this deserialization.</param>
        </member>
        <member name="P:GSF.Console.Arguments.Item(System.String)">
            <summary>
            Gets the value for the specified argument from the command-line command.
            </summary>
            <param name="argument">The argument whose value is to retrieved.</param>
            <returns>Value for the specified argument if found; otherwise null.</returns>
        </member>
        <member name="P:GSF.Console.Arguments.Count">
            <summary>
            Gets the total number of arguments (ordered and optional) present in the command-line command.
            </summary>
        </member>
        <member name="P:GSF.Console.Arguments.OrderedArgID">
            <summary>
            Gets the prefix text in the identifier of ordered arguments present in the command-line command.
            </summary>
        </member>
        <member name="P:GSF.Console.Arguments.OrderedArgCount">
            <summary>
            Gets the total number of ordered arguments in the command-line command.
            </summary>
        </member>
        <member name="P:GSF.Console.Arguments.OrderedArgs">
            <summary>
            Gets the ordered arguments as an array of strings.
            </summary>
        </member>
        <member name="P:GSF.Console.Arguments.ContainsHelpRequest">
            <summary>
            Gets a boolean value that indicates whether the command-line command contains request for displaying help.
            </summary>
        </member>
        <member name="P:GSF.Console.Arguments.InternalDictionary">
            <summary>
            Gets the dictionary containing all of the arguments present in the command-line command.
            </summary>
        </member>
        <member name="M:GSF.Console.Arguments.TryGetValue(System.String,System.String@)">
            <summary>
            Gets the value associated with the specified argument in the command-line command.
            </summary>
            <param name="argument">The argument whose value is to be retrieved.</param>
            <param name="value">Value associated with the specified argument if it exists in the command-line command, otherwise null.</param>
            <returns><c>true</c> if argument existed and was returned; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.Exists(System.String)">
            <summary>
            Gets a boolean value that indicates whether the specified argument is present in the command-line command.
            </summary>
            <param name="argument">The argument to be checked.</param>
            <returns>true if the argument exists in the command-line command; otherwise false.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.ToString">
            <summary>
            Gets a string representation of the <see cref="T:GSF.Console.Arguments"/> object.
            </summary>
            <returns>A string representation of the <see cref="T:GSF.Console.Arguments"/> object.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.GetEnumerator">
            <summary>
            Returns an <see cref="T:System.Collections.IEnumerator"/> for iterating through all the command-line command arguments.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> for the command-line command arguments.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an <see cref="T:System.Collections.IEnumerator"/> for iterating through all the command-line command arguments.
            </summary>
            <returns>An <see cref="T:System.Collections.IEnumerator"/> for the command-line command arguments.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with the data needed to serialize the target object.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
            <param name="context">The destination (see <see cref="T:System.Runtime.Serialization.StreamingContext"/>) for this serialization.</param>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
        </member>
        <member name="M:GSF.Console.Arguments.ParseCommand(System.String)">
            <summary>
            This function can be used to parse a single parameterized string and turn it into an array of parameters.
            </summary>
            <param name="command">String of parameters.</param>
            <returns>Array of parameters.</returns>
        </member>
        <member name="M:GSF.Console.Arguments.ToArgs(System.String)">
            <summary>
            Provides an array of arguments parsed from the given command
            using parsing rules similar to those used in POSIX environments.
            </summary>
            <param name="command">The command to be parsed.</param>
            <returns>An array of arguments.</returns>
            <remarks>
            <para>
            This function processes a set of command line arguments using a simple set of rules based on
            those used in popular POSIX command shells. It is important to note that these rules do not apply
            to instances of the <see cref="T:GSF.Console.Arguments"/> class or the <see cref="M:GSF.Console.Arguments.ParseCommand(System.String)"/> function.
            </para>
            
            <para>
            The motivation for this function was to provide a more user-friendly set of rules by which to
            specify command-line arguments. This is of course helpful for the user who has to type the
            command-line arguments by hand, but it also ends up being useful for systems that have to
            programmatically escape arguments to be consumed by other command-line applications (see
            the <see cref="M:GSF.Console.Arguments.Escape(System.String)"/> function).
            </para>
            
            <para>
            Also note that Windows has historically not provided a standard method for handling
            command-line arguments and that some of the command-line tools in Windows have rolled their
            own (potentially faulty) methods for doing so. More recently, Microsoft has provided the
            <see cref="M:System.Environment.GetCommandLineArgs"/> function for .NET applications to retrieve their
            own command line arguments using a standard format, but this function lacks the appropriate
            supporting functions for programmatically handling arbitrary command strings within an
            application. Furthermore, the rules for escaping spaces, quotes, and backslashes are very
            inconsistent, making it difficult to write a robust method for escaping individual arguments,
            let alone fully reproducing the same command parsing rules. For this reason, some programmers
            may be interested in using this method in conjunction with <see cref="P:System.Environment.CommandLine"/>
            for parsing their own command line arguments.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Console.Arguments.Escape(System.String)">
            <summary>
            Escapes a string so that it will be parsed as a
            single argument by the <see cref="M:GSF.Console.Arguments.ToArgs(System.String)"/> method.
            </summary>
            <param name="arg">The argument to be escaped.</param>
            <returns>The escaped argument.</returns>
        </member>
        <member name="T:GSF.Console.Command">
            <summary>
            Defines methods related to command line operations
            </summary>
        </member>
        <member name="M:GSF.Console.Command.CommandProcess.#ctor(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Console.Command.CommandProcess"/> instance.
            </summary>
            <param name="fileName">File name to execute.</param>
            <param name="arguments">Command line parameters, if any. Set to empty string for none.</param>
        </member>
        <member name="M:GSF.Console.Command.CommandProcess.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Console.Command.CommandProcess"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Console.Command.CommandProcess.StandardOutput">
            <summary>
            Gets any standard output from process after execution.
            </summary>
        </member>
        <member name="P:GSF.Console.Command.CommandProcess.StandardError">
            <summary>
            Gets any standard error from process after execution.
            </summary>
        </member>
        <member name="P:GSF.Console.Command.CommandProcess.ExitCode">
            <summary>
            Gets exit code assuming process
            </summary>
        </member>
        <member name="M:GSF.Console.Command.CommandProcess.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Console.Command.CommandProcess"/> object.
            </summary>
        </member>
        <member name="M:GSF.Console.Command.CommandProcess.Execute(System.Int32)">
            <summary>
            Attempts to execute process.
            </summary>
            <param name="timeout">Timeout, in milliseconds, to wait for command line operation to complete.</param>
            <returns><c>true</c> if process completed; otherwise, <c>false</c> if process timed-out.</returns>
        </member>
        <member name="P:GSF.Console.Command.CustomProcessStartInfo">
            <summary>
            Customizable Command.ProcessStartInfo to set prior to Creating or Executing the CommandProcess.
            The original Process.StartInfo defaults are used when Command.CustomProcessStartInfo is null.
            Command.CustomProcessStartInfo is null to be consistent with earlier implementations.
            Example to create a Command.CustomProcessStartInfo with Gemstone default StartInfo but without creating a Window:
            GSF.Core.Console.Command.CustomProcessStartInfo = new()
            {
                UseShellExecute = false,
                RedirectStandardError = true,
                RedirectStandardOutput = true,
                CreateNoWindow = true
            };
            </summary>
        </member>
        <member name="M:GSF.Console.Command.Execute(System.String,System.String,System.Int32)">
            <summary>
            Executes a command line operation and returns its standard output and exit code or throws an exception with the standard error.
            </summary>
            <param name="fileName">Command line file name to execute.</param>
            <param name="arguments">Command line arguments to use, if any.</param>
            <param name="timeout">Timeout, in milliseconds, to wait for command line operation to complete.</param>
            <returns>A <see cref="T:GSF.Console.CommandResponse"/> containing the standard output received from command and the exit code.</returns>
            <exception cref="T:GSF.Console.CommandException">
            Exception occurs when executed command process reports standard error output or process times-out.
            </exception>
        </member>
        <member name="M:GSF.Console.Command.Execute(System.String,System.String,System.String@,System.String@,System.Int32@)">
            <summary>
            Executes a command line operation and returns <c>true</c> if there was no standard error reported.
            </summary>
            <param name="fileName">Command line file name to execute.</param>
            <param name="arguments">Command line arguments to use, if any.</param>
            <param name="standardOutput">Any standard output reported by the command line operation.</param>
            <param name="standardError">Any standard error reported by the command line operation.</param>
            <param name="exitCode">Exit code of the process, assuming process successfully completed.</param>
            <returns><c>true</c> if there was no standard error reported; otherwise, <c>false</c>.</returns>
            <remarks>This function waits indefinitely for the command line operation to complete.</remarks>
        </member>
        <member name="M:GSF.Console.Command.Execute(System.String,System.String,System.String@,System.String@,System.Boolean@,System.Int32@,System.Int32)">
            <summary>
            Executes a command line operation and returns <c>true</c> if there was no standard error reported.
            </summary>
            <param name="fileName">Command line file name to execute.</param>
            <param name="arguments">Command line arguments to use, if any.</param>
            <param name="standardOutput">Any standard output reported by the command line operation.</param>
            <param name="standardError">Any standard error reported by the command line operation.</param>
            <param name="processCompleted">Flag that determines if process completed or timed-out. This is only relevant if <paramref name="timeout"/> is not -1.</param>
            <param name="exitCode">Exit code of the process, assuming process successfully completed.</param>
            <param name="timeout">Timeout, in milliseconds, to wait for command line operation to complete. Set to <see cref="F:System.Threading.Timeout.Infinite"/>, i.e., -1, for infinite wait.</param>
            <returns><c>true</c> if there was no standard error reported; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Console.Command.ShellEncode(System.String)">
            <summary>
            Shell encodes a command line parameter by converting "\" to "\\".
            </summary>
            <param name="parameter">Parameter to shell encode.</param>
            <returns>Shell encoded <paramref name="parameter"/>.</returns>
        </member>
        <member name="M:GSF.Console.Command.ShellDecode(System.String)">
            <summary>
            Decodes a command line parameter previously encoded by <see cref="M:GSF.Console.Command.ShellEncode(System.String)"/>.
            </summary>
            <param name="parameter">Parameter to decode.</param>
            <returns>Decoded <paramref name="parameter"/>.</returns>
        </member>
        <member name="T:GSF.Console.CommandException">
            <summary>
            Represents an exception that is thrown when <see cref="M:GSF.Console.Command.Execute(System.String,System.String,System.Int32)"/> reports standard error output.
            </summary>
        </member>
        <member name="M:GSF.Console.CommandException.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Console.CommandException"/>.
            </summary>
        </member>
        <member name="M:GSF.Console.CommandException.#ctor(System.String,System.Boolean,System.Int32,System.Exception)">
            <summary>
            Creates a new <see cref="T:GSF.Console.CommandException"/> with the specified parameters.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="processCompleted">Flag that determines if the source of command exception completed processing.</param>
            <param name="exitCode">Exit code of command process, assuming process successfully completed.</param>
            <param name="innerException">The exception that is the cause of the current exception, or a null reference if no inner exception is specified.</param>
        </member>
        <member name="P:GSF.Console.CommandException.ProcessCompleted">
            <summary>
            Gets flag that determines if the source of this command exception completed processing.
            </summary>
        </member>
        <member name="P:GSF.Console.CommandException.ExitCode">
            <summary>
            Gets exit code from command process, assuming successful process completion.
            </summary>
        </member>
        <member name="T:GSF.Console.CommandResponse">
            <summary>
            Represents a response that is returned from <see cref="M:GSF.Console.Command.Execute(System.String,System.String,System.Int32)"/> with standard output and exit code.
            </summary>
        </member>
        <member name="M:GSF.Console.CommandResponse.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Console.CommandResponse"/>.
            </summary>
            <param name="standardOutput">Standard output of command process.</param>
            <param name="exitCode">Exit code of command process.</param>
        </member>
        <member name="P:GSF.Console.CommandResponse.StandardOutput">
            <summary>
            Gets standard output reported by command process.
            </summary>
        </member>
        <member name="P:GSF.Console.CommandResponse.ExitCode">
            <summary>
            Gets exit code from command process.
            </summary>
        </member>
        <member name="T:GSF.Console.Events">
             <summary>
             Defines a set of consumable events that can be raised by a console application.
             </summary>
             <remarks>
             Note that no events will be raised by this class when running under Mono deployments, the class
             remains available in the Mono build as a stub to allow existing code to still compile and run.
             </remarks>
             <example>
             This example shows how to subscribe to console application events:
             <code>
             using System;
             using GSF.Console;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Subscribe to console events.
                     Events.CancelKeyPress += Events_CancelKeyPress;
                     Events.ConsoleClosing += Events_ConsoleClosing;
                     Events.EnableRaisingEvents();
                    
                     Console.ReadLine();
                 }
                
                 static void Events_CancelKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
                 {
                     // Abort processing.
                 }
                
                 static void Events_ConsoleClosing(object sender, System.ComponentModel.CancelEventArgs e)
                 {
                     // Put clean-up code.
                 }
             }
             </code>
             </example>
        </member>
        <member name="E:GSF.Console.Events.CancelKeyPress">
            <summary>
            Occurs when CTRL+C signal is received from keyboard input.
            </summary>
            <remarks>
            <see cref="M:GSF.Console.Events.EnableRaisingEvents"/> method must be called to enable event publication.
            </remarks>
        </member>
        <member name="E:GSF.Console.Events.BreakKeyPress">
            <summary>
            Occurs when CTRL+BREAK signal is received from keyboard input.
            </summary>
            <remarks>
            <see cref="M:GSF.Console.Events.EnableRaisingEvents"/> method must be called to enable event publication.
            </remarks>
        </member>
        <member name="E:GSF.Console.Events.ConsoleClosing">
            <summary>
            Occurs when the user closes the console application window.
            </summary>
            <remarks>
            <see cref="M:GSF.Console.Events.EnableRaisingEvents"/> method must be called to enable event publication.
            </remarks>
        </member>
        <member name="E:GSF.Console.Events.UserLoggingOff">
            <summary>
            Occurs when the user is logging off.
            </summary>
            <remarks>
            <see cref="M:GSF.Console.Events.EnableRaisingEvents"/> method must be called to enable event publication.
            </remarks>
        </member>
        <member name="E:GSF.Console.Events.SystemShutdown">
            <summary>
            Occurs when the system is shutting down.
            </summary>
            <remarks>
            <see cref="M:GSF.Console.Events.EnableRaisingEvents"/> method must be called to enable event publication.
            </remarks>
        </member>
        <member name="M:GSF.Console.Events.EnableRaisingEvents">
            <summary>
            Enables the raising of console application <see cref="T:GSF.Console.Events"/>. Prior to calling this method, handlers 
            must be defined for the <see cref="T:GSF.Console.Events"/> raised by a console application.
            </summary>
            <remarks>
            This method is currently ignored under Mono deployments.
            </remarks>
        </member>
        <member name="M:GSF.Console.Events.DisableRaisingEvents">
            <summary>
            Enables the raising of console application <see cref="T:GSF.Console.Events"/>. 
            </summary>
            <remarks>
            This method is currently ignored under Mono deployments.
            </remarks>
        </member>
        <member name="M:GSF.Console.Events.HandleConsoleWindowEvents(GSF.Console.Events.ConsoleEventType)">
            <summary>
            Delegate method that gets called when console application events occur.
            </summary>
        </member>
        <member name="T:GSF.Console.NamespaceDoc">
            <summary>
            Contains classes used for parsing command line parameters and managing console applications.
            </summary>
        </member>
        <member name="T:GSF.Data.DatabaseType">
            <summary>
            Specifies the database type underlying an <see cref="T:GSF.Data.AdoDataConnection"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.Access">
            <summary>
            Underlying ADO database type is Microsoft Access.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.SQLServer">
            <summary>
            Underlying ADO database type is SQL Server.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.MySQL">
            <summary>
            Underlying ADO database type is MySQL.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.Oracle">
            <summary>
            Underlying ADO database type is Oracle.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.SQLite">
            <summary>
            Underlying ADO database type is SQLite.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.PostgreSQL">
            <summary>
            Underlying ADO database type is PostgreSQL.
            </summary>
        </member>
        <member name="F:GSF.Data.DatabaseType.Other">
            <summary>
            Underlying ADO database type is unknown.
            </summary>
        </member>
        <member name="T:GSF.Data.AdoDataConnection">
            <summary>
            Creates a new <see cref="T:System.Data.IDbConnection"/> from any specified or configured ADO.NET data source.
            </summary>
            <remarks>
            Example connection and data provider strings:
            <list type="table">
                <listheader>
                    <term>Database type</term>
                    <description>Example connection string / data provider string</description>
                </listheader>
                <item>
                    <term>SQL Server</term>
                    <description>
                    ConnectionString = "Data Source=serverName; Initial Catalog=databaseName; User ID=userName; Password=password"<br/>
                    DataProviderString = "AssemblyName={System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}; ConnectionType=System.Data.SqlClient.SqlConnection; AdapterType=System.Data.SqlClient.SqlDataAdapter"
                    </description>
                </item>
                <item>
                    <term>Oracle</term>
                    <description>
                    ConnectionString = "Data Source=tnsName; User ID=schemaUserName; Password=schemaPassword"<br/>
                    DataProviderString = "AssemblyName={Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342}; ConnectionType=Oracle.DataAccess.Client.OracleConnection; AdapterType=Oracle.DataAccess.Client.OracleDataAdapter"
                    </description>
                </item>
                <item>
                    <term>MySQL</term>
                    <description>
                    ConnectionString = "Server=serverName; Database=databaseName; Uid=root; Pwd=password; allow user variables = true"<br/>
                    DataProviderString = "AssemblyName={MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d}; ConnectionType=MySql.Data.MySqlClient.MySqlConnection; AdapterType=MySql.Data.MySqlClient.MySqlDataAdapter"
                    </description>
                </item>
                <item>
                    <term>SQLite</term>
                    <description>
                    ConnectionString = "Data Source=databaseName.db; Version=3; Foreign Keys=True; FailIfMissing=True"<br/>
                    DataProviderString = "AssemblyName={System.Data.SQLite, Version=1.0.109.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139}; ConnectionType=System.Data.SQLite.SQLiteConnection; AdapterType=System.Data.SQLite.SQLiteDataAdapter"
                    </description>
                </item>
                <item>
                    <term>SQLite (Mono native driver)</term>
                    <description>
                    ConnectionString = "Data Source=./databaseName.db; Version=3; Foreign Keys=True; FailIfMissing=True"<br/>
                    DataProviderString = "AssemblyName={Mono.Data.Sqlite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756}; ConnectionType=Mono.Data.Sqlite.SqliteConnection; AdapterType=Mono.Data.Sqlite.SqliteDataAdapter"
                    </description>
                </item>
                <item>
                    <term>Access / OleDB</term>
                    <description>
                    ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=databaseName.mdb"<br/>
                    DataProviderString = "AssemblyName={System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}; ConnectionType=System.Data.OleDb.OleDbConnection; AdapterType=System.Data.OleDb.OleDbDataAdapter"
                    </description>
                </item>
                <item>
                    <term>ODBC Connection</term>
                    <description>
                    ConnectionString = "Driver={SQL Server Native Client 10.0}; Server=serverName; Database=databaseName; Uid=userName; Pwd=password"<br/>
                    DataProviderString = "AssemblyName={System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}; ConnectionType=System.Data.Odbc.OdbcConnection; AdapterType=System.Data.Odbc.OdbcDataAdapter"
                    </description>
                </item>
            </list>
            Example configuration file that defines connection settings:
            <code>
            <![CDATA[
            <?xml version="1.0" encoding="utf-8"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="GSF.Configuration.CategorizedSettingsSection, GSF.Core" />
              </configSections>
              <categorizedSettings>
                <systemSettings>
                  <add name="ConnectionString" value="Data Source=localhost\SQLEXPRESS; Initial Catalog=MyDatabase; Integrated Security=SSPI" description="ADO database connection string" encrypted="false" />
                  <add name="DataProviderString" value="AssemblyName={System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}; ConnectionType=System.Data.SqlClient.SqlConnection; AdapterType=System.Data.SqlClient.SqlDataAdapter" description="ADO database provider string" encrypted="false" />
                </systemSettings>
              </categorizedSettings>
              <startup>
                <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
              </startup>
            </configuration>
            ]]>
            </code>
            </remarks>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.#ctor(System.String)">
            <summary>
            Creates and opens a new <see cref="T:GSF.Data.AdoDataConnection"/> based on connection settings in configuration file.
            </summary>
            <param name="settingsCategory">Settings category to use for connection settings.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.#ctor(System.String,System.String)">
            <summary>
            Creates and opens a new <see cref="T:GSF.Data.AdoDataConnection"/> from specified <paramref name="connectionString"/> and <paramref name="dataProviderString"/>.
            </summary>
            <param name="connectionString">Database specific ADO connection string.</param>
            <param name="dataProviderString">Key/value pairs that define which ADO assembly and types to load.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.#ctor(System.String,System.Type,System.Type)">
            <summary>
            Creates and opens a new <see cref="T:GSF.Data.AdoDataConnection"/> from specified <paramref name="connectionString"/>,
            <paramref name="connectionType"/>, and <paramref name="adapterType"/>.
            </summary>
            <param name="connectionString">Database specific ADO connection string.</param>
            <param name="connectionType">The ADO type used to establish the database connection.</param>
            <param name="adapterType">The ADO type used to load data into <see cref="T:System.Data.DataTable"/>s.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.#ctor(System.Data.IDbConnection,System.Type,System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Data.AdoDataConnection"/> from specified <paramref name="connection"/>
            and <paramref name="adapterType"/>.
            </summary>
            <param name="connection">The database connection.</param>
            <param name="adapterType">The ADO type used to load data into <see cref="T:System.Data.DataTable"/>s.</param>
            <param name="disposeConnection">True if the database connection should be closed when the <see cref="T:GSF.Data.AdoDataConnection"/> is disposed; false otherwise.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Data.AdoDataConnection"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.Connection">
            <summary>
            Gets an open <see cref="T:System.Data.IDbConnection"/> to configured ADO.NET data source.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.AdapterType">
            <summary>
            Gets the type of data adapter for configured ADO.NET data source.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.DatabaseType">
            <summary>
            Gets or sets the type of the database underlying the <see cref="T:GSF.Data.AdoDataConnection"/>.
            </summary>
            <remarks>
            This value is automatically assigned based on the adapter type specified in the data provider string, however,
            if the database type cannot be determined it will be set to <see cref="F:GSF.Data.DatabaseType.Other"/>. In this
            case, if you know the behavior of your custom ADO database connection matches that of another defined database
            type, you can manually assign the database type to allow for database interaction interoperability.
            </remarks>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.DefaultTimeout">
            <summary>
            Gets or sets default timeout for <see cref="T:GSF.Data.AdoDataConnection"/> data operations.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.DefaultStringType">
            <summary>
            Gets or sets a value to indicate whether queries should default to ANSI strings instead of Unicode strings.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.UtcNow">
            <summary>
            Gets current UTC date-time in an implementation that is proper for the connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.DefaultIsolationLevel">
            <summary>
            Gets the default <see cref="T:System.Data.IsolationLevel"/> for the connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsJetEngine">
            <summary>
            Gets a value to indicate whether source database is Microsoft Access.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsSQLServer">
            <summary>
            Gets a value to indicate whether source database is Microsoft SQL Server.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsMySQL">
            <summary>
            Gets a value to indicate whether source database is MySQL.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsOracle">
            <summary>
            Gets a value to indicate whether source database is Oracle.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsSqlite">
            <summary>
            Gets a value to indicate whether source database is SQLite.
            </summary>
        </member>
        <member name="P:GSF.Data.AdoDataConnection.IsPostgreSQL">
            <summary>
            Gets a value to indicate whether source database is PostgreSQL.
            </summary>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScript(System.String)">
            <summary>
            Executes the given SQL script using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>.
            </summary>
            <param name="scriptPath">The path to the SQL script.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScript(System.IO.TextReader)">
            <summary>
            Executes the given SQL script using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>.
            </summary>
            <param name="scriptReader">The reader used to extract SQL statements to be executed.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteNonQuery(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the number of rows affected.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteNonQuery(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the number of rows affected.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteReader(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteReader(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteReader(System.Data.CommandBehavior,System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar``1(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <typeparamref name="T"/>.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar``1(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <typeparamref name="T"/>.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar``1(``0,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <typeparamref name="T"/>, substituting <paramref name="defaultValue"/>
            if <see cref="F:System.DBNull.Value"/> is retrieved.
            </summary>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar``1(``0,System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <typeparamref name="T"/>, substituting <paramref name="defaultValue"/>
            if <see cref="F:System.DBNull.Value"/> is retrieved.
            </summary>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <paramref name="returnType"/>.
            </summary>
            <param name="returnType">The type to which the result of the query should be converted.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.Type,System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <paramref name="returnType"/>.
            </summary>
            <param name="returnType">The type to which the result of the query should be converted.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.Type,System.Object,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <paramref name="returnType"/>, substituting <paramref name="defaultValue"/>
            if <see cref="F:System.DBNull.Value"/> is retrieved.
            </summary>
            <param name="returnType">The type to which the result of the query should be converted.</param>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.Type,System.Object,System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set as type <paramref name="returnType"/>, substituting <paramref name="defaultValue"/>
            if <see cref="F:System.DBNull.Value"/> is retrieved.
            </summary>
            <param name="returnType">The type to which the result of the query should be converted.</param>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ExecuteScalar(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveRow(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveRow(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.TryRetrieveRow(System.String,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.TryRetrieveRow(System.Int32,System.String,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveData(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains at least one table.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveData(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains at least one table.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveDataSet(System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.RetrieveDataSet(System.Int32,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="P:GSF.Data.AdoDataConnection.Connection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="sqlFormat">Format string for the SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Data.AdoDataConnection"/> object.
            </summary>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Data.AdoDataConnection"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.EscapeIdentifier(System.String,System.Boolean)">
            <summary>
            Escapes an identifier, e.g., a table or field name, using the common delimiter for the connected <see cref="T:GSF.Data.AdoDataConnection"/>
            database type or the standard ANSI escaping delimiter, i.e., double-quotes, based on the <paramref name="useAnsiQuotes"/> flag.
            </summary>
            <param name="identifier">Field name to escape.</param>
            <param name="useAnsiQuotes">Force use of double-quote for identifier delimiter, per SQL-99 standard, regardless of database type.</param>
            <returns>Escaped identifier name.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="identifier"/> value cannot be null, empty or whitespace.</exception>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Bool(System.Boolean)">
            <summary>
            Returns proper <see cref="T:System.Boolean"/> implementation for connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.
            </summary>
            <param name="value"><see cref="T:System.Boolean"/> to format per database type.</param>
            <returns>Proper <see cref="T:System.Boolean"/> implementation for connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Guid(System.Guid)">
            <summary>
            Returns proper <see cref="T:System.Guid"/> implementation for connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.
            </summary>
            <param name="value"><see cref="T:System.Guid"/> to format per database type.</param>
            <returns>Proper <see cref="T:System.Guid"/> implementation for connected <see cref="T:GSF.Data.AdoDataConnection"/> database type.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ANSI(System.String)">
            <summary>
            Instructs <see cref="T:GSF.Data.AdoDataConnection"/> to treat this string as an ANSI string in parameterized queries.
            </summary>
            <param name="value">The string to be treated as ANSI.</param>
            <returns>The value to be used in parameterized queries.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Unicode(System.String)">
            <summary>
            Instructs <see cref="T:GSF.Data.AdoDataConnection"/> to treat this string as a Unicode string in parameterized queries.
            </summary>
            <param name="value">The string to be treated as Unicode.</param>
            <returns>The value to be used in parameterized queries.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.Guid(System.Data.DataRow,System.String)">
            <summary>
            Retrieves <see cref="T:System.Guid"/> from a <see cref="T:System.Data.DataRow"/> field based on database type.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> from which value needs to be retrieved.</param>
            <param name="fieldName">Name of the field which contains <see cref="T:System.Guid"/>.</param>
            <returns><see cref="T:System.Guid"/>.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ParameterizedQueryString(System.String,System.String[])">
            <summary>
            Creates a parameterized query string for the underlying database type based on the given format string and parameter names.
            </summary>
            <param name="format">A composite format string.</param>
            <param name="parameterNames">A string array that contains zero or more parameter names to format.</param>
            <returns>A parameterized query string based on the given format and parameter names.</returns>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ReloadConfigurationSettings">
            <summary>
            Forces a reload of cached configuration connection settings.
            </summary>
        </member>
        <member name="M:GSF.Data.AdoDataConnection.ToDataProviderString(System.Type,System.Type)">
            <summary>
            Generates a data provider string for the given connection type and adapter type.
            </summary>
            <param name="connectionType">The type used to establish a connection to the database.</param>
            <param name="adapterType">The type used to load data from the database into a data table.</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.IBulkDataOperation">
            <summary>
            This is the common interface for any bulk data operation
            </summary>
        </member>
        <member name="E:GSF.Data.IBulkDataOperation.TableProgress">
            <summary>
            Get the status information of table progress
            </summary>
        </member>
        <member name="E:GSF.Data.IBulkDataOperation.RowProgress">
            <summary>
            Get the information of Row progress of table
            </summary>
        </member>
        <member name="E:GSF.Data.IBulkDataOperation.OverallProgress">
            <summary>
            Get the information of overall progress of Migration utility
            </summary>
        </member>
        <member name="E:GSF.Data.IBulkDataOperation.SQLFailure">
            <summary>
            Get the information of exception while processing SQL statement
            </summary>
        </member>
        <member name="P:GSF.Data.IBulkDataOperation.WorkTables">
            <summary>
            Get the work table information
            </summary>
        </member>
        <member name="P:GSF.Data.IBulkDataOperation.FromSchema">
            <summary>
            From schema information
            </summary>
        </member>
        <member name="P:GSF.Data.IBulkDataOperation.ToSchema">
            <summary>
            To Schema information
            </summary>
        </member>
        <member name="P:GSF.Data.IBulkDataOperation.RowReportInterval">
            <summary>
            Get the row report interval information
            </summary>
        </member>
        <member name="P:GSF.Data.IBulkDataOperation.Timeout">
            <summary>
            Get or set time out for SQL statement
            </summary>
        </member>
        <member name="M:GSF.Data.IBulkDataOperation.Execute">
            <summary>
            Execute a method of object
            </summary>
        </member>
        <member name="M:GSF.Data.IBulkDataOperation.Close">
            <summary>
            Close the object connection
            </summary>
        </member>
        <member name="T:GSF.Data.BulkDataOperationBase">
            <summary>
            This class defines a common set of functionality that any bulk data operation implementation can use 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_fromSchema">
            <summary>
            From schema.
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_toSchema">
            <summary>
            To schema.
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_overallProgress">
            <summary>
            Implementer can use this variable to track overall progress 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_overallTotal">
            <summary>
            This is initialized to the overall total number of records to be processed 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_rowReportInterval">
            <summary>
            Defines interval for reporting row progress 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_timeout">
            <summary>
            Timeout value for SQL operation 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_tableCollection">
            <summary>
            Tables value 
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_useFromSchemaRI">
            <summary>
            Flag to check referential integrity
            </summary>
        </member>
        <member name="F:GSF.Data.BulkDataOperationBase.m_excludedTables">
            <summary>
            List of exclude tables
            </summary>
        </member>
        <member name="E:GSF.Data.BulkDataOperationBase.TableProgress">
            <summary>
            Get the status information of table progress
            </summary>
        </member>
        <member name="E:GSF.Data.BulkDataOperationBase.RowProgress">
            <summary>
            Get the information of Row progress of table
            </summary>
        </member>
        <member name="E:GSF.Data.BulkDataOperationBase.OverallProgress">
            <summary>
            Get the information of overall progress of Migration utility
            </summary>
        </member>
        <member name="E:GSF.Data.BulkDataOperationBase.SQLFailure">
            <summary>
            Get the information of exception while processing SQL statement
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.#ctor">
            <summary>
            Default Constructor
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.#ctor(System.String,System.String)">
            <summary>
            Constructor with parameters
            </summary>
            <param name="fromConnectString">Source database connection string</param>
            <param name="toConnectString">Destination database connection string</param>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.#ctor(GSF.Data.Schema,GSF.Data.Schema)">
            <summary>
            Constructor with parameters
            </summary>
            <param name="fromSchema">Source Schema</param>
            <param name="toSchema">Destination Schema</param>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.FromSchema">
            <summary>
            Get or set Source schema
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.ToSchema">
            <summary>
            Get or set destination schema
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.RowReportInterval">
            <summary>
            Get or set number of rows to process before raising progress events
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.Timeout">
            <summary>
            Get or set Maximum number of seconds to wait when processing a SQL command before timing out.
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.UseFromSchemaReferentialIntegrity">
            <summary>
            Get or set - use referential integrity information from source/to destination database during data processing
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.WorkTables">
            <summary>
            These are the tables that were found in both source and destination to be used for data operation...
            </summary>
        </member>
        <member name="P:GSF.Data.BulkDataOperationBase.ExcludedTables">
            <summary>
            Get list of tables to be excluded during data processing
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.Dispose(System.Boolean)">
            <summary>
            Dispose
            </summary>
            <param name="disposing"></param>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.Close">
            <summary>
            Close source and destination schema
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.System#IDisposable#Dispose">
            <summary>
            Dispose
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.Analyze">
            <summary>
            Analyze data schema before data processing
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.Execute">
            <summary>
            Executes bulk data operation.
            </summary>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.OnTableProgress(System.String,System.Boolean,System.Int32,System.Int32)">
            <summary>
            Raise an event if table change in data processing
            </summary>
            <param name="TableName">Table name in data processing</param>
            <param name="Executed">Status of data processing on table</param>
            <param name="CurrentTable">current table index in data processing</param>
            <param name="TotalTables">total table count in data processing</param>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.OnRowProgress(System.String,System.Int32,System.Int32)">
            <summary>
            Raise an event while change row in data processing
            </summary>
            <param name="TableName">Table name in data processing</param>
            <param name="CurrentRow">current row index in data processing</param>
            <param name="TotalRows">total rows needs to be process in data processing</param>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.OnOverallProgress(System.Int32,System.Int32)">
            <summary>
            Raise an event to show overall progress of data processing
            </summary>
            <param name="Current">Current index of tables in data processing</param>
            <param name="Total">Total table count in data processing</param>
        </member>
        <member name="M:GSF.Data.BulkDataOperationBase.OnSQLFailure(System.String,System.Exception)">
            <summary>
            Raise an event if SQL statement fail
            </summary>
            <param name="SQL">SQL statement information</param>
            <param name="ex">exception information</param>
        </member>
        <member name="T:GSF.Data.DataDeleter">
            <summary>
            This class defines a common set of functionality that any data operation implementation can use 
            </summary>
        </member>
        <member name="E:GSF.Data.DataDeleter.Disposed">
            <summary>
            Disposed event.
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataDeleter"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.#ctor(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataDeleter"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.#ctor(GSF.Data.Schema,GSF.Data.Schema)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataDeleter"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.Close">
            <summary>
            Close
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.Execute">
            <summary>
            Execute this <see cref="T:GSF.Data.DataDeleter"/>
            </summary>
        </member>
        <member name="M:GSF.Data.DataDeleter.ExecuteDeletes(GSF.Data.Table,GSF.Data.Table)">
            <summary>
            Execute a command to delete data from source to destination table
            </summary>
            <param name="fromTable">Source table</param>
            <param name="toTable">Destination table</param>
        </member>
        <member name="T:GSF.Data.DataExtensions">
            <summary>
            Defines extension functions related to database and SQL interaction.
            </summary>
        </member>
        <member name="F:GSF.Data.DataExtensions.DefaultTimeoutDuration">
            <summary>
            The default timeout duration used for executing SQL statements when timeout duration is not specified.
            </summary>
        </member>
        <member name="M:GSF.Data.DataExtensions.SQLEncode(System.String,GSF.Data.DatabaseType)">
            <summary>
            Performs SQL encoding on given SQL string.
            </summary>
            <param name="sql">The string on which SQL encoding is to be performed.</param>
            <param name="databaseType">Database type for the SQL encoding.</param>
            <returns>The SQL encoded string.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery``1(``0,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The number of rows affected.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery``1(``0,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The number of rows affected.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.IDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.IDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteNonQuery(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the number of rows affected.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader``1(``0,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader``1(``0,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader``1(``0,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and builds a <see cref="T:System.Data.OleDb.OleDbDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.OleDb.OleDbDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.OleDb.OleDbConnection,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and builds a <see cref="T:System.Data.OleDb.OleDbDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.OleDb.OleDbDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and builds a <see cref="T:System.Data.Odbc.OdbcDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.Odbc.OdbcDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.Odbc.OdbcConnection,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and builds a <see cref="T:System.Data.Odbc.OdbcDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.Odbc.OdbcDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and builds a <see cref="T:System.Data.SqlClient.SqlDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.SqlClient.SqlConnection,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and builds a <see cref="T:System.Data.SqlClient.SqlDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.IDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.IDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.IDbCommand,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and builds a <see cref="T:System.Data.IDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.IDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and builds a <see cref="T:System.Data.OleDb.OleDbDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.OleDb.OleDbDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.OleDb.OleDbCommand,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and builds a <see cref="T:System.Data.OleDb.OleDbDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.OleDb.OleDbDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and builds a <see cref="T:System.Data.Odbc.OdbcDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.Odbc.OdbcDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.Odbc.OdbcCommand,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and builds a <see cref="T:System.Data.Odbc.OdbcDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.Odbc.OdbcDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and builds a <see cref="T:System.Data.SqlClient.SqlDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteReader(System.Data.SqlClient.SqlCommand,System.String,System.Data.CommandBehavior,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and builds a <see cref="T:System.Data.SqlClient.SqlDataReader"/>.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="behavior">One of the <see cref="T:System.Data.CommandBehavior"/> values.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar``1(``0,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar``1(``0,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
            <typeparam name="TConnection">Type of <see cref="T:System.Data.IDbConnection"/> to use.</typeparam>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.IDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.IDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteScalar(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the value in the first column 
            of the first row in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>Value in the first column of the first row in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteTSQLScript(System.Data.IDbConnection,System.String)">
            <summary>
            Executes the statements defined in the given TSQL script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptPath">The path to the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteTSQLScript(System.Data.IDbConnection,System.IO.TextReader)">
            <summary>
            Executes the statements defined in the given TSQL script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptReader">The reader used to extract statements from the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteMySQLScript(System.Data.IDbConnection,System.String)">
            <summary>
            Executes the statements defined in the given MySQL script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptPath">The path to the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteMySQLScript(System.Data.IDbConnection,System.IO.TextReader)">
            <summary>
            Executes the statements defined in the given MySQL script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptReader">The reader used to extract statements from the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteOracleScript(System.Data.IDbConnection,System.String)">
            <summary>
            Executes the statements defined in the given Oracle database script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptPath">The path to the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.ExecuteOracleScript(System.Data.IDbConnection,System.IO.TextReader)">
            <summary>
            Executes the statements defined in the given Oracle database script.
            </summary>
            <param name="connection">The connection used to execute SQL statements.</param>
            <param name="scriptReader">The reader used to extract statements from the SQL script.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbConnection,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcConnection,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlConnection,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.IDbConnection,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.IDbConnection,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.TryRetrieveRow(System.Data.IDbConnection,System.Type,System.String,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="T:System.Data.IDbConnection"/>.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.TryRetrieveRow(System.Data.IDbConnection,System.Type,System.String,System.Int32,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="T:System.Data.IDbConnection"/>.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbCommand,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcCommand,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlCommand,System.String,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.IDbCommand,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveRow(System.Data.IDbCommand,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the first <see cref="T:System.Data.DataRow"/> in the result set.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.TryRetrieveRow(System.Data.IDbCommand,System.Type,System.String,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="T:System.Data.IDbCommand"/>.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.TryRetrieveRow(System.Data.IDbCommand,System.Type,System.String,System.Int32,System.Data.DataRow@,System.Object[])">
            <summary>
            Tries to retrieve the first <see cref="T:System.Data.DataRow"/> in the result set of the SQL statement using <see cref="T:System.Data.IDbCommand"/>.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="row">The first <see cref="T:System.Data.DataRow"/> in the result set, or <c>null</c>.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>The first <see cref="T:System.Data.DataRow"/> in the result set.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.IDbConnection,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.IDbConnection,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.IDbCommand,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveData(System.Data.IDbCommand,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the first <see cref="T:System.Data.DataTable"/> 
            of result set, if the result set contains multiple tables.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlConnection,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple table depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlConnection,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlConnection,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.IDbConnection,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.IDbConnection,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbConnection"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="connection">The <see cref="T:System.Data.IDbConnection"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.OleDb.OleDbCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.OleDb.OleDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.Odbc.OdbcCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.Odbc.OdbcCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlCommand,System.String)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple table depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlCommand,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.SqlClient.SqlCommand,System.String,System.Int32,System.Int32,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.SqlClient.SqlCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> to use for executing the SQL statement.</param>
            <param name="startRow">The zero-based record number to start with.</param>
            <param name="maxRows">The maximum number of records to retrieve.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression -or- the parameter values to be passed into stored procedure being executed.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.IDbCommand,System.Type,System.String,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.RetrieveDataSet(System.Data.IDbCommand,System.Type,System.String,System.Int32,System.Object[])">
            <summary>
            Executes the SQL statement using <see cref="T:System.Data.IDbCommand"/>, and returns the <see cref="T:System.Data.DataSet"/> that 
            may contain multiple tables, depending on the SQL statement.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> to use for executing the SQL statement.</param>
            <param name="dataAdapterType">The <see cref="T:System.Type"/> of data adapter to use to retrieve data.</param>
            <param name="sql">The SQL statement to be executed.</param>
            <param name="timeout">The time in seconds to wait for the SQL statement to execute.</param>
            <param name="parameters">The parameter values to be used to fill in <see cref="T:System.Data.IDbDataParameter"/> parameters identified by '@' prefix in <paramref name="sql"/> expression.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertField``1(System.Data.DataRow,System.String)">
            <summary>
            Provides strongly-typed access to each of the column values in the specified row.
            Automatically applies type conversion to the column values.
            </summary>
            <typeparam name="T">A generic parameter that specifies the return type of the column.</typeparam>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <returns>The value, of type T, of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertField``1(System.Data.DataRow,System.String,``0)">
            <summary>
            Provides strongly-typed access to each of the column values in the specified row.
            Automatically applies type conversion to the column values.
            </summary>
            <typeparam name="T">A generic parameter that specifies the return type of the column.</typeparam>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <returns>The value, of type T, of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertField(System.Data.DataRow,System.String,System.Type)">
            <summary>
            Automatically applies type conversion to column values when only a type is available.
            </summary>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <param name="type">Type of the column.</param>
            <returns>The value of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertField(System.Data.DataRow,System.String,System.Type,System.Object)">
            <summary>
            Automatically applies type conversion to column values when only a type is available.
            </summary>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <param name="type">Type of the column.</param>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved.</param>
            <returns>The value of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertNullableField``1(System.Data.DataRow,System.String)">
            <summary>
            Provides strongly-typed access to each of the column values in the specified row.
            Automatically applies type conversion to the column values.
            </summary>
            <typeparam name="T">A generic parameter that specifies the return type of the column.</typeparam>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <returns>The value, of type T, of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ConvertGuidField(System.Data.DataRow,System.String,System.Nullable{System.Guid})">
            <summary>
            Parses a Guid from a database field that is a Guid type or a string representing a Guid.
            </summary>
            <param name="row">The input <see cref="T:System.Data.DataRow"/>, which acts as the this instance for the extension method.</param>
            <param name="field">The name of the column to return the value of.</param>
            <param name="defaultValue">The value to be substituted if <see cref="F:System.DBNull.Value"/> is retrieved; defaults to <see cref="F:System.Guid.Empty"/>.</param>
            <returns>The <see cref="T:System.Guid"/> value of the <see cref="T:System.Data.DataColumn"/> specified by <paramref name="field"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.UpdateData(System.Data.OleDb.OleDbConnection,System.Data.DataTable,System.String)">
            <summary>
            Updates the underlying data of the <see cref="T:System.Data.DataTable"/> using <see cref="T:System.Data.OleDb.OleDbConnection"/>, and
            returns the number of rows successfully updated.
            </summary>
            <param name="sourceData">The <see cref="T:System.Data.DataTable"/> used to update the underlying data source.</param>
            <param name="sourceSql">The SQL statement used initially to populate the <see cref="T:System.Data.DataTable"/>.</param>
            <param name="connection">The <see cref="T:System.Data.OleDb.OleDbConnection"/> to use for updating the underlying data source.</param>
            <returns>The number of rows successfully updated from the <see cref="T:System.Data.DataTable"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.UpdateData(System.Data.Odbc.OdbcConnection,System.Data.DataTable,System.String)">
            <summary>
            Updates the underlying data of the <see cref="T:System.Data.DataTable"/> using <see cref="T:System.Data.Odbc.OdbcConnection"/>, and
            returns the number of rows successfully updated.
            </summary>
            <param name="sourceData">The <see cref="T:System.Data.DataTable"/> used to update the underlying data source.</param>
            <param name="sourceSql">The SQL statement used initially to populate the <see cref="T:System.Data.DataTable"/>.</param>
            <param name="connection">The <see cref="T:System.Data.Odbc.OdbcConnection"/> to use for updating the underlying data source.</param>
            <returns>The number of rows successfully updated from the <see cref="T:System.Data.DataTable"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.UpdateData(System.Data.SqlClient.SqlConnection,System.Data.DataTable,System.String)">
            <summary>
            Updates the underlying data of the <see cref="T:System.Data.DataTable"/> using <see cref="T:System.Data.SqlClient.SqlConnection"/>, and
            returns the number of rows successfully updated.
            </summary>
            <param name="sourceData">The <see cref="T:System.Data.DataTable"/> used to update the underlying data source.</param>
            <param name="sourceSql">The SQL statement used initially to populate the <see cref="T:System.Data.DataTable"/>.</param>
            <param name="connection">The <see cref="T:System.Data.SqlClient.SqlConnection"/> to use for updating the underlying data source.</param>
            <returns>The number of rows successfully updated from the <see cref="T:System.Data.DataTable"/>.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.OleDb.OleDbCommand,System.Object,System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.OleDb.OleDbCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> whose parameters are to be populated.</param>
            <param name="parameter1">The first parameter value to populate the <see cref="T:System.Data.OleDb.OleDbCommand"/> parameters with.</param>
            <param name="parameters">The remaining parameter values to populate the <see cref="T:System.Data.OleDb.OleDbCommand"/> parameters with.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.OleDb.OleDbCommand,System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.OleDb.OleDbCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.OleDb.OleDbCommand"/> whose parameters are to be populated.</param>
            <param name="parameters">The parameter values to populate the <see cref="T:System.Data.OleDb.OleDbCommand"/> parameters with.</param>
            <remarks>
            Automatic parameter derivation is currently not support for OleDB connections under Mono deployments.
            </remarks>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.Odbc.OdbcCommand,System.Object,System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.Odbc.OdbcCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> whose parameters are to be populated.</param>
            <param name="parameter1">The first parameter value to populate the <see cref="T:System.Data.Odbc.OdbcCommand"/> parameters with.</param>
            <param name="parameters">The remaining parameter values to populate the <see cref="T:System.Data.Odbc.OdbcCommand"/> parameters with.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.Odbc.OdbcCommand,System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.Odbc.OdbcCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.Odbc.OdbcCommand"/> whose parameters are to be populated.</param>
            <param name="parameters">The parameter values to populate the <see cref="T:System.Data.Odbc.OdbcCommand"/> parameters with.</param>
            <remarks>
            Automatic parameter derivation is currently not support for ODBC connections under Mono deployments.
            </remarks>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.SqlClient.SqlCommand,System.Object,System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.SqlClient.SqlCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> whose parameters are to be populated.</param>
            <param name="parameter1">The first parameter value to populate the <see cref="T:System.Data.SqlClient.SqlCommand"/> parameters with.</param>
            <param name="parameters">The remaining parameter values to populate the <see cref="T:System.Data.SqlClient.SqlCommand"/> parameters with.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters(System.Data.SqlClient.SqlCommand,System.Object[])">
            <summary>
             Takes the <see cref="T:System.Data.SqlClient.SqlCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.SqlClient.SqlCommand"/> whose parameters are to be populated.</param>
            <param name="parameters">The parameter values to populate the <see cref="T:System.Data.SqlClient.SqlCommand"/> parameters with.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.PopulateParameters``1(``0,System.Action{``0},System.Object[])">
            <summary>
            Takes the <see cref="T:System.Data.IDbCommand"/> object and populates it with the given parameters.
            </summary>
            <param name="command">The <see cref="T:System.Data.IDbCommand"/> whose parameters are to be populated.</param>
            <param name="deriveParameters">The DeriveParameters() implementation of the <paramref name="command"/> to use to populate parameters.</param>
            <param name="values">The parameter values to populate the <see cref="T:System.Data.IDbCommand"/> parameters with.</param>
            <typeparam name="TDbCommand">Then <see cref="T:System.Data.IDbCommand"/> type to be used.</typeparam>
            <exception cref="T:System.ArgumentException">
            Number of <see cref="T:System.Data.IDbDataParameter"/> arguments in <see cref="P:System.Data.IDbCommand.CommandText"/> of this <paramref name="command"/>, identified by '@', do not match number of supplied parameter <paramref name="values"/> -or-
            You have supplied more <paramref name="values"/> than parameters listed for the stored procedure.
            </exception>
        </member>
        <member name="M:GSF.Data.DataExtensions.AddParameterWithValue(System.Data.IDbCommand,System.String,System.Object,System.Data.ParameterDirection)">
            <summary>
            Creates and adds an <see cref="T:System.Data.IDbDataParameter"/> to the <see cref="T:System.Data.IDbCommand"/> object with the specified <paramref name="value"/>.
            </summary>
            <param name="command"><see cref="T:System.Data.IDbCommand"/> to which parameter needs to be added.</param>
            <param name="name">Name of the <see cref="T:System.Data.IDbDataParameter"/> to be added.</param>
            <param name="value">Value of the <see cref="T:System.Data.IDbDataParameter"/> to be added.</param>
            <param name="direction"><see cref="T:System.Data.ParameterDirection"/> for <see cref="T:System.Data.IDbDataParameter"/>.</param>
        </member>
        <member name="M:GSF.Data.DataExtensions.AddParametersWithValues(System.Data.IDbCommand,System.String,System.Object[])">
            <summary>
            Creates and adds a new <see cref="T:System.Data.IDbDataParameter"/> for each of the specified <paramref name="values"/> to the <see cref="T:System.Data.IDbCommand"/> object.
            </summary>
            <param name="command"><see cref="T:System.Data.IDbCommand"/> to which parameters need to be added.</param>
            <param name="sql">The SQL statement.</param>
            <param name="values">The values for the parameters of the <see cref="T:System.Data.IDbCommand"/> in the order that they appear in the SQL statement.</param>
            <remarks>
            <para>
            This method does very rudimentary parsing of the SQL statement so parameter names should start with the '@'
            character and should be surrounded by either spaces, parentheses, or commas.
            </para>
            <para>
            Do not use the same parameter name twice in the expression so that each parameter, identified by '@', will
            have a corresponding value.
            </para>
            </remarks>
            <returns>The fully populated parameterized command.</returns>
            <exception cref="T:System.ArgumentException">Number of <see cref="T:System.Data.IDbDataParameter"/> arguments in <paramref name="sql"/> expression, identified by '@', do not match number of supplied parameter <paramref name="values"/>.</exception>
        </member>
        <member name="M:GSF.Data.DataExtensions.CreateParameterizedCommand(System.Data.IDbConnection,System.String,System.Object[])">
            <summary>
            Creates and returns a parameterized <see cref="T:System.Data.IDbCommand"/>. Parameter names are embedded in the SQL statement
            passed as a parameter to this method.
            </summary>
            <param name="connection">The database connection.</param>
            <param name="sql">The SQL statement.</param>
            <param name="values">The values for the parameters of the <see cref="T:System.Data.IDbCommand"/> in the order that they appear in the SQL statement.</param>
            <remarks>
            <para>
            This method does very rudimentary parsing of the SQL statement so parameter names should start with the '@'
            character and should be surrounded by either spaces, parentheses, or commas.
            </para>
            <para>
            Do not use the same parameter name twice in the expression so that each parameter, identified by '@', will
            have a corresponding value.
            </para>
            </remarks>
            <returns>The fully populated parameterized command.</returns>
            <exception cref="T:System.ArgumentException">Number of <see cref="T:System.Data.IDbDataParameter"/> arguments in <paramref name="sql"/> expression, identified by '@', do not match number of supplied parameter <paramref name="values"/>.</exception>
        </member>
        <member name="M:GSF.Data.DataExtensions.ToDataTable(System.String,System.String,System.Boolean)">
            <summary>
            Converts a delimited string into a <see cref="T:System.Data.DataTable"/>.
            </summary>
            <param name="delimitedData">The delimited text to be converted to <see cref="T:System.Data.DataTable"/>.</param>
            <param name="delimiter">The character(s) used for delimiting the text.</param>
            <param name="header">true, if the delimited text contains header information; otherwise, false.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> object.</returns>
        </member>
        <member name="M:GSF.Data.DataExtensions.ToDelimitedString(System.Data.DataTable,System.String,System.Boolean,System.Boolean)">
            <summary>
            Converts the <see cref="T:System.Data.DataTable"/> to a multi-line delimited string (e.g., CSV export).
            </summary>
            <param name="table">The <see cref="T:System.Data.DataTable"/> whose data is to be converted to delimited text.</param>
            <param name="delimiter">The character(s) to be used for delimiting the text.</param>
            <param name="quoted">true, if text is to be surrounded by quotes; otherwise, false.</param>
            <param name="header">true, if the delimited text should have header information.</param>
            <returns>A string of delimited text.</returns>
        </member>
        <member name="T:GSF.Data.DataInserter">
            <summary>
            This class defines a common set of functionality that any data operation implementation can use 
            </summary>
        </member>
        <member name="E:GSF.Data.DataInserter.TableCleared">
            <summary>
            Table cleared event.
            </summary>
        </member>
        <member name="E:GSF.Data.DataInserter.BulkInsertExecuting">
            <summary>
            Bulk-insert executing event.
            </summary>
        </member>
        <member name="E:GSF.Data.DataInserter.BulkInsertCompleted">
            <summary>
            Bulk-insert completed event.
            </summary>
        </member>
        <member name="E:GSF.Data.DataInserter.BulkInsertException">
            <summary>
            Bulk-insert exception event.
            </summary>
        </member>
        <member name="E:GSF.Data.DataInserter.Disposed">
            <summary>
            Disposed event.
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataInserter"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.#ctor(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataInserter"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.#ctor(GSF.Data.Schema,GSF.Data.Schema)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataInserter"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.AttemptBulkInsert">
            <summary>
            Get or set to attempt use of a BULK INSERT on a destination SQL Server connection
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.ForceBulkInsert">
            <summary>
            Get or set to force use of a BULK INSERT on a destination SQL Server connection regardless of whether or not it looks
            like the referential integrity definition supports this.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.BulkInsertSettings">
            <summary>
            This setting defines the SQL Server BULK INSERT settings that will be used if a BULK INSERT is performed. 
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.BulkInsertEncoding">
            <summary>
            This setting defines the text encoding that will be used when writing a temporary BULK INSERT file that will be needed
            if a SQL Server BULK INSERT is performed - make sure the encoding output matches the specified CODEPAGE value in the
            BulkInsertSettings property.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.BulkInsertFilePath">
            <summary>
            This setting defines the file path that will be used when writing a temporary BULK INSERT file that will be needed if a
            SQL Server BULK INSERT is performed - make sure the destination SQL Server has rights to this path.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.DelimiterReplacement">
            <summary>
            This specifies the string that will be substituted for the field terminator or row terminator if encountered in a database
            value while creating a BULK INSERT file.  The field terminator and row terminator values are defined in the BulkInsertSettings
            property specified by the FIELDTERMINATOR and ROWTERMINATOR keywords respectively.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.ClearDestinationTables">
            <summary>
            Set to True to clear all data from the destination database before processing data inserts.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.AttemptTruncateTable">
            <summary>
            Set to True to attempt use of a TRUNCATE TABLE on a destination SQL Server connection if ClearDestinationTables is True
            and it looks like the referential integrity definition supports this.  Your SQL Server connection will need the rights
            to perform this operation.
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.ForceTruncateTable">
            <summary>
            Set to True to force use of a TRUNCATE TABLE on a destination SQL Server connection if ClearDestinationTables is True regardless
            of whether or not it looks like the referential integrity definition supports this.  Your SQL Server connection will need the
            rights to perform this operation
            </summary>
        </member>
        <member name="P:GSF.Data.DataInserter.PreserveAutoIncValues">
            <summary>
            Set to True to preserve primary key value data to the destination database before processing data inserts.
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.Close">
            <summary>
            Close
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.Execute">
            <summary>
            Execute this <see cref="T:GSF.Data.DataInserter"/>
            </summary>
        </member>
        <member name="M:GSF.Data.DataInserter.ClearTable(GSF.Data.Table)">
            <summary>
            Clear destination schema table
            </summary>
            <param name="table">schema table</param>
        </member>
        <member name="M:GSF.Data.DataInserter.ExecuteInserts(GSF.Data.Table,GSF.Data.Table)">
            <summary>
            Execute a command to insert or update data from source to destination table
            </summary>
            <param name="fromTable">Source table</param>
            <param name="toTable">Destination table</param>
        </member>
        <member name="M:GSF.Data.DataInserter.DereferenceValue(GSF.Data.Table,System.String,System.Object,System.Collections.ArrayList)">
            <summary>
            Lookup referential value for source table and update their information
            </summary>
            <param name="sourceTable"></param>
            <param name="fieldName"></param>
            <param name="value"></param>
            <param name="fieldStack"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.DataSetEqualityComparer">
            <summary>
            Equality comparer for <see cref="T:System.Data.DataSet"/> objects.
            </summary>
        </member>
        <member name="M:GSF.Data.DataSetEqualityComparer.Equals(System.Data.DataSet,System.Data.DataSet)">
            <summary>
            Determines whether the specified objects are equal.
            </summary>
            <returns>
            true if the specified objects are equal; otherwise, false.
            </returns>
            <param name="x">The first object of type <see cref="T:System.Data.DataSet"/> to compare.</param>
            <param name="y">The second object of type <see cref="T:System.Data.DataSet"/> to compare.</param>
        </member>
        <member name="M:GSF.Data.DataSetEqualityComparer.GetHashCode(System.Data.DataSet)">
            <summary>
            Returns a hash code for the specified object.
            </summary>
            <returns>
            A hash code for the specified object.
            </returns>
            <param name="obj">The <see cref="T:System.Data.DataSet"/> for which a hash code is to be returned.</param>
            <exception cref="T:System.ArgumentNullException">The type of <paramref name="obj"/> is a reference type and <paramref name="obj"/> is null.</exception>
        </member>
        <member name="F:GSF.Data.DataSetEqualityComparer.Default">
            <summary>
            Default instance of the <see cref="T:GSF.Data.DataSetEqualityComparer"/> class.
            </summary>
        </member>
        <member name="T:GSF.Data.DataType">
            <summary>
            Data types available to a <see cref="T:System.Data.DataSet"/> object.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Boolean">
            <summary>
            Boolean data type, <see cref="F:GSF.Data.DataType.Boolean"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Byte">
            <summary>
            Unsigned 8-bit byte data type, <see cref="F:GSF.Data.DataType.Byte"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Char">
            <summary>
            16-bit character data type, <see cref="F:GSF.Data.DataType.Char"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.DateTime">
            <summary>
            Date/time data type, <see cref="F:GSF.Data.DataType.DateTime"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Decimal">
            <summary>
            Decimal data type, <see cref="F:GSF.Data.DataType.Decimal"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Double">
            <summary>
            64-bit double precision floating point numeric data type, <see cref="F:GSF.Data.DataType.Double"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Guid">
            <summary>
            Unsigned 128-bit Guid integer data type, <see cref="F:GSF.Data.DataType.Guid"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Int16">
            <summary>
            Signed 16-bit integer data type, <see cref="F:GSF.Data.DataType.Int16"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Int32">
            <summary>
            Signed 32-bit integer data type, <see cref="F:GSF.Data.DataType.Int32"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Int64">
            <summary>
            Signed 64-bit integer data type, <see cref="F:GSF.Data.DataType.Int64"/>
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.SByte">
            <summary>
            Signed byte data type, <see cref="F:GSF.Data.DataType.SByte"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Single">
            <summary>
            32-bit single precision floating point numeric data type, <see cref="F:GSF.Data.DataType.Single"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.String">
            <summary>
            Character array data type, <see cref="F:GSF.Data.DataType.String"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.TimeSpan">
            <summary>
            Time-span data type, <see cref="F:GSF.Data.DataType.TimeSpan"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.UInt16">
            <summary>
            Unsigned 16-bit integer data type, <see cref="F:GSF.Data.DataType.UInt16"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.UInt32">
            <summary>
            Unsigned 32-bit integer data type, <see cref="F:GSF.Data.DataType.UInt32"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.UInt64">
            <summary>
            Unsigned 64-bit integer data type, <see cref="F:GSF.Data.DataType.UInt64"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Blob">
            <summary>
            Unsigned byte array data type.
            </summary>
        </member>
        <member name="F:GSF.Data.DataType.Object">
            <summary>
            User defined/other data type.
            </summary>
        </member>
        <member name="T:GSF.Data.DataSetExtensions">
            <summary>
            Defines extension functions related to <see cref="T:System.Data.DataSet"/> instances.
            </summary>
        </member>
        <member name="M:GSF.Data.DataSetExtensions.SerializeToStream(System.Data.DataSet,System.IO.Stream,System.Boolean,System.Boolean)">
            <summary>
            Serializes a <see cref="T:System.Data.DataSet"/> to a destination <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="source"><see cref="T:System.Data.DataSet"/> to serialize.</param>
            <param name="destination"><see cref="T:System.IO.Stream"/> to serialize <see cref="T:System.Data.DataSet"/> on.</param>
            <param name="assumeStringForUnknownTypes">Flag to determine if unknown column types should be serialized as strings.</param>
            <param name="useNullableDataTypes">Flag to determine if extra information should be serialized to support null values.</param>
        </member>
        <member name="M:GSF.Data.DataSetExtensions.DeserializeToDataSet(System.IO.Stream)">
            <summary>
            Deserializes a <see cref="T:System.Data.DataSet"/> from a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="source"><see cref="T:System.IO.Stream"/> to deserialize <see cref="T:System.Data.DataSet"/> from.</param>
        </member>
        <member name="M:GSF.Data.DataSetExtensions.GetDataType(System.Type,System.Boolean)">
            <summary>
            Attempts to derive <see cref="T:GSF.Data.DataType"/> based on object <see cref="T:System.Type"/>.
            </summary>
            <param name="objectType"><see cref="T:System.Type"/> of object to test.</param>
            <returns>Derived <see cref="T:GSF.Data.DataType"/> based on object <see cref="T:System.Type"/> if matched; otherwise <see cref="F:GSF.Data.DataType.Object"/>.</returns>
            <param name="assumeStringForUnknownTypes">Flag to determine if unknown column types should be serialized as strings.</param>
        </member>
        <member name="M:GSF.Data.DataSetExtensions.DeriveColumnType(GSF.Data.DataType)">
            <summary>
            Gets column object <see cref="T:System.Type"/> from given <see cref="T:GSF.Data.DataType"/>.
            </summary>
            <param name="dataType"><see cref="T:GSF.Data.DataType"/> to derive object <see cref="T:System.Type"/> from.</param>
            <returns>Object <see cref="T:System.Type"/> derived from given <see cref="T:GSF.Data.DataType"/>.</returns>
        </member>
        <member name="T:GSF.Data.DataUpdater">
            <summary>
            This class defines a common set of functionality that any data operation implementation can use 
            </summary>
        </member>
        <member name="E:GSF.Data.DataUpdater.Disposed">
            <summary>
            Disposed event.
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataUpdater"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.#ctor(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataUpdater"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.#ctor(GSF.Data.Schema,GSF.Data.Schema)">
            <summary>
            Creates a new <see cref="T:GSF.Data.DataUpdater"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.Close">
            <summary>
            Close
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.Execute">
            <summary>
            Execute this <see cref="T:GSF.Data.DataUpdater"/>
            </summary>
        </member>
        <member name="M:GSF.Data.DataUpdater.ExecuteUpdates(GSF.Data.Table,GSF.Data.Table)">
            <summary>
            Execute a command to update data from source to destination table
            </summary>
            <param name="fromTable">Source table</param>
            <param name="toTable">Destination table</param>
        </member>
        <member name="T:GSF.Data.Model.AdditionalFieldSearchAttribute">
            <summary>
            Defines an attribute that will allow setting a custom view a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AdditionalFieldSearchAttribute.Condition">
            <summary>
            Gets the condition used to reduce the number of rows.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AdditionalFieldSearchAttribute.AdditionalFieldTable">
            <summary>
            Gets Table name to use for AdditionalFields.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AdditionalFieldSearchAttribute.PrimaryKeyField">
            <summary>
            Gets Field name to use for matching <see cref="T:GSF.Data.Model.PrimaryKeyAttribute"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AdditionalFieldSearchAttribute.ValueField">
            <summary>
            Gets Field name to use for matching Values.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AdditionalFieldSearchAttribute.FieldKeyField">
            <summary>
            Gets Field name to use for matching FieldNames.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.AdditionalFieldSearchAttribute.#ctor(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.AdditionalFieldSearchAttribute"/>.
            </summary>
            <param name="condition">Condition to be true for any row in the additionalFields Table to be used.</param>
            <param name="additionalFieldsTable">SQL Table containing additional Fields.</param>
            <param name="primaryKeyCollumn">SQL Column that will be matched to <see cref="T:GSF.Data.Model.PrimaryKeyAttribute"/>.</param>
            <param name="valueCollumn">SQL Column that will be matched to the Value.</param>
            <param name="fieldKeyCollumn">SQL Column that will be matched to the Field name.</param>
        </member>
        <member name="M:GSF.Data.Model.AdditionalFieldSearchAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.AdditionalFieldSearchAttribute"/>.
            </summary>
            <param name="condition">Condition to be true for any row in the additionalFields Table to be used.</param>
            <remarks>
            This Assumes the following View is set up:
            CREATE VIEW AdditionalFieldSearch AS 
            SELECT
               AdditionalFieldValue.ParentTableID,
               AdditionalFieldValue.Value,
               AdditionalField.ParentTable,
               AdditionalField.FieldName,
               FROM
                   AdditionalField LEFT JOIN
                   AdditionalFieldValue ON AdditionalFieldValue.AdditionalFieldID = AdditionalField.ID
            GO
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.AllowSearchAttribute">
            <summary>
            Defines an attribute that will allow search functionality for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AllowSearchAttribute.AllowSearch">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.AllowSearchAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.AllowSearchAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.StatementTypes">
            <summary>
            Statement types for amendment application.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.Select">
            <summary>
            Apply amendment to all SELECT statements, i.e., <see cref="F:GSF.Data.Model.StatementTypes.SelectCount"/>, <see cref="F:GSF.Data.Model.StatementTypes.SelectSet"/> and <see cref="F:GSF.Data.Model.StatementTypes.SelectRow"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.SelectCount">
            <summary>
            Apply amendment to SELECT COUNT statements.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.SelectSet">
            <summary>
            Apply amendment to SELECT statements that can return multiple rows of data.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.SelectRow">
            <summary>
            Apply amendment to SELECT statements that will return a single row of data.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.Insert">
            <summary>
            Apply amendment to INSERT statements.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.Update">
            <summary>
            Apply amendment to UPDATE statements.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.StatementTypes.Delete">
            <summary>
            Apply amendment to DELETE statements.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.TargetExpression">
            <summary>
            Target expressions for amendment application.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.TargetExpression.TableName">
            <summary>
            Apply amendment to table name.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.TargetExpression.FieldList">
            <summary>
            Apply amendment to full field list.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.AffixPosition">
            <summary>
            Locations for target expression amendment application.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.AffixPosition.Prefix">
            <summary>
            Apply amendment to beginning of <see cref="T:GSF.Data.Model.TargetExpression"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.AffixPosition.Suffix">
            <summary>
            Apply amendment to ending of <see cref="T:GSF.Data.Model.TargetExpression"/>.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.AmendExpressionAttribute">
            <summary>
            Defines an attribute that will request amendment of a table name or field list with the specified text.
            </summary>
            <remarks>
            <para>
            As an example, this can be used to add table hints, e.g., <c>WITH (NOLOCK)</c>, for select statements in
            SQL Server.
            </para>
            <para>
            Applying the <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> to a modeled table with no specified database type parameter
            will be meant to infer that the amendment be used for all database types. Using a specific database type as a
            parameter to the attribute, e.g., <c>[AmendExpression("WITH (NOLOCK)", DatabaseType.SQLServer)]</c>, means the
            amendment text will only be applied to the specific database - however, the attribute allows multiple instances
            on the same identifier so you could specify that amendment application only be applied to two databases:
            <code>
            [AmendExpression("AS T1", DatabaseType.SQLServer), AmendExpression("AS T1", DatabaseType.MySQL)]
            </code>
            Other parameters exist to fully customize target expression, set affix position and specify statement types:
            <code>
            [AmendExpression("TOP 200",
                TargetExpression = TargetExpression.FieldList,
                AffixPosition = AffixPosition.Prefix,
                StatementTypes = StatementTypes.SelectSet)]
            </code>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.AmendExpressionAttribute.AmendmentText">
            <summary>
            Gets or sets amendment text to be applied.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AmendExpressionAttribute.TargetExpression">
            <summary>
            Gets or sets target expression for amendment application; defaults to <see cref="F:GSF.Data.Model.TargetExpression.TableName"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AmendExpressionAttribute.AffixPosition">
            <summary>
            Gets or sets location for amendment application; defaults to <see cref="F:GSF.Data.Model.AffixPosition.Suffix"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AmendExpressionAttribute.StatementTypes">
            <summary>
            Gets or sets statement types for amendment application; defaults to <see cref="F:GSF.Data.Model.StatementTypes.Select"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.AmendExpressionAttribute.TargetDatabaseType">
            <summary>
            Gets target <see cref="T:GSF.Data.DatabaseType"/> for amendment application.
            </summary>
            <remarks>
            When value is <c>null</c>, amendment text will be applied to all database types.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.AmendExpressionAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> that will request application of <paramref name="amendmentText"/>
            for any database.
            </summary>
            <param name="amendmentText">Amendment text to apply.</param>
        </member>
        <member name="M:GSF.Data.Model.AmendExpressionAttribute.#ctor(System.String,GSF.Data.DatabaseType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> that will request application of <paramref name="amendmentText"/>
            for the specified <paramref name="targetDatabaseType"/>.
            </summary>
            <param name="amendmentText">Amendment text to apply.</param>
            <param name="targetDatabaseType">Target <see cref="T:GSF.Data.DatabaseType"/> for amendment text.</param>
        </member>
        <member name="T:GSF.Data.Model.ClaimAttribute">
            <summary>
            Defines an attribute that will allow setting claims for function roles for a modeled table in GSF.Web.Model.ModelController.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ClaimAttribute.Claim">
            <summary>
            Gets Claim to use for property.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ClaimAttribute.Verb">
            <summary>
            Get Verb to use for property
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ClaimAttribute.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ClaimAttribute"/> for use in GSF.Web.Model.ModelController"/>.
            </summary>
            <param name="verb">HTTP verbs of GET, POST, PATCH, or DELETE.</param>
            <param name="type">Type of claim, use specific <see cref="T:System.Security.Claims.ClaimTypes"/> .</param>
            <param name="value">value of the claim.</param>
        </member>
        <member name="T:GSF.Data.Model.ConfigFileTableNamePrefixAttribute">
            <summary>
            Defines an attribute that will allow a general table name prefix for a modeled table instead of using
            the config file setting TableNamePrefix.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ConfigFileTableNamePrefixAttribute.Prefix">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ConfigFileTableNamePrefixAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ConfigFileTableNamePrefixAttribute"/>.
            </summary>
            
        </member>
        <member name="M:GSF.Data.Model.ConfigFileTableNamePrefixAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ConfigFileTableNamePrefixAttribute"/> from the systemSettings section and <paramref name="setting"/> used in the config file.
            </summary>
            
            <param name="setting">Name the setting to use out of the config file systemSettings section.</param>
        </member>
        <member name="M:GSF.Data.Model.ConfigFileTableNamePrefixAttribute.#ctor(System.String,System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ConfigFileTableNamePrefixAttribute"/> from the <paramref name="settingsCategory"/> and <paramref name="setting"/> used in the config file.
            </summary>
            
            <param name="settingsCategory">Name the settings category to use out of the config file systemSettings section.</param>
            <param name="setting">Name the setting to use out of the config file systemSettings section.</param>
        </member>
        <member name="T:GSF.Data.Model.CSVExcludeFieldAttribute">
            <summary>
            Defines an attribute that will exclude a field from a CSV export.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.CustomViewAttribute">
            <summary>
            Defines an attribute that will allow setting a custom view a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.CustomViewAttribute.CustomView">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.CustomViewAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.CustomViewAttribute"/>.
            </summary>
            <param name="customView">SQL to generate custom view.</param>
        </member>
        <member name="T:GSF.Data.Model.DefaultSortOrderAttribute">
            <summary>
            Defines an attribute that will allow a default sort field in the model
            </summary>
        </member>
        <member name="P:GSF.Data.Model.DefaultSortOrderAttribute.Ascending">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.DefaultSortOrderAttribute.#ctor(System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.DefaultSortOrderAttribute"/>.
            </summary>
            <param name="ascending">Direction of sort</param>
        </member>
        <member name="T:GSF.Data.Model.DeleteRolesAttribute">
            <summary>
            Defines an attribute that will allow setting DELETE function roles for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.DeleteRolesAttribute.Roles">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.DeleteRolesAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.DeleteRolesAttribute"/>.
            </summary>
            <param name="roles">Comma separated string of roles allowed for DELETE functions.</param>
        </member>
        <member name="T:GSF.Data.Model.EncryptDataAttribute">
            <summary>
            Defines an attribute that provides encryption of text field contents for a modeled table.
            </summary>
            <remarks>
            Application of attribute is only valid on <see cref="T:System.String"/> properties; attribute will be
            ignored if applied to properties of other types.
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.EncryptDataAttribute.DefaultKeyReference">
            <summary>
            Default key reference value.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.EncryptDataAttribute.KeyReference">
            <summary>
            Gets reference name used to lookup encryption key and initialization vector;
            new keys will be created for reference if it does not exist.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.EncryptDataAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.EncryptDataAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> with a specified <paramref name="keyReference"/> value.
            </summary>
            <param name="keyReference">Reference name used to lookup encryption key and initialization vector.</param>
        </member>
        <member name="T:GSF.Data.Model.ExtensionAttributeBase">
            <summary>
            Base class for Attributes that are used to extend the functionality of <see cref="T:GSF.Data.Model.TableOperations`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ExtensionAttributeBase.FieldMatch">
            <summary>
            The regular expression used to match field names the attribute applies to.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ExtensionAttributeBase.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ExtensionAttributeBase"/>
            </summary>
            <param name="fieldMatch">Field match expression for the attribute.</param>
        </member>
        <member name="T:GSF.Data.Model.FieldDataTypeAttribute">
            <summary>
            Defines an attribute that will request use of a specific data type on a modeled table field.
            Typically only needed to enforce use of a specific <see cref="T:System.Data.DbType"/> for parameters.
            </summary>
            <remarks>
            Applying this attribute to a modeled table field with no database type parameter will specify that
            the field data type be used for all database types. Using a specific database type as a parameter
            to the attribute, e.g., [FieldDataType(DbType.DateTime2, DatabaseType.SQLServer)], means the field
            data type will only be applied to the specific database - however, the attribute allows multiple
            instances on the same identifier so you could specify different field data types for different
            database types. When multiple instances of the attribute are applied to the same identifier, the
            first attribute encountered that does not target a specific database will be considered the default
            value for all non-specified database types.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.FieldDataTypeAttribute.FieldDataType">
            <summary>
            Gets field data type that determines which <see cref="T:System.Data.DbType"/> should be used when using
            database command operations.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.FieldDataTypeAttribute.TargetDatabaseType">
            <summary>
            Gets target <see cref="T:GSF.Data.DatabaseType"/> for this <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>.
            </summary>
            <remarks>
            When value is <c>null</c>, specified <see cref="P:GSF.Data.Model.FieldDataTypeAttribute.FieldDataType"/> will be applied to all database types.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.FieldDataTypeAttribute.#ctor(System.Data.DbType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/> that will request use of specific <see cref="T:System.Data.DbType"/>.
            </summary>
            <param name="fieldDataType">Specific <see cref="T:System.Data.DbType"/> to target for field.</param>
        </member>
        <member name="M:GSF.Data.Model.FieldDataTypeAttribute.#ctor(System.Data.DbType,GSF.Data.DatabaseType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/> that will request use of specific <see cref="T:System.Data.DbType"/>
            for the specified <see cref="T:GSF.Data.DatabaseType"/>.
            </summary>
            <param name="fieldDataType">Specific <see cref="T:System.Data.DbType"/> to target for field.</param>
            <param name="targetDatabaseType">Target <see cref="T:GSF.Data.DatabaseType"/> for applying <paramref name="fieldDataType"/>.</param>
        </member>
        <member name="T:GSF.Data.Model.FieldNameAttribute">
            <summary>
            Defines an attribute that will allow a custom field name for a modeled table instead of using
            the property name.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.FieldNameAttribute.FieldName">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.FieldNameAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.FieldNameAttribute"/>.
            </summary>
            <param name="fieldName">Field name to use for property.</param>
        </member>
        <member name="T:GSF.Data.Model.GetRolesAttribute">
            <summary>
            Defines an attribute that will allow setting GET function roles for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.GetRolesAttribute.Roles">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.GetRolesAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.GetRolesAttribute"/>.
            </summary>
            <param name="roles">Comma separated string of roles allowed for GET functions.</param>
        </member>
        <member name="T:GSF.Data.Model.ITableOperations">
            <summary>
            Defines a common interface for implementations of <see cref="T:GSF.Data.Model.TableOperations`1"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.Connection">
            <summary>
            Gets <see cref="T:GSF.Data.AdoDataConnection"/> instance associated with this <see cref="T:GSF.Data.Model.TableOperations`1"/> used for database operations.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.TableName">
            <summary>
            Gets the table name defined for the modeled table, includes any escaping as defined in model.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.UnescapedTableName">
            <summary>
            Gets the table name defined for the modeled table without any escape characters.
            </summary>
            <remarks>
            A table name will only be escaped if the model requested escaping with the <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.HasPrimaryKeyIdentityField">
            <summary>
            Gets flag that determines if modeled table has a primary key that is an identity field.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.ExceptionHandler">
            <summary>
            Gets or sets delegate used to handle table operation exceptions.
            </summary>
            <remarks>
            When exception handler is provided, table operations will not throw exceptions for database calls, any
            encountered exceptions will be passed to handler for processing. Otherwise, exceptions will be thrown
            on the call stack.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.UseCaseSensitiveFieldNames">
            <summary>
            Gets or sets flag that determines if field names should be treated as case-sensitive. Defaults to <c>false</c>.
            </summary>
            <remarks>
            In cases where modeled table fields have applied <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>, this flag will be used
            to properly update escaped field names that may be case-sensitive. For example, escaped field names in Oracle
            are case-sensitive. This value is typically <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.PrimaryKeyCache">
            <summary>
            Gets or sets primary key cache.
            </summary>
            <remarks>
            <para>
            The <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,System.String)"/> overloads that include paging parameters
            cache the sorted and filtered primary keys of queried records between calls so that paging is fast and
            efficient. Since the primary keys are cached, an instance of the <see cref="T:GSF.Data.Model.TableOperations`1"/> should
            exist per user session when using query functions that support pagination. In web based implementations,
            the primary cache should be stored with user session state data and then restored between instances of
            the <see cref="T:GSF.Data.Model.TableOperations`1"/> that are created along with a connection that is opened per page.
            </para>
            <para>
            The function <see cref="M:GSF.Data.Model.ITableOperations.ClearPrimaryKeyCache"/> should be called to manually clear cache when table
            contents are known to have changed. Note that calls to any <see cref="M:GSF.Data.Model.ITableOperations.DeleteRecord(System.Object)"/> overload
            will automatically clear any existing primary key cache.
            </para>
            <para>
            Primary keys values are stored in data table without interpretation, i.e., in their raw form as queried
            from the database. Primary key data in cache will be encrypted for models with primary key fields that
            are marked with the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.RootQueryRestriction">
            <summary>
            Gets or sets root record restriction that applies to query table operations.
            </summary>
            <remarks>
            <para>
            Defining a root query restriction creates a base query filter that gets applied to all query operations,
            even when another restriction is applied - in this case the root restriction will be pre-pended to the
            specified query, e.g.:
            <code>
            restriction = RootQueryRestriction + restriction;
            </code>
            A root query restriction is useful to apply a common state to the query operations, e.g., always
            filtering records for a specific user or context.
            </para>
            <para>
            A root query restriction can be manually assigned to a <see cref="T:GSF.Data.Model.TableOperations`1"/> instance or
            automatically assigned by marking a model with the <see cref="T:GSF.Data.Model.RootQueryRestrictionAttribute"/>.
            </para>
            <para>
            If any of the <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.ApplyRootQueryRestrictionToUpdates">
            <summary>
            Gets or sets flag that determines if <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> should be applied to update operations.
            </summary>
            <remarks>
            <para>
            If <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> only references primary key fields, then this property value should be set
            to <c>false</c> since default update operations for a modeled record already work against primary key fields.
            </para>
            <para>
            This flag can be manually set per <see cref="T:GSF.Data.Model.TableOperations`1"/> instance or handled automatically by marking
            a model with the <see cref="T:GSF.Data.Model.RootQueryRestrictionAttribute"/> and assigning a value to the attribute property
            <see cref="F:GSF.Data.Model.RootQueryRestrictionAttribute.ApplyToUpdates"/>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.ITableOperations.ApplyRootQueryRestrictionToDeletes">
            <summary>
            Gets or sets flag that determines if <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> should be applied to delete operations.
            </summary>
            <remarks>
            <para>
            If <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> only references primary key fields, then this property value should be set
            to <c>false</c> since default delete operations for a modeled record already work against primary key fields.
            </para>
            <para>
            This flag can be manually set per <see cref="T:GSF.Data.Model.TableOperations`1"/> instance or handled automatically by marking
            a model with the <see cref="T:GSF.Data.Model.RootQueryRestrictionAttribute"/> and assigning a value to the attribute property
            <see cref="F:GSF.Data.Model.RootQueryRestrictionAttribute.ApplyToDeletes"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.NewRecord">
            <summary>
            Creates a new modeled record instance, applying any modeled default values as specified by a
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> on the
            model properties.
            </summary>
            <returns>New modeled record instance with any defined default values applied.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.ApplyRecordDefaults(System.Object)">
            <summary>
            Applies the default values on the specified modeled table <paramref name="record"/>
            where any of the properties are marked with either <see cref="T:System.ComponentModel.DefaultValueAttribute"/>
            or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>.
            </summary>
            <param name="record">Record to update.</param>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.ApplyRecordUpdates(System.Object)">
            <summary>
            Applies the update values on the specified modeled table <paramref name="record"/> where
            any of the properties are marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/>.
            </summary>
            <param name="record">Record to update.</param>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecord(GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns a single modeled table record for the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified <paramref name="restriction"/>, <c>null</c> will be returned.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecord(System.String,GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns a single modeled table record for the specified <paramref name="restriction"/>,
            execution of query will apply <paramref name="orderByExpression"/>.
            </summary>
            <param name="orderByExpression">Field name expression used for sort order, include ASC or DESC as needed - does not include ORDER BY; defaults to primary keys.</param>
            <param name="restriction">Record restriction to apply.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified <paramref name="restriction"/>, <c>null</c> will be returned.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecordWhere(System.String,System.Object[])">
            <summary>
            Queries database and returns a single modeled table record for the specified SQL filter
            expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified filter expression and parameters, <c>null</c> will be returned.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)">
            <summary>
            Queries database and returns modeled table records for the specified parameters.
            </summary>
            <param name="orderByExpression">Field name expression used for sort order, include ASC or DESC as needed - does not include ORDER BY; defaults to primary keys.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <param name="limit">Limit of number of record to return.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            If no record <paramref name="restriction"/> or <paramref name="limit"/> is provided, all rows will be returned.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecords(GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns modeled table records for the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/> only
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecordsWhere(System.String,System.Object[])">
            <summary>
            Queries database and returns modeled table records for the specified SQL filter expression
            and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/> only
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,System.String)">
            <summary>
            Queries database and returns modeled table records for the specified sorting, paging and search parameters.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="page">Page number of records to return (1-based).</param>
            <param name="pageSize">Current page size.</param>
            <param name="searchText">Text to search.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This function is used for record paging. Primary keys are cached server-side, typically per user session,
            to maintain desired per-page sort order. Call <see cref="M:GSF.Data.Model.ITableOperations.ClearPrimaryKeyCache"/> to manually clear cache
            when table contents are known to have changed.
            </para>
            <para>
            If the specified <paramref name="sortField"/> has been marked with <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            establishing the primary key cache operation will take longer to execute since query data will need to
            be downloaded locally and decrypted so the proper sort order can be determined.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)"/> where restriction
            is generated by <see cref="M:GSF.Data.Model.ITableOperations.GetSearchRestriction(System.String)"/> using <paramref name="searchText"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns modeled table records for the specified sorting and paging parameters.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="page">Page number of records to return (1-based).</param>
            <param name="pageSize">Current page size.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This function is used for record paging. Primary keys are cached server-side, typically per user session,
            to maintain desired per-page sort order. Call <see cref="M:GSF.Data.Model.ITableOperations.ClearPrimaryKeyCache"/> to manually clear cache
            when table contents are known to have changed.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If the specified <paramref name="sortField"/> has been marked with <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            establishing the primary key cache operation will take longer to execute since query data will need to
            be downloaded locally and decrypted so the proper sort order can be determined.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecordCount(System.String)">
            <summary>
            Gets the record count for the modeled table based on search parameter.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
            <param name="searchText">Text to search.</param>
            <returns>Record count for the modeled table based on search parameter.</returns>
            <remarks>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecordCount(GSF.Data.Model.RecordRestriction)"/> where restriction
            is generated by <see cref="M:GSF.Data.Model.ITableOperations.GetSearchRestriction(System.String)"/>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecordCount(GSF.Data.Model.RecordRestriction)">
            <summary>
            Gets the record count for the specified <paramref name="restriction"/> - or - total record
            count for the modeled table if <paramref name="restriction"/> is <c>null</c>.
            </summary>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>
            Record count for the specified <paramref name="restriction"/> - or - total record count
            for the modeled table if <paramref name="restriction"/> is <c>null</c>.
            </returns>
            <remarks>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.QueryRecordCountWhere(System.String,System.Object[])">
            <summary>
            Gets the record count for the modeled table for the specified SQL filter expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Record count for the modeled table for the specified parameters.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecordCount(GSF.Data.Model.RecordRestriction)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)">
            <summary>
            Locally searches retrieved table records after queried from database for the specified sorting and search parameters.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            Function only typically used for record models that apply the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="searchText">Text to search.</param>
            <param name="comparison"><see cref="T:System.StringComparison"/> to use when searching string fields; defaults to ordinal ignore case.</param>
            <returns>An array of modeled table row instances for the queried records that match the search.</returns>
            <remarks>
            <para>
            This function searches records locally after query from database, this way <see cref="T:GSF.Data.Model.SearchableAttribute"/> functionality will work
            even with fields that are modeled with the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> and use the <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            Primary keys for this function will not be cached server-side and this function will be slower and more expensive than similar calls
            to <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,System.String)"/>. Usage should be restricted to cases searching for field data that has
            been modeled with the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>.
            </para>
            <para>
            This function does not paginate records, instead a full list of search records is returned. User can cache returned records and page
            through them using the <see cref="M:GSF.Data.Model.ITableOperations.GetPageOfRecords(System.Object[],System.Int32,System.Int32)"/> function. As a result, usage should be restricted to smaller data sets. 
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.IsSearchMatch(System.Object,System.String[])">
            <summary>
            Determines if any <paramref name="record"/> fields modeled with the <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="searchValues">Values to search.</param>
            <returns>
            <c>true</c> if any <paramref name="record"/> fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>; otherwise, <c>false</c>.
            </returns>
            <remarks>
            String comparisons will be ordinal ignoring case.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.IsSearchMatch(System.Object,System.StringComparison,System.String[])">
            <summary>
            Determines if any <paramref name="record"/> fields modeled with the <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="comparison"><see cref="T:System.StringComparison"/> to use when searching string fields.</param>
            <param name="searchValues">Values to search.</param>
            <returns>
            <c>true</c> if any <paramref name="record"/> fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetPageOfRecords(System.Object[],System.Int32,System.Int32)">
            <summary>
            Gets the specified <paramref name="page"/> of records from the provided source <paramref name="records"/> array.
            </summary>
            <param name="records">Source records array.</param>
            <param name="page">Desired page of records.</param>
            <param name="pageSize">Desired page size.</param>
            <returns>A page of records.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.LoadRecord(System.Object[])">
            <summary>
            Creates a new modeled table record queried from the specified <paramref name="primaryKeys"/>.
            </summary>
            <param name="primaryKeys">Primary keys values of the record to load.</param>
            <returns>New modeled table record queried from the specified <paramref name="primaryKeys"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.LoadRecord(System.Data.DataRow)">
            <summary>
            Creates a new modeled table record queried from the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be loaded.</param>
            <returns>New modeled table record queried from the specified <paramref name="row"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.ToDataTable(System.Collections.IEnumerable)">
            <summary>
            Converts the given collection of <paramref name="records"/> into a <see cref="T:System.Data.DataTable"/>.
            </summary>
            <param name="records">The collection of records to be inserted into the data table.</param>
            <returns>A data table containing data from the given records.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.DeleteRecord(System.Object[])">
            <summary>
            Deletes the record referenced by the specified <paramref name="primaryKeys"/>.
            </summary>
            <param name="primaryKeys">Primary keys values of the record to load.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.DeleteRecord(System.Object)">
            <summary>
            Deletes the specified modeled table <paramref name="record"/> from the database.
            </summary>
            <param name="record">Record to delete.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.DeleteRecord(System.Data.DataRow)">
            <summary>
            Deletes the record referenced by the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be deleted.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.DeleteRecord(GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})">
            <summary>
            Deletes the records referenced by the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply</param>
            <param name="applyRootQueryRestriction">
            Flag that determines if any existing <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> should be applied. Defaults to
            <see cref="P:GSF.Data.Model.ITableOperations.ApplyRootQueryRestrictionToDeletes"/> setting.
            </param>
            <returns>Number of rows affected.</returns>
            <remarks>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="restriction"/> cannot be <c>null</c>.</exception>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.DeleteRecordWhere(System.String,System.Object[])">
            <summary>
            Deletes the records referenced by the specified SQL filter expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.DeleteRecord(GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.UpdateRecord(System.Object,GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})">
            <summary>
            Updates the database with the specified modeled table <paramref name="record"/>,
            any model properties marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will
            be evaluated and applied before the record is provided to the data source.
            </summary>
            <param name="record">Record to update.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <param name="applyRootQueryRestriction">
            Flag that determines if any existing <see cref="P:GSF.Data.Model.ITableOperations.RootQueryRestriction"/> should be applied. Defaults to
            <see cref="P:GSF.Data.Model.ITableOperations.ApplyRootQueryRestrictionToUpdates"/> setting.
            </param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.UpdateRecordWhere(System.Object,System.String,System.Object[])">
            <summary>
            Updates the database with the specified modeled table <paramref name="record"/>
            referenced by the specified SQL filter expression and parameters, any model properties
            marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied
            before the record is provided to the data source.
            </summary>
            <param name="record">Record to update.</param>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.UpdateRecord(System.Object,GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.UpdateRecord(System.Data.DataRow,GSF.Data.Model.RecordRestriction)">
            <summary>
            Updates the database with the specified <paramref name="row"/>, any model properties
            marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied
            before the record is provided to the data source.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be updated.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.UpdateRecordWhere(System.Data.DataRow,System.String,System.Object[])">
            <summary>
            Updates the database with the specified <paramref name="row"/> referenced by the
            specified SQL filter expression and parameters, any model properties marked with
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied before
            the record is provided to the data source.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be updated.</param>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.ITableOperations.UpdateRecord(System.Data.DataRow,GSF.Data.Model.RecordRestriction)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.AddNewRecord(System.Object)">
            <summary>
            Adds the specified modeled table <paramref name="record"/> to the database.
            </summary>
            <param name="record">Record to add.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.AddNewRecord(System.Data.DataRow)">
            <summary>
            Adds the specified <paramref name="row"/> to the database.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be added.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.AddNewOrUpdateRecord(System.Object)">
            <summary>
            Adds the specified modeled table <paramref name="record"/> to the database if the
            record has not defined any of its primary key values; otherwise, the database will
            be updated with the specified modeled table <paramref name="record"/>.
            </summary>
            <param name="record">Record to add or update.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetPrimaryKeys(System.Object)">
            <summary>
            Gets the primary key values from the specified <paramref name="record"/>.
            </summary>
            <param name="record">Record of data to retrieve primary keys from.</param>
            <returns>Primary key values from the specified <paramref name="record"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetPrimaryKeys(System.Data.DataRow)">
            <summary>
            Gets the primary key values from the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data.</param>
            <returns>Primary key values from the specified <paramref name="row"/>.</returns>
            <remarks>
            Function returns raw data from <paramref name="row"/> without interpretation, it may be
            necessary to call <see cref="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)"/> for models with primary key
            fields that are marked with either <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or
            <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetFieldNames(System.Boolean)">
            <summary>
            Gets the field names for the table; if <paramref name="escaped"/> is <c>true</c>, also includes any escaping as defined in model.
            </summary>
            <param name="escaped">Flag that determines if field names should include any escaping as defined in the model; defaults to <c>true</c>.</param>
            <returns>Array of field names.</returns>
            <remarks>
            A field name will only be escaped if the model requested escaping with the <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetPrimaryKeyFieldNames(System.Boolean)">
            <summary>
            Get the primary key field names for the table; if <paramref name="escaped"/> is <c>true</c>, also includes any escaping as defined in model.
            </summary>
            <param name="escaped">Flag that determines if field names should include any escaping as defined in the model; defaults to <c>true</c>.</param>
            <returns>Array of primary key field names.</returns>
            <remarks>
            A field name will only be escaped if the model requested escaping with the <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.TryGetFieldAttribute``1(System.String,``0@)">
            <summary>
            Attempts to get the specified <paramref name="attribute"/> for a field.
            </summary>
            <typeparam name="TAttribute">Type of attribute to attempt to get.</typeparam>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attribute">Attribute that was found, if any.</param>
            <returns><c>true</c> if attribute was found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.TryGetFieldAttribute(System.String,System.Type,System.Attribute@)">
            <summary>
            Attempts to get the specified <paramref name="attributeType"/> for a field.
            </summary>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attributeType">Type of attribute to attempt to get.</param>
            <param name="attribute">Attribute that was found, if any.</param>
            <returns><c>true</c> if attribute was found; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="attributeType"/> is not an <see cref="T:System.Attribute"/>.</exception>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.FieldHasAttribute``1(System.String)">
            <summary>
            Determines if the specified field has an associated attribute.
            </summary>
            <typeparam name="TAttribute">Type of attribute to search for.</typeparam>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <returns><c>true</c> if field has attribute; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.FieldHasAttribute(System.String,System.Type)">
            <summary>
            Determines if the specified field has an associated attribute.
            </summary>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attributeType">Type of attribute to search for.</param>
            <returns><c>true</c> if field has attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="attributeType"/> is not an <see cref="T:System.Attribute"/>.</exception>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetFieldValue(System.Object,System.String)">
            <summary>
            Gets the value for the specified field.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="fieldName">Field name to retrieve.</param>
            <returns>Field value or <c>null</c> if field is not found.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetInterpretedFieldValue(System.String,System.Object)">
            <summary>
            Gets the interpreted value for the specified field, encrypting or returning any intermediate <see cref="T:System.Data.IDbDataParameter"/>
            value as needed.
            </summary>
            <param name="fieldName">Field name to retrieve.</param>
            <param name="value">Field value to use.</param>
            <returns>
            Interpreted value for the specified field, encrypting or returning any intermediate <see cref="T:System.Data.IDbDataParameter"/> value
            as needed.
            </returns>
            <remarks>
            <para>
            This function will need to be used when calling overloads that take a <see cref="T:GSF.Data.Model.RecordRestriction"/> or composite format
            filter expression where the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/> have been modeled
            on a field referenced by one of the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameters. Since the record restrictions are used
            with a free-form expression, the <see cref="T:GSF.Data.Model.TableOperations`1"/> class cannot be aware of the fields accessed in the
            expression without attempting to parse the expression which would be time consuming and error prone; as a result, users
            will need to be aware to call this function when using record restriction that references fields that are either marked
            for encryption or use a specific field data-type attribute.
            </para>
            <para>
            If a <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter references a field that is modeled with an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            this function will need to be called, replacing the restriction parameter with the returned value, so that the field data
            value will be properly encrypted prior to executing the database function.
            </para>
            <para>
            If a <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter references a field that is modeled with a <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>,
            this function will need to be called, replacing the restriction parameter with the returned value, so that the field data
            type will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetFieldType(System.String)">
            <summary>
            Gets the <see cref="T:System.Type"/> for the specified field.
            </summary>
            <param name="fieldName">Field name to retrieve.</param>
            <returns>Field <see cref="T:System.Type"/> or <c>null</c> if field is not found.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.FieldExists(System.String)">
            <summary>
            Gets flag that determines if the specified field exists.
            </summary>
            <param name="fieldName">Field name to check.</param>
            <returns><c>true</c> if field is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetSearchRestriction(System.String)">
            <summary>
            Generates a <see cref="T:GSF.Data.Model.RecordRestriction"/> based on fields marked with <see cref="T:GSF.Data.Model.SearchableAttribute"/> and specified <paramref name="searchText"/>.
            </summary>
            <param name="searchText">Text to search.</param>
            <returns><see cref="T:GSF.Data.Model.RecordRestriction"/> based on fields marked with <see cref="T:GSF.Data.Model.SearchableAttribute"/> and specified <paramref name="searchText"/>.</returns>
            <remarks>
            Any fields marked with both <see cref="T:GSF.Data.Model.SearchableAttribute"/> and <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> will be automatically managed, i.e.,
            the returned <see cref="T:GSF.Data.Model.RecordRestriction"/> parameters will already apply any field based encryption as needed. Database query functions
            executed for fields marked for encryption will only be searched using <see cref="F:GSF.Data.Model.SearchType.FullValueMatch"/>, regardless of any otherwise
            specified value in the <see cref="T:GSF.Data.Model.SearchableAttribute"/> as encryption is handled locally. However, the <see cref="M:GSF.Data.Model.ITableOperations.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)"/> function
            can be used to find data in encrypted fields that are marked for search with a <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.GetPrimaryKeyCacheSize">
            <summary>
            Calculates the size of the current primary key cache, in number of records.
            </summary>
            <returns>Number of records in the current primary key cache.</returns>
        </member>
        <member name="M:GSF.Data.Model.ITableOperations.ClearPrimaryKeyCache">
            <summary>
            Clears the primary key cache for this <see cref="T:GSF.Data.Model.ITableOperations"/> instance.
            </summary>
            <remarks>
            <para>
            This method is intended to be used in conjunction with calls to the overloads for
            <see cref="M:GSF.Data.Model.ITableOperations.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)"/> which are
            used for record pagination.
            </para>
            <para>
            If record set is known to have changed outside purview of this class, this method
            should be called so that primary key cache can be reloaded.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.NamespaceDoc">
            <summary>
            Contains classes and attributes used for model based database access.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.NonRecordFieldAttribute">
            <summary>
            Defines an attribute that will mark a property to not be serialized as a record field.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.ParentKeyAttribute">
            <summary>
            Defines an attribute that will allow a foreign key in the model to point back to parent table 
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ParentKeyAttribute.Model">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ParentKeyAttribute.#ctor(System.Type)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ParentKeyAttribute"/>.
            </summary>
            <param name="model">Type of modeled table that key points back to.</param>
        </member>
        <member name="T:GSF.Data.Model.PatchRolesAttribute">
            <summary>
            Defines an attribute that will allow setting PATCH function roles for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.PatchRolesAttribute.Roles">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.PatchRolesAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.PatchRolesAttribute"/>.
            </summary>
            <param name="roles">Comma separated string of roles allowed for PATCH functions.</param>
        </member>
        <member name="T:GSF.Data.Model.PostRolesAttribute">
            <summary>
            Defines an attribute that will allow setting POST function roles for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.PostRolesAttribute.Roles">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.PostRolesAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.PostRolesAttribute"/>.
            </summary>
            <param name="roles">Comma separated string of roles allowed for POST functions.</param>
        </member>
        <member name="T:GSF.Data.Model.PrimaryKeyAttribute">
            <summary>
            Defines an attribute that will mark a property as a primary key field for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.PrimaryKeyAttribute.IsIdentity">
            <summary>
            Gets flag that determines if primary key field is an identity field.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.PrimaryKeyAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.PrimaryKeyAttribute"/>.
            </summary>
            <remarks>
            <see cref="P:GSF.Data.Model.PrimaryKeyAttribute.IsIdentity"/> is assumed to be <c>false</c>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.PrimaryKeyAttribute.#ctor(System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.PrimaryKeyAttribute"/> with specified identity state.
            </summary>
            <param name="isIdentity">Flag that determines if this primary key field is an identity field.</param>
        </member>
        <member name="T:GSF.Data.Model.RecordOperation">
            <summary>
            Record operations for modeled tables.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.QueryRecordCount">
            <summary>
            Operation for getting record count.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.QueryRecords">
            <summary>
            Operation for retrieving paged records.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.DeleteRecord">
            <summary>
            Operation for deleting records.
            </summary>
            <remarks>
            Delete rights should be derived from methods marked with this operation.
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.CreateNewRecord">
            <summary>
            Operation for creating a new record, i.e., instantiating a new modeled table record instance.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.AddNewRecord">
            <summary>
            Operation for adding records.
            </summary>
            <remarks>
            Add rights should be derived from methods marked with this operation.
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RecordOperation.UpdateRecord">
            <summary>
            Operation for updating records.
            </summary>
            <remarks>
            Update rights should be derived from methods marked with this operation.
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.RecordOperationAttribute">
            <summary>
            Defines an attribute that marks a method as a specific <see cref="T:GSF.Data.Model.RecordOperation"/> for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.RecordOperationAttribute.ModelType">
            <summary>
            Gets or sets <see cref="T:System.Type"/> of modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.RecordOperationAttribute.Operation">
            <summary>
            Gets or sets <see cref="T:GSF.Data.Model.RecordOperation"/> the method represents.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.RecordOperationAttribute.#ctor(System.Type,GSF.Data.Model.RecordOperation)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.RecordOperationAttribute"/>
            </summary>
            <param name="modelType">The <see cref="T:System.Type"/> of modeled table.</param>
            <param name="operation">The <see cref="T:GSF.Data.Model.RecordOperation"/> the method represents.</param>
        </member>
        <member name="T:GSF.Data.Model.RecordRestriction">
            <summary>
            Defines a parameterized record restriction that can be applied to queries.
            </summary>
            <remarks>
            For versatility, values in the <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> array are mutable, however, this makes the
            array vulnerable to unintended updates for long-lived instances. Consequently, the normal use-case
            of record restriction instances should be considered temporal. If an instance needs to be cached,
            consider use of the <see cref="M:GSF.Data.Model.RecordRestriction.Clone"/> function to reduce risk of unintended array updates.
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RecordRestriction.FilterExpression">
            <summary>
            Defines filter SQL expression for restriction as a composite format string - does not
            include WHERE. When escaping is needed for field names, use standard ANSI quotes.
            </summary>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format string will be converted into
            query parameters where each of the corresponding values in the <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/>
            collection will be applied as <see cref="T:System.Data.IDbDataParameter"/> values to an executed
            <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RecordRestriction.Parameters">
            <summary>
            Defines restriction parameter values.
            </summary>
            <remarks>
            If any of the <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> reference a table field that is modeled with either an
            <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the
            target parameter with the returned value so that the field value will be properly set prior
            to executing any database function.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.#ctor(System.String,System.Object[])">
            <summary>
            Creates a new parameterized <see cref="T:GSF.Data.Model.RecordRestriction"/> with the specified SQL filter
            expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the <paramref name="parameters"/> reference a table field that is modeled with either
            an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the
            target parameter with the returned value so that the field value will be properly set prior to
            executing any database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.RecordRestriction.Item(System.Int32)">
            <summary>
            Gets or sets <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> field value for the specified <paramref name="index"/>.
            </summary>
            <param name="index">Index into <see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> field array.</param>
            <returns><see cref="F:GSF.Data.Model.RecordRestriction.Parameters"/> field value for the specified <paramref name="index"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.Clone">
            <summary>
            Creates a deep copy of this record restriction.
            </summary>
            <returns>Deep copy of this record restriction.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.Equals(System.Object)">
            <summary>
            Determines whether the specified object is equal to the current object.
            </summary>
            <param name="obj">An object to compare with this object.</param>
            <returns><c>true</c> if the current object is equal to the <paramref name="obj" /> parameter; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.Equals(GSF.Data.Model.RecordRestriction)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <param name="other">An object to compare with this object.</param>
            <returns><c>true</c> if the current object is equal to the <paramref name="other" /> parameter; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.GetHashCode">
            <summary>
            Serves as the default hash function.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.Data.Model.RecordRestriction"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_Implicit(System.String)~GSF.Data.Model.RecordRestriction">
            <summary>
            Implicitly converts a <see cref="T:System.String"/> based filter expression into a <see cref="T:GSF.Data.Model.RecordRestriction"/>.
            </summary>
            <param name="value">Operand.</param>
            <returns>Record operation representing the specified filter expression.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_Equality(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Compares to record restrictions for equality.
            </summary>
            <param name="left"><see cref="T:GSF.Data.Model.RecordRestriction"/> left operand.</param>
            <param name="right"><see cref="T:GSF.Data.Model.RecordRestriction"/> right operand.</param>
            <returns><c>true</c> if record restrictions are equal; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_Inequality(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Compares to record restrictions for inequality.
            </summary>
            <param name="left"><see cref="T:GSF.Data.Model.RecordRestriction"/> left operand.</param>
            <param name="right"><see cref="T:GSF.Data.Model.RecordRestriction"/> right operand.</param>
            <returns><c>true</c> if record restrictions are not equal; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_Addition(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Combines two record restrictions with an AND condition.
            </summary>
            <param name="left"><see cref="T:GSF.Data.Model.RecordRestriction"/> left operand.</param>
            <param name="right"><see cref="T:GSF.Data.Model.RecordRestriction"/> right operand.</param>
            <returns>New combined record restriction.</returns>
            <remarks>
            If both parameters are <c>null</c>, result will be <c>null</c>. If one parameter is <c>null</c>
            and the other parameter is not, the non-null parameter will be returned. Equally, if the
            <see cref="F:GSF.Data.Model.RecordRestriction.FilterExpression"/> of both parameters are <c>null</c>, empty or only whitespace,
            then the result will be <c>null</c>. If one parameter has a filter expression that is
            <c>null</c>, empty or whitespace and the other parameter's filter expression is defined, then
            the parameter that has a filter expression will be returned.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_BitwiseAnd(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Combines two record restrictions with an AND condition.
            </summary>
            <param name="left"><see cref="T:GSF.Data.Model.RecordRestriction"/> left operand.</param>
            <param name="right"><see cref="T:GSF.Data.Model.RecordRestriction"/> right operand.</param>
            <returns>New combined record restriction.</returns>
            <remarks>
            If both parameters are <c>null</c>, result will be <c>null</c>. If one parameter is <c>null</c>
            and the other parameter is not, the non-null parameter will be returned. Equally, if the
            <see cref="F:GSF.Data.Model.RecordRestriction.FilterExpression"/> of both parameters are <c>null</c>, empty or only whitespace,
            then the result will be <c>null</c>. If one parameter has a filter expression that is
            <c>null</c>, empty or whitespace and the other parameter's filter expression is defined, then
            the parameter that has a filter expression will be returned.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.op_BitwiseOr(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Combines two record restrictions with an OR condition.
            </summary>
            <param name="left"><see cref="T:GSF.Data.Model.RecordRestriction"/> left operand.</param>
            <param name="right"><see cref="T:GSF.Data.Model.RecordRestriction"/> right operand.</param>
            <returns>New combined record restriction.</returns>
            <remarks>
            If both parameters are <c>null</c>, result will be <c>null</c>. If one parameter is <c>null</c>
            and the other parameter is not, the non-null parameter will be returned. Equally, if the
            <see cref="F:GSF.Data.Model.RecordRestriction.FilterExpression"/> of both parameters are <c>null</c>, empty or only whitespace,
            then the result will be <c>null</c>. If one parameter has a filter expression that is
            <c>null</c>, empty or whitespace and the other parameter's filter expression is defined, then
            the parameter that has a filter expression will be returned.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.Clone(GSF.Data.Model.RecordRestriction)">
            <summary>
            Creates a deep copy of the <paramref name="source"/> record restriction.
            </summary>
            <param name="source">Record restriction to clone.</param>
            <returns>Deep copy of the <paramref name="source"/> record restriction.</returns>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.CombineAnd(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Combines two record restrictions with an AND condition.
            </summary>
            <param name="left">Left operand.</param>
            <param name="right">Right operand.</param>
            <returns>New combined record restriction.</returns>
            <remarks>
            If both parameters are <c>null</c>, result will be <c>null</c>. If one parameter is <c>null</c>
            and the other parameter is not, the non-null parameter will be returned. Equally, if the
            <see cref="F:GSF.Data.Model.RecordRestriction.FilterExpression"/> of both parameters are <c>null</c>, empty or only whitespace,
            then the result will be <c>null</c>. If one parameter has a filter expression that is
            <c>null</c>, empty or whitespace and the other parameter's filter expression is defined, then
            the parameter that has a filter expression will be returned.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RecordRestriction.CombineOr(GSF.Data.Model.RecordRestriction,GSF.Data.Model.RecordRestriction)">
            <summary>
            Combines two record restrictions with an OR condition.
            </summary>
            <param name="left">Left operand.</param>
            <param name="right">Right operand.</param>
            <returns>New combined record restriction.</returns>
            <remarks>
            If both parameters are <c>null</c>, result will be <c>null</c>. If one parameter is <c>null</c>
            and the other parameter is not, the non-null parameter will be returned. Equally, if the
            <see cref="F:GSF.Data.Model.RecordRestriction.FilterExpression"/> of both parameters are <c>null</c>, empty or only whitespace,
            then the result will be <c>null</c>. If one parameter has a filter expression that is
            <c>null</c>, empty or whitespace and the other parameter's filter expression is defined, then
            the parameter that has a filter expression will be returned.
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.ReturnLimitAttribute">
            <summary>
            Defines an attribute that will allows a top number of results to be returned when queried
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ReturnLimitAttribute.Limit">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ReturnLimitAttribute.#ctor(System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ReturnLimitAttribute"/>.
            </summary>
            <param name="limit">Number of top records to return.</param>
        </member>
        <member name="T:GSF.Data.Model.RootQueryRestrictionAttribute">
            <summary>
            Defines an attribute that will mark a modeled table with a record restriction that applies
            to all query functions for modeled <see cref="T:GSF.Data.Model.TableOperations`1"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RootQueryRestrictionAttribute.FilterExpression">
            <summary>
            Defines filter SQL expression for restriction as a composite format string - does not
            include WHERE. When escaping is needed for field names, use standard ANSI quotes.
            </summary>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format string will be converted into
            query parameters where each of the corresponding values in the <see cref="F:GSF.Data.Model.RootQueryRestrictionAttribute.Parameters"/>
            collection will be applied as <see cref="T:System.Data.IDbDataParameter"/> values to an executed
            <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RootQueryRestrictionAttribute.Parameters">
            <summary>
            Defines restriction parameter values.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.RootQueryRestrictionAttribute.ApplyToUpdates">
            <summary>
            Gets or sets flag that determines if root query restriction should be applied to update operations.
            </summary>
            <remarks>
            If root query restriction only references primary key fields, then this property value should
            be set to <c>false</c> since default update operations for a modeled record already work against
            primary key fields.
            </remarks>
        </member>
        <member name="F:GSF.Data.Model.RootQueryRestrictionAttribute.ApplyToDeletes">
            <summary>
            Gets or sets flag that determines if root query restriction should be applied to delete operations.
            </summary>
            <remarks>
            If root query restriction only references primary key fields, then this property value should
            be set to <c>false</c> since default delete operations for a modeled record already work against
            primary key fields.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.RootQueryRestrictionAttribute.#ctor(System.String,System.Object[])">
            <summary>
            Creates a new parameterized <see cref="T:GSF.Data.Model.RootQueryRestrictionAttribute"/> with the specified
            SQL filter expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.SearchType">
            <summary>
            Represents types of searches available for <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.SearchType.Default">
            <summary>
            Use default search type for field type.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.SearchType.LikeExpression">
            <summary>
            Use SQL LIKE expression to match field.
            </summary>
        </member>
        <member name="F:GSF.Data.Model.SearchType.FullValueMatch">
            <summary>
            Match full text of field.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.SearchableAttribute">
            <summary>
            Defines an attribute that will mark a property as a searchable field for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.SearchableAttribute.SearchType">
            <summary>
            Gets or sets type of search that should be used for field queried.
            </summary>
            <remarks>
            Database query functions executed against modeled fields marked with both <see cref="T:GSF.Data.Model.SearchableAttribute"/> and
            <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> will only be searched using <see cref="F:GSF.Data.Model.SearchType.FullValueMatch"/>,
            regardless of specified value as encryption is handled locally by <see cref="T:GSF.Data.Model.TableOperations`1"/>. However, the
            <see cref="M:GSF.Data.Model.TableOperations`1.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)"/> function can be used to find data in encrypted fields that are
            marked for search with a <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.SearchableAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.SearchableAttribute.#ctor(GSF.Data.Model.SearchType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.SearchableAttribute"/> with specified <paramref name="searchType"/>.
            </summary>
            <param name="searchType">Type of search that should be used for field queried.</param>
            <remarks>
            Database query functions executed against modeled fields marked with both <see cref="T:GSF.Data.Model.SearchableAttribute"/> and
            <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> will only be searched using <see cref="F:GSF.Data.Model.SearchType.FullValueMatch"/>,
            regardless of specified <paramref name="searchType"/> as encryption is handled locally by instances of the
            <see cref="T:GSF.Data.Model.TableOperations`1"/>. However, the <see cref="M:GSF.Data.Model.TableOperations`1.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)"/> function can be used
            to find data in encrypted fields that are marked for search with a <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            </remarks>
        </member>
        <member name="T:GSF.Data.Model.SettingsCategoryAttribute">
            <summary>
            Defines an attribute that will allow a custom settings category for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.SettingsCategoryAttribute.SettingsCategory">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.SettingsCategoryAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.SettingsCategoryAttribute"/>.
            </summary>
            <param name="settingsCategory">Config file Settings category to use for class.</param>
        </member>
        <member name="T:GSF.Data.Model.SortExtensionAttribute">
            <summary>
            Defines an attribute that marks static methods on a model that are used to transform a
            field into more complex order by expression, e.g., a subquery, for sorting.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.SortExtensionAttribute.#ctor(System.String)">
            <summary>
            Defines an attribute that marks static methods on a model that are used to transform a
            field into more complex order by expression, e.g., a subquery, for sorting.
            </summary>
        </member>
        <member name="T:GSF.Data.Model.SQLSearchFilter">
            <summary>
            Defines a Filter to be applied to a Query
            </summary>
        </member>
        <member name="P:GSF.Data.Model.SQLSearchFilter.FieldName">
            <summary>
            Gets or sets the Name of the field to be searched.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.SQLSearchFilter.SearchText">
            <summary>
            Gets or sets the value to be searched for.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.SQLSearchFilter.Operator">
             <summary>
             Gets or sets the Operator to be used for the Search.
             </summary>
             <remarks>
             <para>The list of supported operators includes:</para>
            
             <list type="bullet">
               <item>=</item>
               <item><![CDATA[<>]]></item>
               <item><![CDATA[<]]></item>
               <item><![CDATA[>]]></item>
               <item>IN</item>
               <item>NOT IN</item>
               <item>LIKE</item>
               <item>NOT LIKE</item>
               <item><![CDATA[<=]]></item>
               <item><![CDATA[>=]]></item>
             </list>
             </remarks>
             <exception cref="T:System.NotSupportedException">Attempted to assign an operator that is not supported.</exception>
        </member>
        <member name="P:GSF.Data.Model.SQLSearchFilter.Type">
             <summary>
             Gets or sets the type of the field to be searched.
             </summary>
             <remarks>
             <para>The list of supported types includes:</para>
            
             <list type="bullet">
               <item>integer</item>
               <item>number</item>
               <item>boolean</item>
               <item>datetime</item>
               <item>string</item>
             </list>
             </remarks>
             <exception cref="T:System.NotSupportedException">Attempted to assign a type that is not supported.</exception>
        </member>
        <member name="P:GSF.Data.Model.SQLSearchFilter.IsPivotColumn">
            <summary>
            Gets or sets a flag indicating whether this is a pivot column
            in which case the <see cref="T:GSF.Data.Model.SearchableAttribute"/> should be used.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.SQLSearchFilter.GenerateConditional(System.Collections.Generic.List{System.Object})">
            <summary>
            Generates the conditional statement to be used in the WHERE clause of the SQL statement.
            </summary>
            <param name="parameters">A list of the parameters to be substituted into the full query.</param>
            <returns>The conditional statement with format string syntax for parameter substitution."</returns>
        </member>
        <member name="T:GSF.Data.Model.SQLSearchModifierAttribute">
            <summary>
            Defines an attribute that translates Search Queries to more complex SQL Queries 
            </summary>
        </member>
        <member name="T:GSF.Data.Model.TableNameAttribute">
            <summary>
            Defines an attribute that will allow a custom table name for a modeled table instead of using
            the class name.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.TableNameAttribute.TableName">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.TableNameAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.TableNameAttribute"/>.
            </summary>
            <param name="tableName">Table name to use for class.</param>
        </member>
        <member name="T:GSF.Data.Model.TableOperations`1">
            <summary>
            Defines database operations for a modeled table.
            </summary>
            <typeparam name="T">Modeled table.</typeparam>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.#ctor(GSF.Data.AdoDataConnection,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.TableOperations`1"/>.
            </summary>
            <param name="connection"><see cref="T:GSF.Data.AdoDataConnection"/> instance to use for database operations.</param>
            <param name="customTokens">Custom run-time tokens to apply to any modeled <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> values.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="connection"/> cannot be <c>null</c>.</exception>
            <remarks>
            The <paramref name="customTokens"/> can be used to apply run-time tokens to any defined <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> values,
            for example, given the following amendment expression applied to a modeled class:
            <code>
            [AmendExpression("TOP {count}", 
                TargetExpression = TargetExpression.FieldList,
                AffixPosition = AffixPosition.Prefix,
                StatementTypes = StatementTypes.SelectSet)]]
            </code>
            The <paramref name="customTokens"/> key/value pairs could be set as follows at run-time:
            <code>
            int count = 200;
            customTokens = new[] { new KeyValuePair&lt;string, string&gt;("{count}", $"{count}") };
            </code>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.#ctor(GSF.Data.AdoDataConnection,System.Action{System.Exception},System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.TableOperations`1"/> using provided <paramref name="exceptionHandler"/>.
            </summary>
            <param name="connection"><see cref="T:GSF.Data.AdoDataConnection"/> instance to use for database operations.</param>
            <param name="exceptionHandler">Delegate to handle table operation exceptions.</param>
            <param name="customTokens">Custom run-time tokens to apply to any modeled <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> values.</param>
            <remarks>
            <para>
            When exception handler is provided, table operations will not throw exceptions for database calls, any
            encountered exceptions will be passed to handler for processing.
            </para>
            <para>
            The <paramref name="customTokens"/> can be used to apply run-time tokens to any defined <see cref="T:GSF.Data.Model.AmendExpressionAttribute"/> values,
            for example, given the following amendment expression applied to a modeled class:
            <code>
            [AmendExpression("TOP {count}", 
                TargetExpression = TargetExpression.FieldList,
                AffixPosition = AffixPosition.Prefix,
                StatementTypes = StatementTypes.SelectSet)]]
            </code>
            The <paramref name="customTokens"/> key/value pairs could be set as follows at run-time:
            <code>
            int count = 200;
            customTokens = new[] { new KeyValuePair&lt;string, string&gt;("{count}", $"{count}") };
            </code>
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="connection"/> cannot be <c>null</c>.</exception>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.Connection">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.TableName">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.UnescapedTableName">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.HasPrimaryKeyIdentityField">
             <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.ExceptionHandler">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.UseCaseSensitiveFieldNames">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.PrimaryKeyCache">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.RootQueryRestriction">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.ApplyRootQueryRestrictionToUpdates">
            <inheritdoc/>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.ApplyRootQueryRestrictionToDeletes">
            <inheritdoc/>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.NewRecord">
            <summary>
            Creates a new modeled record instance, applying any modeled default values as specified by a
            <see cref="T:System.ComponentModel.DefaultValueAttribute"/> or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> on the
            model properties.
            </summary>
            <returns>New modeled record instance with any defined default values applied.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ApplyRecordDefaults(`0)">
            <summary>
            Applies the default values on the specified modeled table <paramref name="record"/>
            where any of the properties are marked with either <see cref="T:System.ComponentModel.DefaultValueAttribute"/>
            or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/>.
            </summary>
            <param name="record">Record to update.</param>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ApplyRecordUpdates(`0)">
            <summary>
            Applies the update values on the specified modeled table <paramref name="record"/> where
            any of the properties are marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/>.
            </summary>
            <param name="record">Record to update.</param>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecord(GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns a single modeled table record for the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified <paramref name="restriction"/>, <c>null</c> will be returned.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecord(System.String,GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns a single modeled table record for the specified <paramref name="restriction"/>,
            execution of query will apply <paramref name="orderByExpression"/>.
            </summary>
            <param name="orderByExpression">Field name expression used for sort order, include ASC or DESC as needed - does not include ORDER BY; defaults to primary keys.</param>
            <param name="restriction">Record restriction to apply.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified <paramref name="restriction"/>, <c>null</c> will be returned.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecordWhere(System.String,System.Object[])">
            <summary>
            Queries database and returns a single modeled table record for the specified SQL filter
            expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>A single modeled table record for the queried record.</returns>
            <remarks>
            <para>
            If no record is found for specified filter expression and parameters, <c>null</c> will be returned.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/>
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter with a limit of 1 record.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)">
            <summary>
            Queries database and returns modeled table records for the specified parameters.
            </summary>
            <param name="orderByExpression">Field name expression used for sort order, include ASC or DESC as needed - does not include ORDER BY; defaults to primary keys.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <param name="limit">Limit of number of record to return.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            If no record <paramref name="restriction"/> or <paramref name="limit"/> is provided, all rows will be returned.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecords(GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns modeled table records for the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/> only
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecordsWhere(System.String,System.Object[])">
            <summary>
            Queries database and returns modeled table records for the specified SQL filter expression
            and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,GSF.Data.Model.RecordRestriction,System.Int32)"/> only
            specifying the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,System.String)">
            <summary>
            Queries database and returns modeled table records for the specified sorting, paging and search parameters.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="page">Page number of records to return (1-based).</param>
            <param name="pageSize">Current page size.</param>
            <param name="searchText">Text to search.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This function is used for record paging. Primary keys are cached server-side, typically per user session,
            to maintain desired per-page sort order. Call <see cref="M:GSF.Data.Model.TableOperations`1.ClearPrimaryKeyCache"/> to manually clear cache
            when table contents are known to have changed.
            </para>
            <para>
            If the specified <paramref name="sortField"/> has been marked with <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            establishing the primary key cache operation will take longer to execute since query data will need to
            be downloaded locally and decrypted so the proper sort order can be determined.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)"/> where restriction
            is generated by <see cref="M:GSF.Data.Model.TableOperations`1.GetSearchRestriction(System.String)"/> using <paramref name="searchText"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)">
            <summary>
            Queries database and returns modeled table records for the specified sorting and paging parameters.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="page">Page number of records to return (1-based).</param>
            <param name="pageSize">Current page size.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>An enumerable of modeled table row instances for queried records.</returns>
            <remarks>
            <para>
            This function is used for record paging. Primary keys are cached server-side, typically per user session,
            to maintain desired per-page sort order. Call <see cref="M:GSF.Data.Model.TableOperations`1.ClearPrimaryKeyCache"/> to manually clear cache
            when table contents are known to have changed.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If the specified <paramref name="sortField"/> has been marked with <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            establishing the primary key cache operation will take longer to execute since query data will need to
            be downloaded locally and decrypted so the proper sort order can be determined.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecordCount(System.String)">
            <summary>
            Gets the record count for the modeled table based on search parameter.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            </summary>
            <param name="searchText">Text to search.</param>
            <returns>Record count for the modeled table based on search parameter.</returns>
            <remarks>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecordCount(GSF.Data.Model.RecordRestriction)"/> where restriction
            is generated by <see cref="M:GSF.Data.Model.TableOperations`1.GetSearchRestriction(System.String)"/>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecordCount(GSF.Data.Model.RecordRestriction)">
            <summary>
            Gets the record count for the specified <paramref name="restriction"/> - or - total record
            count for the modeled table if <paramref name="restriction"/> is <c>null</c>.
            </summary>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>
            Record count for the specified <paramref name="restriction"/> - or - total record count
            for the modeled table if <paramref name="restriction"/> is <c>null</c>.
            </returns>
            <remarks>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.QueryRecordCountWhere(System.String,System.Object[])">
            <summary>
            Gets the record count for the modeled table for the specified SQL filter expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Record count for the modeled table for the specified parameters.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecordCount(GSF.Data.Model.RecordRestriction)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)">
            <summary>
            Locally searches retrieved table records after queried from database for the specified sorting and search parameters.
            Search executed against fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/>.
            Function only typically used for record models that apply the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>.
            </summary>
            <param name="sortField">Field name to order-by.</param>
            <param name="ascending">Sort ascending flag; set to <c>false</c> for descending.</param>
            <param name="searchText">Text to search.</param>
            <param name="comparison"><see cref="T:System.StringComparison"/> to use when searching string fields; defaults to ordinal ignore case.</param>
            <returns>An array of modeled table row instances for the queried records that match the search.</returns>
            <remarks>
            <para>
            This function searches records locally after query from database, this way <see cref="T:GSF.Data.Model.SearchableAttribute"/> functionality will work
            even with fields that are modeled with the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> and use the <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            Primary keys for this function will not be cached server-side and this function will be slower and more expensive than similar calls
            to <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,System.String)"/>. Usage should be restricted to cases searching for field data that has
            been modeled with the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>.
            </para>
            <para>
            This function does not paginate records, instead a full list of search records is returned. User can cache returned records and page
            through them using the <see cref="M:GSF.Data.Model.TableOperations`1.GetPageOfRecords(`0[],System.Int32,System.Int32)"/> function. As a result, usage should be restricted to smaller data sets. 
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.IsSearchMatch(`0,System.String[])">
            <summary>
            Determines if any <paramref name="record"/> fields modeled with the <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="searchValues">Values to search.</param>
            <returns>
            <c>true</c> if any <paramref name="record"/> fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>; otherwise, <c>false</c>.
            </returns>
            <remarks>
            String comparisons will be ordinal ignoring case.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.IsSearchMatch(`0,System.StringComparison,System.String[])">
            <summary>
            Determines if any <paramref name="record"/> fields modeled with the <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="comparison"><see cref="T:System.StringComparison"/> to use when searching string fields.</param>
            <param name="searchValues">Values to search.</param>
            <returns>
            <c>true</c> if any <paramref name="record"/> fields modeled with <see cref="T:GSF.Data.Model.SearchableAttribute"/> match any of the
            specified <paramref name="searchValues"/>; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetPageOfRecords(`0[],System.Int32,System.Int32)">
            <summary>
            Gets the specified <paramref name="page"/> of records from the provided source <paramref name="records"/> array.
            </summary>
            <param name="records">Source records array.</param>
            <param name="page">Desired page of records.</param>
            <param name="pageSize">Desired page size.</param>
            <returns>A page of records.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.LoadRecord(System.Object[])">
            <summary>
            Creates a new modeled table record queried from the specified <paramref name="primaryKeys"/>.
            </summary>
            <param name="primaryKeys">Primary keys values of the record to load.</param>
            <returns>New modeled table record queried from the specified <paramref name="primaryKeys"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.LoadRecord(System.Data.DataRow)">
            <summary>
            Creates a new modeled table record queried from the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be loaded.</param>
            <returns>New modeled table record queried from the specified <paramref name="row"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ToDataTable(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Converts the given collection of <paramref name="records"/> into a <see cref="T:System.Data.DataTable"/>.
            </summary>
            <param name="records">The collection of records to be inserted into the data table.</param>
            <returns>A data table containing data from the given records.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.DeleteRecord(System.Object[])">
            <summary>
            Deletes the record referenced by the specified <paramref name="primaryKeys"/>.
            </summary>
            <param name="primaryKeys">Primary keys values of the record to load.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.DeleteRecord(`0)">
            <summary>
            Deletes the specified modeled table <paramref name="record"/> from the database.
            </summary>
            <param name="record">Record to delete.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.DeleteRecord(System.Data.DataRow)">
            <summary>
            Deletes the record referenced by the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be deleted.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.DeleteRecord(GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})">
            <summary>
            Deletes the records referenced by the specified <paramref name="restriction"/>.
            </summary>
            <param name="restriction">Record restriction to apply</param>
            <param name="applyRootQueryRestriction">
            Flag that determines if any existing <see cref="P:GSF.Data.Model.TableOperations`1.RootQueryRestriction"/> should be applied. Defaults to
            <see cref="P:GSF.Data.Model.TableOperations`1.ApplyRootQueryRestrictionToDeletes"/> setting.
            </param>
            <returns>Number of rows affected.</returns>
            <remarks>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="restriction"/> cannot be <c>null</c>.</exception>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.DeleteRecordWhere(System.String,System.Object[])">
            <summary>
            Deletes the records referenced by the specified SQL filter expression and parameters.
            </summary>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.DeleteRecord(GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.UpdateRecord(`0,GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})">
            <summary>
            Updates the database with the specified modeled table <paramref name="record"/>,
            any model properties marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will
            be evaluated and applied before the record is provided to the data source.
            </summary>
            <param name="record">Record to update.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <param name="applyRootQueryRestriction">
            Flag that determines if any existing <see cref="P:GSF.Data.Model.TableOperations`1.RootQueryRestriction"/> should be applied. Defaults to
            <see cref="P:GSF.Data.Model.TableOperations`1.ApplyRootQueryRestrictionToUpdates"/> setting.
            </param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.UpdateRecordWhere(`0,System.String,System.Object[])">
            <summary>
            Updates the database with the specified modeled table <paramref name="record"/>
            referenced by the specified SQL filter expression and parameters, any model properties
            marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied
            before the record is provided to the data source.
            </summary>
            <param name="record">Record to update.</param>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.UpdateRecord(`0,GSF.Data.Model.RecordRestriction,System.Nullable{System.Boolean})"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.UpdateRecord(System.Data.DataRow,GSF.Data.Model.RecordRestriction)">
            <summary>
            Updates the database with the specified <paramref name="row"/>, any model properties
            marked with <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied
            before the record is provided to the data source.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be updated.</param>
            <param name="restriction">Record restriction to apply, if any.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            If any of the <paramref name="restriction"/> parameters reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.UpdateRecordWhere(System.Data.DataRow,System.String,System.Object[])">
            <summary>
            Updates the database with the specified <paramref name="row"/> referenced by the
            specified SQL filter expression and parameters, any model properties marked with
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> will be evaluated and applied before
            the record is provided to the data source.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be updated.</param>
            <param name="filterExpression">
            Filter SQL expression for restriction as a composite format string - does not include WHERE.
            When escaping is needed for field names, use standard ANSI quotes.
            </param>
            <param name="parameters">Restriction parameter values.</param>
            <returns>Number of rows affected.</returns>
            <remarks>
            <para>
            Record restriction is only used for custom update expressions or in cases where modeled
            table has no defined primary keys.
            </para>
            <para>
            Each indexed parameter, e.g., "{0}", in the composite format <paramref name="filterExpression"/>
            will be converted into query parameters where each of the corresponding values in the
            <paramref name="parameters"/> collection will be applied as <see cref="T:System.Data.IDbDataParameter"/>
            values to an executed <see cref="T:System.Data.IDbCommand"/> query.
            </para>
            <para>
            If any of the specified <paramref name="parameters"/> reference a table field that is modeled with
            either an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>, then the function
            <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> will need to be called, replacing the target parameter with the
            returned value so that the field value will be properly set prior to executing the database function.
            </para>
            <para>
            If needed, field names that are escaped with standard ANSI quotes in the filter expression
            will be updated to reflect what is defined in the user model.
            </para>
            <para>
            This is a convenience call to <see cref="M:GSF.Data.Model.TableOperations`1.UpdateRecord(System.Data.DataRow,GSF.Data.Model.RecordRestriction)"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.AddNewRecord(`0)">
            <summary>
            Adds the specified modeled table <paramref name="record"/> to the database.
            </summary>
            <param name="record">Record to add.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.AddNewRecord(System.Data.DataRow)">
            <summary>
            Adds the specified <paramref name="row"/> to the database.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data to be added.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.AddNewOrUpdateRecord(`0)">
            <summary>
            Adds the specified modeled table <paramref name="record"/> to the database if the
            record has not defined any of its primary key values; otherwise, the database will
            be updated with the specified modeled table <paramref name="record"/>.
            </summary>
            <param name="record">Record to add or update.</param>
            <returns>Number of rows affected.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetPrimaryKeys(`0)">
            <summary>
            Gets the primary key values from the specified <paramref name="record"/>.
            </summary>
            <param name="record">Record of data to retrieve primary keys from.</param>
            <returns>Primary key values from the specified <paramref name="record"/>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetPrimaryKeys(System.Data.DataRow)">
            <summary>
            Gets the primary key values from the specified <paramref name="row"/>.
            </summary>
            <param name="row"><see cref="T:System.Data.DataRow"/> of queried data.</param>
            <returns>Primary key values from the specified <paramref name="row"/>.</returns>
            <remarks>
            Function returns raw data from <paramref name="row"/> without interpretation, it may be
            necessary to call <see cref="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)"/> for models with primary key
            fields that are marked with either <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or
            <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetFieldNames(System.Boolean)">
            <summary>
            Gets the field names for the table; if <paramref name="escaped"/> is <c>true</c>, also includes any escaping as defined in model.
            </summary>
            <param name="escaped">Flag that determines if field names should include any escaping as defined in the model; defaults to <c>true</c>.</param>
            <returns>Array of field names.</returns>
            <remarks>
            A field name will only be escaped if the model requested escaping with the <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetPrimaryKeyFieldNames(System.Boolean)">
            <summary>
            Get the primary key field names for the table; if <paramref name="escaped"/> is <c>true</c>, also includes any escaping as defined in model.
            </summary>
            <param name="escaped">Flag that determines if field names should include any escaping as defined in the model; defaults to <c>true</c>.</param>
            <returns>Array of primary key field names.</returns>
            <remarks>
            A field name will only be escaped if the model requested escaping with the <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.TryGetFieldAttribute``1(System.String,``0@)">
            <summary>
            Attempts to get the specified <paramref name="attribute"/> for a field.
            </summary>
            <typeparam name="TAttribute">Type of attribute to attempt to get.</typeparam>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attribute">Attribute that was found, if any.</param>
            <returns><c>true</c> if attribute was found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.TryGetFieldAttribute(System.String,System.Type,System.Attribute@)">
            <summary>
            Attempts to get the specified <paramref name="attributeType"/> for a field.
            </summary>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attributeType">Type of attribute to attempt to get.</param>
            <param name="attribute">Attribute that was found, if any.</param>
            <returns><c>true</c> if attribute was found; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="attributeType"/> is not an <see cref="T:System.Attribute"/>.</exception>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.FieldHasAttribute``1(System.String)">
            <summary>
            Determines if the specified field has an associated attribute.
            </summary>
            <typeparam name="TAttribute">Type of attribute to search for.</typeparam>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <returns><c>true</c> if field has attribute; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.FieldHasAttribute(System.String,System.Type)">
            <summary>
            Determines if the specified field has an associated attribute.
            </summary>
            <param name="fieldName">Name of field to use for attribute lookup.</param>
            <param name="attributeType">Type of attribute to search for.</param>
            <returns><c>true</c> if field has attribute; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="attributeType"/> is not an <see cref="T:System.Attribute"/>.</exception>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetFieldValue(`0,System.String)">
            <summary>
            Gets the value for the specified field.
            </summary>
            <param name="record">Modeled table record.</param>
            <param name="fieldName">Field name to retrieve.</param>
            <returns>Field value or <c>null</c> if field is not found.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetInterpretedFieldValue(System.String,System.Object)">
            <summary>
            Gets the interpreted value for the specified field, encrypting or returning any intermediate <see cref="T:System.Data.IDbDataParameter"/>
            value as needed.
            </summary>
            <param name="fieldName">Field name to retrieve.</param>
            <param name="value">Field value to use.</param>
            <returns>
            Interpreted value for the specified field, encrypting or returning any intermediate <see cref="T:System.Data.IDbDataParameter"/> value
            as needed.
            </returns>
            <remarks>
            <para>
            This function will need to be used when calling overloads that take a <see cref="T:GSF.Data.Model.RecordRestriction"/> or composite format
            filter expression where the <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> or <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/> have been modeled
            on a field referenced by one of the <see cref="T:GSF.Data.Model.RecordRestriction"/> parameters. Since the record restrictions are used
            with a free-form expression, the <see cref="T:GSF.Data.Model.TableOperations`1"/> class cannot be aware of the fields accessed in the
            expression without attempting to parse the expression which would be time-consuming and error-prone; as a result, users
            will need to be aware to call this function when using record restriction that references fields that are either marked
            for encryption or use a specific field data-type attribute.
            </para>
            <para>
            If a <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter references a field that is modeled with an <see cref="T:GSF.Data.Model.EncryptDataAttribute"/>,
            this function will need to be called, replacing the restriction parameter with the returned value, so that the field data
            value will be properly encrypted prior to executing the database function.
            </para>
            <para>
            If a <see cref="T:GSF.Data.Model.RecordRestriction"/> parameter references a field that is modeled with a <see cref="T:GSF.Data.Model.FieldDataTypeAttribute"/>,
            this function will need to be called, replacing the restriction parameter with the returned value, so that the field data
            type will be properly set prior to executing the database function.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetFieldType(System.String)">
            <summary>
            Gets the <see cref="T:System.Type"/> for the specified field.
            </summary>
            <param name="fieldName">Field name to retrieve.</param>
            <returns>Field <see cref="T:System.Type"/> or <c>null</c> if field is not found.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.FieldExists(System.String)">
            <summary>
            Gets flag that determines if the specified field exists.
            </summary>
            <param name="fieldName">Field name to check.</param>
            <returns><c>true</c> if field is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetSearchRestriction(System.String)">
            <summary>
            Generates a <see cref="T:GSF.Data.Model.RecordRestriction"/> based on fields marked with <see cref="T:GSF.Data.Model.SearchableAttribute"/> and specified <paramref name="searchText"/>.
            </summary>
            <param name="searchText">Text to search.</param>
            <returns><see cref="T:GSF.Data.Model.RecordRestriction"/> based on fields marked with <see cref="T:GSF.Data.Model.SearchableAttribute"/> and specified <paramref name="searchText"/>.</returns>
            <remarks>
            Any fields marked with both <see cref="T:GSF.Data.Model.SearchableAttribute"/> and <see cref="T:GSF.Data.Model.EncryptDataAttribute"/> will be automatically managed, i.e.,
            the returned <see cref="T:GSF.Data.Model.RecordRestriction"/> parameters will already apply any field based encryption as needed. Database query functions
            executed for fields marked for encryption will only be searched using <see cref="F:GSF.Data.Model.SearchType.FullValueMatch"/>, regardless of any otherwise
            specified value in the <see cref="T:GSF.Data.Model.SearchableAttribute"/> as encryption is handled locally. However, the <see cref="M:GSF.Data.Model.TableOperations`1.SearchRecords(System.String,System.Boolean,System.String,System.StringComparison)"/> function
            can be used to find data in encrypted fields that are marked for search with a <see cref="F:GSF.Data.Model.SearchType.LikeExpression"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetPrimaryKeyCacheSize">
            <summary>
            Calculates the size of the current primary key cache, in number of records.
            </summary>
            <returns>Number of records in the current primary key cache.</returns>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ClearPrimaryKeyCache">
            <summary>
            Clears the primary key cache for this <see cref="T:GSF.Data.Model.TableOperations`1"/> instance.
            </summary>
            <remarks>
            <para>
            This method is intended to be used in conjunction with calls to the overloads for
            <see cref="M:GSF.Data.Model.TableOperations`1.QueryRecords(System.String,System.Boolean,System.Int32,System.Int32,GSF.Data.Model.RecordRestriction)"/> which are
            used for record pagination.
            </para>
            <para>
            If record set is known to have changed outside purview of this class, this method
            should be called so that primary key cache can be reloaded.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.TableOperations`1.TypeRegistry">
            <summary>
            Gets or sets <see cref="T:ExpressionEvaluator.TypeRegistry"/> instance used for evaluating encountered instances
            of the <see cref="T:GSF.ComponentModel.ValueExpressionAttributeBase"/> on modeled table properties.
            </summary>
            <remarks>
            Accessing this property will create a unique type registry for the current type <typeparamref name="T"/> which
            will initially contain the values found in the <see cref="P:GSF.ComponentModel.ValueExpressionParser.DefaultTypeRegistry"/>
            and can be augmented with custom types. Set to <c>null</c> to restore use of the default type registry.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.LoadRecordFunction">
            <summary>
            Gets a delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.LoadRecord(System.Data.DataRow)"/> function for specified type <typeparamref name="T"/>.
            </summary>
            <returns>Delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.LoadRecord(System.Data.DataRow)"/> function.</returns>
            <remarks>
            This method is useful to deserialize a <see cref="T:System.Data.DataRow"/> into a type <typeparamref name="T"/> instance
            when no data connection is available, e.g., when using a deserialized <see cref="T:System.Data.DataSet"/>.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.NewRecordFunction">
            <summary>
            Gets a delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.NewRecord"/> function for specified type <typeparamref name="T"/>.
            </summary>
            <returns>Delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.NewRecord"/> function.</returns>
            <remarks>
            This method is useful to create a new type <typeparamref name="T"/> instance when no data connection
            is available, applying any modeled default values as specified by a <see cref="T:System.ComponentModel.DefaultValueAttribute"/>
            or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> on the model properties.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ApplyRecordDefaultsFunction">
            <summary>
            Gets a delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.ApplyRecordDefaults(`0)"/> method for specified type <typeparamref name="T"/>.
            </summary>
            <returns>Delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.ApplyRecordDefaults(`0)"/> method.</returns>
            <remarks>
            This method is useful to apply defaults values to an existing type <typeparamref name="T"/> instance when no data
            connection is available, applying any modeled default values as specified by a <see cref="T:System.ComponentModel.DefaultValueAttribute"/>
            or <see cref="T:GSF.ComponentModel.DefaultValueExpressionAttribute"/> on the model properties.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.ApplyRecordUpdatesFunction">
            <summary>
            Gets a delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.ApplyRecordUpdates(`0)"/> method for specified type <typeparamref name="T"/>.
            </summary>
            <returns>Delegate for the <see cref="M:GSF.Data.Model.TableOperations`1.ApplyRecordUpdates(`0)"/> method.</returns>
            <remarks>
            This method is useful to apply update values to an existing type <typeparamref name="T"/> instance when no data
            connection is available, applying any modeled update values as specified by instances of the
            <see cref="T:GSF.ComponentModel.UpdateValueExpressionAttribute"/> on the model properties.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.TableOperations`1.GetTableName">
            <summary>
            Gets table name for model applying model attributes <see cref="T:GSF.Data.Model.TableNameAttribute"/>, <see cref="T:GSF.Data.Model.ConfigFileTableNamePrefixAttribute"/>, and <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/>
            </summary>
            <returns>The table name describe using model attributes</returns>
        </member>
        <member name="T:GSF.Data.Model.UseEscapedNameAttribute">
            <summary>
            Defines an attribute that will request use of the escaped name of a modeled identifier, i.e.,
            a table or field name. Typically needed when identifier names are reserved SQL key words.
            </summary>
            <remarks>
            Applying [UseEscapedName] to a modeled table or field with no parameters will specify that an
            escaped name be used for all database types. Using a specific database type as a parameter
            to the attribute, e.g., [UseEscapedName(DatabaseType.SQLServer)], means the escaped name will
            only be applied to the specific database - however, the attribute allows multiple instances
            on the same identifier so you could specify that escaping only be applied to two databases,
            for example: [UseEscapedName(DatabaseType.SQLServer), UseEscapedName(DatabaseType.MySQL)].
            In the event multiple attributes have been applied to a modeled identifier where one instance
            has specified no target database type and others have, the system will assume to target all
            databases for escaping the name and ignore the specific targets.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.UseEscapedNameAttribute.TargetDatabaseType">
            <summary>
            Gets target <see cref="T:GSF.Data.DatabaseType"/> for using escaped name.
            </summary>
            <remarks>
            When value is <c>null</c>, escaped name will be applied to all database types.
            </remarks>
        </member>
        <member name="P:GSF.Data.Model.UseEscapedNameAttribute.UseAnsiQuotes">
            <summary>
            Gets or sets flag that determines if double quotes should be used as the identifier delimiter,
            per SQL-99 standard, regardless of database type. Defaults to <c>true</c> except for MySQL.
            </summary>
            <remarks>
            If <c>true</c>, ANSI standard double-quotes will be used for escaping the identifier; otherwise,
            the escaping identifier will be based on the connected database type.
            </remarks>
        </member>
        <member name="M:GSF.Data.Model.UseEscapedNameAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/> that will request use of escaped name for any database.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.UseEscapedNameAttribute.#ctor(GSF.Data.DatabaseType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.UseEscapedNameAttribute"/> that will request use of escaped name for the
            specified <see cref="T:GSF.Data.DatabaseType"/>.
            </summary>
            <param name="targetDatabaseType">Target <see cref="T:GSF.Data.DatabaseType"/> for escaping identifier.</param>
        </member>
        <member name="T:GSF.Data.Model.ViewOnlyAttribute">
            <summary>
            Defines an attribute that will allow setting View only functions for a modeled table.
            </summary>
        </member>
        <member name="P:GSF.Data.Model.ViewOnlyAttribute.ViewOnly">
            <summary>
            Gets field name to use for property.
            </summary>
        </member>
        <member name="M:GSF.Data.Model.ViewOnlyAttribute.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Model.ViewOnlyAttribute"/>.
            </summary>
        </member>
        <member name="T:GSF.Data.NamespaceDoc">
            <summary>
            Contains extension functions used to simplify and standardize database access.
            </summary>
        </member>
        <member name="T:GSF.Data.TableType">
            <summary>
            Specifies the type of object in database
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.Table">
            <summary>
            Database object is DataTable
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.View">
            <summary>
            Database object is View
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.SystemTable">
            <summary>
            Database object is System Defined Table
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.SystemView">
            <summary>
            Database object is System Defined View
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.Alias">
            <summary>
            Database object is Alias
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.Synonym">
            <summary>
            Database object is Synonym
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.GlobalTemp">
            <summary>
            Database object is Global Temp 
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.LocalTemp">
            <summary>
            Database object is local Temp
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.Link">
            <summary>
            Database object is Link
            </summary>
        </member>
        <member name="F:GSF.Data.TableType.Undetermined">
            <summary>
            Database object is not defined
            </summary>
        </member>
        <member name="T:GSF.Data.ReferentialAction">
            <summary>
            Specified the type of referential action on database object/Tables
            </summary>
        </member>
        <member name="F:GSF.Data.ReferentialAction.Cascade">
            <summary>
            Action Type is cascade
            </summary>
        </member>
        <member name="F:GSF.Data.ReferentialAction.SetNull">
            <summary>
            Action Type is to set null
            </summary>
        </member>
        <member name="F:GSF.Data.ReferentialAction.SetDefault">
            <summary>
            Action Type is to set default
            </summary>
        </member>
        <member name="F:GSF.Data.ReferentialAction.NoAction">
            <summary>
            No Action
            </summary>
        </member>
        <member name="T:GSF.Data.Field">
            <summary>
            Represents a database field.
            </summary>
        </member>
        <member name="M:GSF.Data.Field.#ctor(System.String,System.Data.OleDb.OleDbType)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Field"/>.
            </summary>
            <param name="Name">Field name.</param>
            <param name="Type">OLEDB data type for field.</param>
        </member>
        <member name="P:GSF.Data.Field.Name">
            <summary>
            Get Field Name 
            </summary>
        </member>
        <member name="P:GSF.Data.Field.SQLEscapedName">
            <summary>
            Get SQL escaped name of <see cref="P:GSF.Data.Field.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Type">
            <summary>
            Get <see cref="T:System.Data.OleDb.OleDbType"/> Type
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Ordinal">
            <summary>
            Get or set file ordinal
            </summary>
        </member>
        <member name="P:GSF.Data.Field.AllowsNulls">
            <summary>
            Get or set Allow Null flag
            </summary>
        </member>
        <member name="P:GSF.Data.Field.AutoIncrement">
            <summary>
            Get or set Auto increment flag
            </summary>
        </member>
        <member name="P:GSF.Data.Field.AutoIncrementSeed">
            <summary>
            Get or set Auto increment seed
            </summary>
        </member>
        <member name="P:GSF.Data.Field.AutoIncrementStep">
            <summary>
            Get or set Auto increment step
            </summary>
        </member>
        <member name="P:GSF.Data.Field.HasDefault">
            <summary>
            Get or set has default value flag
            </summary>
        </member>
        <member name="P:GSF.Data.Field.DefaultValue">
            <summary>
            Get or set default value
            </summary>
        </member>
        <member name="P:GSF.Data.Field.MaxLength">
            <summary>
            Get or set maximum length of field
            </summary>
        </member>
        <member name="P:GSF.Data.Field.NumericPrecision">
            <summary>
            Get or set numeric precision
            </summary>
        </member>
        <member name="P:GSF.Data.Field.NumericScale">
            <summary>
            Get or set Numeric scale
            </summary>
        </member>
        <member name="P:GSF.Data.Field.DateTimePrecision">
            <summary>
            Get or set date time precision
            </summary>
        </member>
        <member name="P:GSF.Data.Field.ReadOnly">
            <summary>
            Get or set read-only flag
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Unique">
            <summary>
            Get or set for unique
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Description">
            <summary>
            Get or set description
            </summary>
        </member>
        <member name="P:GSF.Data.Field.AutoIncrementTranslations">
            <summary>
            Get or set auto increment translation
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Value">
            <summary>
            Get or set value of <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Field.IsPrimaryKey">
            <summary>
            Get or set flag to check <see cref="T:GSF.Data.Field"/> is primary key or not
            </summary>
        </member>
        <member name="P:GSF.Data.Field.PrimaryKeyOrdinal">
            <summary>
            Get or set ordinal for Primary key field
            </summary>
        </member>
        <member name="P:GSF.Data.Field.PrimaryKeyName">
            <summary>
            Get or set primary key name
            </summary>
        </member>
        <member name="P:GSF.Data.Field.ForeignKeys">
            <summary>
            Get or set list of <see cref="T:GSF.Data.ForeignKeyFields"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Field.ReferencedBy">
            <summary>
            Get or set - check <see cref="T:GSF.Data.Field"/> is reference by
            </summary>
        </member>
        <member name="P:GSF.Data.Field.IsForeignKey">
            <summary>
            Get or set foreign key flag. if <see cref="T:GSF.Data.Field"/> is <see cref="P:GSF.Data.Field.ReferencedBy"/> then true else false
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Parent">
            <summary>
            Get or set <see cref="T:GSF.Data.Fields"/> parent
            </summary>
        </member>
        <member name="P:GSF.Data.Field.Table">
            <summary>
            Get or set <see cref="T:GSF.Data.Field"/>'s parent <see cref="P:GSF.Data.Field.Table"/>
            </summary>
        </member>
        <member name="M:GSF.Data.Field.CompareTo(System.Object)">
            <summary>
            Compare <paramref name="obj"/> ordinal to current field <see cref="P:GSF.Data.Field.Ordinal"/>
            </summary>
            <param name="obj">Check <paramref name="obj"/> type <see cref="T:System.Object"/>, if it is type of <see cref="T:GSF.Data.Field"/> then compare to <see cref="P:GSF.Data.Field.Ordinal"/> of <paramref name="obj"/> else throw <see cref="T:System.ArgumentException"/></param>
            <returns></returns>
        </member>
        <member name="P:GSF.Data.Field.SQLEncodedValue">
            <summary>
            Change <see cref="T:GSF.Data.Field"/> value to encoded string. It will check <see cref="P:GSF.Data.Field.Type"/>  and <see cref="P:GSF.Data.Field.Parent"/> value before convert to <see cref="T:System.Data.OleDb.OleDbType"/> compatible value
            </summary>
        </member>
        <member name="P:GSF.Data.Field.NonNullNativeValue">
            <summary>
            Gets the native value for the field (SQL Encoded).
            </summary>
        </member>
        <member name="M:GSF.Data.Field.GetReferentialAction(System.String)">
            <summary>
            Get information about referential action
            </summary>
            <param name="action">check <paramref name="action"/> and return to appropriate <see cref="T:GSF.Data.ReferentialAction"/>.</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.ForeignKeyField">
            <summary>
            Represents a database foreign key field.
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.Parent">
            <summary>
            Get foreign key parent information
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.PrimaryKey">
            <summary>
            Get or set Primary key field
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.ForeignKey">
            <summary>
            Get or set Foreign key field
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.Ordinal">
            <summary>
            Get or set ordinal of <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.KeyName">
            <summary>
            Get or set name of key
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.UpdateRule">
            <summary>
            Get or set update rule for <see cref="T:GSF.Data.ReferentialAction"/> for <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyField.DeleteRule">
            <summary>
            Get or set delete rule for <see cref="T:GSF.Data.ReferentialAction"/> for <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="T:GSF.Data.ForeignKeyFields">
            <summary>
            Represents a collection of <see cref="T:GSF.Data.ForeignKeyField"/> values.
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.Parent">
            <summary>
            Get or set field parent information
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.FieldDictionary">
            <summary>
            Get of Set Fields names to lookups
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.FieldsList">
            <summary>
            Get or set field indexes to lookups
            </summary>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.Item(System.Int32)">
            <summary>
            Get the current index of foreign key field information
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.Item(System.String)">
            <summary>
            Get the current <see cref="T:GSF.Data.ForeignKeyField"/> information by name
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="P:GSF.Data.ForeignKeyFields.Count">
            <summary>
            Get count of <see cref="T:GSF.Data.ForeignKeyFields"/> list
            </summary>
        </member>
        <member name="M:GSF.Data.ForeignKeyFields.GetEnumerator">
            <summary>
            Get <see cref="T:System.Collections.IEnumerator"/> of field lists
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.ForeignKeyFields.Add(GSF.Data.ForeignKeyField)">
            <summary>
            Add a <see cref="T:GSF.Data.ForeignKeyField"/> to list object
            </summary>
            <param name="newField"><paramref name="newField"/> is type of <see cref="T:GSF.Data.ForeignKeyField"/></param>
        </member>
        <member name="M:GSF.Data.ForeignKeyFields.GetList">
            <summary>
            Get comma separated <see cref="T:System.String"/> of <see cref="T:GSF.Data.ForeignKeyField"/>
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.Fields">
            <summary>
            Represents a collection of <see cref="T:GSF.Data.Field"/> values.
            </summary>
        </member>
        <member name="P:GSF.Data.Fields.Parent">
            <summary>
            Get <see cref="T:GSF.Data.Field"/>'s parent <see cref="T:GSF.Data.Table"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Fields.FieldDictionary">
            <summary>
            Get or set to fields lookup 
            </summary>
        </member>
        <member name="P:GSF.Data.Fields.FieldList">
            <summary>
            Get or set Fields index lookup
            </summary>
        </member>
        <member name="P:GSF.Data.Fields.Item(System.Int32)">
            <summary>
            Indexer property of Field
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:GSF.Data.Fields.Item(System.String)">
            <summary>
            Indexer property of Field by Name
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="P:GSF.Data.Fields.Count">
            <summary>
            Get count of collection of <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="M:GSF.Data.Fields.Add(GSF.Data.Field)">
            <summary>
            Add new <see cref="T:GSF.Data.Field"/> to this collection.
            </summary>
            <param name="newField">Field to add.</param>
        </member>
        <member name="M:GSF.Data.Fields.Remove(GSF.Data.Field)">
            <summary>
            Removes <see cref="T:GSF.Data.Field"/> from the collection.
            </summary>
            <param name="field">Field to remove.</param>
        </member>
        <member name="M:GSF.Data.Fields.Clear">
            <summary>
            Clears the field list.
            </summary>
        </member>
        <member name="M:GSF.Data.Fields.GetEnumerator">
            <summary>
            Get <see cref="T:System.Collections.Generic.IEnumerator`1"/> type of <see cref="T:GSF.Data.Field"/> list.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Fields.GetList(System.Boolean,System.Func{System.String,System.String})">
            <summary>
            Get comma separated list of <see cref="T:GSF.Data.Field"/>
            </summary>
            <param name="returnAutoInc"></param>
            <param name="sqlEscapeFunction"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Fields.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Get <see cref="T:System.Collections.IEnumerator"/> type of <see cref="T:GSF.Data.Field"/> list.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.Table">
            <summary>
            Get data table information for data processing
            </summary>
        </member>
        <member name="M:GSF.Data.Table.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Table"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Table.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Table"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Table.#ctor(System.String,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Table"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Fields">
            <summary>
            Get or set list of <see cref="P:GSF.Data.Table.Fields"/> for <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.MapName">
            <summary>
            Get or set name of <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Process">
            <summary>
            Get or set process flag
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Priority">
            <summary>
            Get or set priority 
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IdentitySQL">
            <summary>
            Get or set identity SQL for <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Name">
            <summary>
            Get name of <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.SQLEscapedName">
            <summary>
            Get SQL escaped name of <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.FullName">
            <summary>
            Get or set full name of <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Catalog">
            <summary>
            Get or set catalog information for <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Schema">
            <summary>
            Get or set schema name
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Type">
            <summary>
            Get <see cref="T:GSF.Data.TableType"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Description">
            <summary>
            Get or set description
            </summary>
        </member>
        <member name="P:GSF.Data.Table.RowCount">
            <summary>
            Get row count in <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Parent">
            <summary>
            Get parent <see cref="T:GSF.Data.Table"/> information
            </summary>
        </member>
        <member name="P:GSF.Data.Table.Connection">
            <summary>
            Get <see cref="T:System.Data.IDbConnection"/> of object
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IsView">
            <summary>
            Check for object is view
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IsSystem">
            <summary>
            Check for system tables and system views
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IsTemporary">
            <summary>
            Get flag for <see cref="T:GSF.Data.TableType"/>  for temp
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IsLinked">
            <summary>
            Get flag for <see cref="T:GSF.Data.TableType"/> alias or link
            </summary>
        </member>
        <member name="P:GSF.Data.Table.PrimaryKeyFieldCount">
            <summary>
            Get count for primary key <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.ReferencedByForeignKeys">
            <summary>
            Get flag that determines if the table has any foreign keys.
            </summary>
        </member>
        <member name="P:GSF.Data.Table.IsForeignKeyTable">
            <summary>
            Get flag of any foreign key <see cref="T:GSF.Data.Field"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Table.HasAutoIncField">
            <summary>
            Gets flag that determines if the <see cref="T:GSF.Data.Table"/> has an auto-increment field.
            </summary>
        </member>
        <member name="P:GSF.Data.Table.AutoIncField">
            <summary>
            Gets auto-increment field for the <see cref="T:GSF.Data.Table"/>, if any.
            </summary>
        </member>
        <member name="M:GSF.Data.Table.UsesDefaultSchema">
            <summary>
            Get schema information flag based on <see cref="T:GSF.Data.DatabaseType"/>
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.ToString">
            <summary>
            Gets display name for table.
            </summary>
        </member>
        <member name="M:GSF.Data.Table.CompareTo(System.Object)">
            <summary>
            Compare <see cref="T:System.Object"/> type of <paramref name="obj"/> with <see cref="T:GSF.Data.Table"/> object <see cref="P:GSF.Data.Table.Priority"/>
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.CompareTo(GSF.Data.Table)">
            <summary>
            Compare Table with other <see cref="T:GSF.Data.Table"/> object <see cref="P:GSF.Data.Table.Priority"/>
            </summary>
            <param name="other"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.IsReferencedBy(GSF.Data.Table,System.Collections.Generic.List{GSF.Data.Table})">
            <summary>
            Check for reference flag, whether table has reference in another table
            </summary>
            <param name="otherTable"></param>
            <param name="tableStack"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.IsReferencedBy(GSF.Data.Table)">
            <summary>
            Check for direct table reference by <paramref name="otherTable"/>.
            </summary>
            <param name="otherTable">Table to check for relation.</param>
            <returns><c>true</c> if directly referenced; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Table.IsReferencedVia(GSF.Data.Table)">
            <summary>
            Checks for indirect table reference through <paramref name="otherTable"/>.
            </summary>
            <param name="otherTable">Table to check for relation.</param>
            <returns><c>true</c> if indirectly referenced; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Data.Table.DefinePrimaryKey(System.String,System.Int32,System.String)">
            <summary>
            check for primary key field in <see cref="T:GSF.Data.Table"/>
            </summary>
            <param name="fieldName"></param>
            <param name="primaryKeyOrdinal"></param>
            <param name="primaryKeyName"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.DefineForeignKey(System.String,System.String,System.String,System.Int32,System.String,GSF.Data.ReferentialAction,GSF.Data.ReferentialAction)">
            <summary>
            Check for <see cref="T:GSF.Data.ForeignKeyField"/>
            </summary>
            <param name="primaryKeyFieldName"></param>
            <param name="foreignKeyTableName"></param>
            <param name="foreignKeyFieldName"></param>
            <param name="foreignKeyOrdinal"></param>
            <param name="foreignKeyName"></param>
            <param name="foreignKeyUpdateRule"></param>
            <param name="foreignKeyDeleteRule"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Table.ReevalulateIdentitySQL">
            <summary>
            Re-evaluates identity SQL for database type.
            </summary>
        </member>
        <member name="M:GSF.Data.Table.CalculateRowCount">
            <summary>
            Calculates row count.
            </summary>
        </member>
        <member name="T:GSF.Data.Tables">
            <summary>
            List of <see cref="T:GSF.Data.Table"/> collection
            </summary>
        </member>
        <member name="P:GSF.Data.Tables.Count">
            <summary>
            Gets table count.
            </summary>
        </member>
        <member name="P:GSF.Data.Tables.Parent">
            <summary>
            Gets or sets parent <see cref="T:GSF.Data.Schema"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Tables.Add(GSF.Data.Table)">
            <summary>
            Adds new table.
            </summary>
            <param name="table">Table to add.</param>
        </member>
        <member name="M:GSF.Data.Tables.Remove(GSF.Data.Table)">
            <summary>
            Removes table.
            </summary>
            <param name="table">Table to remove.</param>
        </member>
        <member name="M:GSF.Data.Tables.Clear">
            <summary>
            Clears all tables.
            </summary>
        </member>
        <member name="P:GSF.Data.Tables.Item(System.Int32)">
            <summary>
            Gets table at index.
            </summary>
            <param name="index">Index of table</param>
            <returns>Table at index.</returns>
        </member>
        <member name="P:GSF.Data.Tables.Item(System.String)">
            <summary>
            Gets table by name.
            </summary>
            <param name="name">Table name.</param>
            <returns>Table with specified name.</returns>
        </member>
        <member name="M:GSF.Data.Tables.FindByMapName(System.String)">
            <summary>
            Finds table by mapped named.
            </summary>
            <param name="mapName">Mapped table name.</param>
            <returns>Table with mapped name.</returns>
        </member>
        <member name="M:GSF.Data.Tables.GetEnumerator">
            <summary>
            Gets table enumerator.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Tables.GetList">
            <summary>
            Gets table field list.
            </summary>
            <returns>Comma separated field list.</returns>
        </member>
        <member name="T:GSF.Data.Tables.ReferentialOrderComparer">
            <summary>
            Check for referential order of <see cref="T:GSF.Data.Table"/>
            </summary>
        </member>
        <member name="F:GSF.Data.Tables.ReferentialOrderComparer.Default">
            <summary>
            Default property of object
            </summary>
        </member>
        <member name="M:GSF.Data.Tables.ReferentialOrderComparer.Compare(GSF.Data.Table,GSF.Data.Table)">
            <summary>
            Allows tables to be sorted in proper referential integrity process object
            </summary>
            <param name="table1">First table to compare.</param>
            <param name="table2">Second table to compare.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Data.Tables.ReferentialOrderComparer.ForeignKeyCompare(GSF.Data.Table,GSF.Data.Table)">
            <summary>
            Compare foreign key comparison of tables
            </summary>
            <param name="table1"></param>
            <param name="table2"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Data.Schema">
            <summary>
            Get information about database schema
            </summary>
        </member>
        <member name="F:GSF.Data.Schema.NoRestriction">
            <summary>
            Defines a table filter that specifies no restrictions.
            </summary>
        </member>
        <member name="M:GSF.Data.Schema.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Data.Schema"/>.
            </summary>
        </member>
        <member name="M:GSF.Data.Schema.#ctor(System.String,GSF.Data.TableType,System.Boolean,System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.Data.Schema"/>.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.Tables">
            <summary>
            Get or set - information to process <see cref="P:GSF.Data.Schema.Tables"/>
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.ConnectionString">
            <summary>
            OLEDB connection string to data source to analyze.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.TableTypeRestriction">
            <summary>
            Set this value to restrict the types of tables returned in your schema.  Table types can be OR'd together to create this table type restriction.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.ImmediateClose">
            <summary>
            Set this value to False to keep the schema connection used during analysis open after analysis is complete.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.DataSourceType">
            <summary>
            Type of database specified in connect string.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.AllowTextNulls">
            <summary>
            Set this value to False to convert all Null values encountered in character fields to empty strings.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.AllowNumericNulls">
            <summary>
            Set this value to False to convert all Null values encountered in numeric fields to zeros.
            </summary>
        </member>
        <member name="P:GSF.Data.Schema.Connection">
            <summary>
            <see cref="T:System.Data.IDbConnection"/> to open a database connection
            </summary>
        </member>
        <member name="M:GSF.Data.Schema.SQLEscapeName(System.String)">
            <summary>
            Escapes a field or table name.
            </summary>
            <param name="name">Name to escape.</param>
            <returns>Escaped <paramref name="name"/>.</returns>
        </member>
        <member name="M:GSF.Data.Schema.Analyze">
            <summary>
            Analyze data schema for processing data
            </summary>
        </member>
        <member name="M:GSF.Data.Schema.SchemaConnection_StateChange(System.Object,System.Data.StateChangeEventArgs)">
            <summary>
            <see cref="T:System.Data.IDbConnection"/> state change event will fire if it unexpectedly close connection while processing.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:GSF.Data.Schema.Close">
            <summary>
            Close <see cref="T:System.Data.IDbConnection"/> 
            </summary>
        </member>
        <member name="M:GSF.Data.Schema.OpenConnection(System.String)">
            <summary>
            Opens an ADO connection.
            </summary>
            <param name="connectionString">ADO connection string.</param>
            <returns>Opened connection.</returns>
        </member>
        <member name="M:GSF.Data.Schema.OpenConnection(System.String,GSF.Data.DatabaseType@,GSF.Data.Schema@,System.Boolean@)">
            <summary>
            Opens an ADO connection.
            </summary>
            <param name="connectionString">ADO connection string.</param>
            <param name="databaseType">Database type.</param>
            <param name="deserializedSchema">The deserialized schema.</param>
            <param name="isAdoConnection">Flag that determines if connection is ADO.</param>
            <returns>Opened connection.</returns>
        </member>
        <member name="T:GSF.Data.DataRowExtensions">
            <summary>
            Static extension methods for <see cref="T:System.Data.DataRow"/> that will automatically 
            type cast fields to the desired value. This is superior to DataSetExtensions.dll
            because if the field type does not exactly match in that case, a cast exception occurs.
            </summary>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByteArray(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByteArray(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByteArray(System.Data.DataRow,System.String,System.Byte[])">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByteArray(System.Data.DataRow,System.Int32,System.Byte[])">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsUInt32(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsUInt32(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsUInt32(System.Data.DataRow,System.String,System.UInt32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsUInt32(System.Data.DataRow,System.Int32,System.UInt32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt32(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt32(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt32(System.Data.DataRow,System.String,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt32(System.Data.DataRow,System.Int32,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByte(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByte(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByte(System.Data.DataRow,System.String,System.Byte)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsByte(System.Data.DataRow,System.Int32,System.Byte)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt16(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt16(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt16(System.Data.DataRow,System.String,System.Int16)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt16(System.Data.DataRow,System.Int32,System.Int16)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsGuid(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsGuid(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsGuid(System.Data.DataRow,System.String,System.Guid)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsGuid(System.Data.DataRow,System.Int32,System.Guid)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt64(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt64(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt64(System.Data.DataRow,System.String,System.Int64)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsInt64(System.Data.DataRow,System.Int32,System.Int64)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsBoolean(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsBoolean(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsBoolean(System.Data.DataRow,System.String,System.Boolean)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsBoolean(System.Data.DataRow,System.Int32,System.Boolean)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsString(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsString(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsString(System.Data.DataRow,System.String,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsString(System.Data.DataRow,System.Int32,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDateTime(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDateTime(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDateTime(System.Data.DataRow,System.String,System.DateTime)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDateTime(System.Data.DataRow,System.Int32,System.DateTime)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDouble(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDouble(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDouble(System.Data.DataRow,System.String,System.Double)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDouble(System.Data.DataRow,System.Int32,System.Double)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDecimal(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDecimal(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDecimal(System.Data.DataRow,System.String,System.Decimal)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsDecimal(System.Data.DataRow,System.Int32,System.Decimal)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsSingle(System.Data.DataRow,System.String)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsSingle(System.Data.DataRow,System.Int32)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <returns>null if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsSingle(System.Data.DataRow,System.String,System.Single)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="columnName">the column name</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="M:GSF.Data.DataRowExtensions.AsSingle(System.Data.DataRow,System.Int32,System.Single)">
            <summary>
            Attempts to type cast the specified column of a <see param="row"/> to the defined type.
            </summary>
            <param name="row">the row</param>
            <param name="ordinal">the index of the column</param>
            <param name="valueIfNull">the value to replace if null</param>
            <returns><see param="valueIfNull"/> if DBNull, the value otherwise.</returns>
        </member>
        <member name="T:GSF.DateTimeExtensions">
            <summary>
            Defines extension functions related to Date/Time manipulation.
            </summary>
        </member>
        <member name="M:GSF.DateTimeExtensions.UtcTimeIsValid(System.DateTime,System.Double,System.Double)">
            <summary>Determines if the specified UTC time is valid, by comparing it to the system clock.</summary>
            <param name="utcTime">UTC time to test for validity.</param>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be
            valid.</param>
            <returns>True, if time is within the specified range.</returns>
            <remarks>
            <para>Time is considered valid if it exists within the specified lag time/lead time range of current
            time.</para>
            <para>Note that lag time and lead time must be greater than zero, but can be set to sub-second
            intervals.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime and LeadTime must be greater than zero, but can
            be less than one.</exception>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeIsValid(System.DateTime,System.Double,System.Double)">
            <summary>Determines if the specified local time is valid, by comparing it to the system clock.</summary>
            <param name="localTime">Time to test for validity.</param>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be
            valid.</param>
            <returns>True, if time is within the specified range.</returns>
            <remarks>
            <para>Time is considered valid if it exists within the specified lag time/lead time range of current
            time.</para>
            <para>Note that lag time and lead time must be greater than zero, but can be set to sub-second
            intervals.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime and LeadTime must be greater than zero, but can
            be less than one.</exception>
        </member>
        <member name="M:GSF.DateTimeExtensions.TimeIsValid(System.DateTime,System.DateTime,System.Double,System.Double)">
            <summary>Determines if time is valid, by comparing it to the specified current time.</summary>
            <param name="testTime">Time to test for validity.</param>
            <param name="currentTime">Specified current time (e.g., could be Date.Now or Date.UtcNow).</param>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be
            valid.</param>
            <returns>True, if time is within the specified range.</returns>
            <remarks>
            <para>Time is considered valid if it exists within the specified lag time/lead time range of current
            time.</para>
            <para>Note that lag time and lead time must be greater than zero, but can be set to sub-second
            intervals.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime and LeadTime must be greater than zero, but can
            be less than one.</exception>
        </member>
        <member name="M:GSF.DateTimeExtensions.DistanceBeyondSecond(System.DateTime)">
            <summary>Gets the distance, in <see cref="T:GSF.Ticks"/>, beyond the top of the <paramref name="timestamp"/> second.</summary>
            <param name="timestamp">Timestamp to evaluate.</param>
            <returns>Timestamp's tick distance from the top of the second.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.BaselinedTimestamp(System.DateTime,GSF.BaselineTimeInterval)">
            <summary>Creates a baselined timestamp which begins at the specified time interval.</summary>
            <param name="timestamp">Timestamp to baseline.</param>
            <param name="interval">
            <see cref="T:GSF.BaselineTimeInterval"/> to which <paramref name="timestamp"/> should be baselined.
            </param>
            <returns>
            A new <see cref="T:System.DateTime"/> value that represents a baselined timestamp that begins at the
            specified <see cref="T:GSF.BaselineTimeInterval"/>.
            </returns>
            <remarks>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Second"/> would return the <see cref="T:System.DateTime"/>
            value starting at zero milliseconds.<br/>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Minute"/> would return the <see cref="T:System.DateTime"/>
            value starting at zero seconds and milliseconds.<br/>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Hour"/> would return the <see cref="T:System.DateTime"/>
            value starting at zero minutes, seconds and milliseconds.<br/>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Day"/> would return the <see cref="T:System.DateTime"/>
            value starting at zero hours, minutes, seconds and milliseconds.<br/>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Month"/> would return the <see cref="T:System.DateTime"/>
            value starting at day one, zero hours, minutes, seconds and milliseconds.<br/>
            Baselining to the <see cref="F:GSF.BaselineTimeInterval.Year"/> would return the <see cref="T:System.DateTime"/>
            value starting at month one, day one, zero hours, minutes, seconds and milliseconds.
            </remarks>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeToEasternTime(System.DateTime)">
            <summary>Converts given local time to Eastern time.</summary>
            <param name="timestamp">Timestamp in local time to be converted to Eastern time.</param>
            <returns>
            <para>Timestamp in Eastern time.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeToCentralTime(System.DateTime)">
            <summary>Converts given local time to Central time.</summary>
            <param name="timestamp">Timestamp in local time to be converted to Central time.</param>
            <returns>
            <para>Timestamp in Central time.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeToMountainTime(System.DateTime)">
            <summary>Converts given local time to Mountain time.</summary>
            <param name="timestamp">Timestamp in local time to be converted to Mountain time.</param>
            <returns>
            <para>Timestamp in Mountain time.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeToPacificTime(System.DateTime)">
            <summary>Converts given local time to Pacific time.</summary>
            <param name="timestamp">Timestamp in local time to be converted to Pacific time.</param>
            <returns>
            <para>Timestamp in Pacific time.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeToUniversalTime(System.DateTime)">
            <summary>Converts given local time to Universally Coordinated Time (a.k.a., Greenwich Meridian Time).</summary>
            <remarks>This function is only provided for the sake of completeness. All it does is call the
            "ToUniversalTime" property on the given timestamp.</remarks>
            <param name="timestamp">Timestamp in local time to be converted to Universal time.</param>
            <returns>
            <para>Timestamp in UniversalTime (a.k.a., GMT).</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeTo(System.DateTime,System.String)">
            <summary>Converts given local time to time in specified time zone.</summary>
            <param name="timestamp">Timestamp in local time to be converted to time in specified time zone.</param>
            <param name="destinationTimeZoneStandardName">Standard name of desired end time zone for given
            timestamp.</param>
            <returns>
            <para>Timestamp in specified time zone.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.LocalTimeTo(System.DateTime,System.TimeZoneInfo)">
            <summary>Converts given local time to time in specified time zone.</summary>
            <param name="timestamp">Timestamp in local time to be converted to time in specified time zone.</param>
            <param name="destinationTimeZone">Desired end time zone for given timestamp.</param>
            <returns>
            <para>Timestamp in specified time zone.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeToEasternTime(System.DateTime)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to Eastern time timestamp.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <returns>The timestamp in Eastern time.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeToCentralTime(System.DateTime)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to Central time timestamp.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <returns>The timestamp in Central time.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeToMountainTime(System.DateTime)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to Mountain time timestamp.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <returns>The timestamp in Mountain time.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeToPacificTime(System.DateTime)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to Pacific time timestamp.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <returns>The timestamp in Pacific time.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeTo(System.DateTime,System.String)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to timestamp in specified time zone.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <param name="destinationTimeZoneStandardName">The time zone standard name to which the Universally
            Coordinated Time timestamp is to be converted to.</param>
            <returns>The timestamp in the specified time zone.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.UniversalTimeTo(System.DateTime,System.TimeZoneInfo)">
            <summary>
            Converts the specified Universally Coordinated Time timestamp to timestamp in specified time zone.
            </summary>
            <param name="universalTimestamp">The Universally Coordinated Time timestamp that is to be converted.</param>
            <param name="destinationTimeZone">The time zone to which the Universally Coordinated Time timestamp
            is to be converted to.</param>
            <returns>The timestamp in the specified time zone.</returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.TimeZoneToTimeZone(System.DateTime,System.String,System.String)">
            <summary>Converts given timestamp from one time zone to another using standard names for time zones.</summary>
            <param name="timestamp">Timestamp in source time zone to be converted to time in destination time zone.</param>
            <param name="sourceTimeZoneStandardName">Standard name of time zone for given source timestamp.</param>
            <param name="destinationTimeZoneStandardName">Standard name of desired end time zone for given source
            timestamp.</param>
            <returns>
            <para>Timestamp in destination time zone.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.TimeZoneToTimeZone(System.DateTime,System.TimeZoneInfo,System.TimeZoneInfo)">
            <summary>Converts given timestamp from one time zone to another.</summary>
            <param name="timestamp">Timestamp in source time zone to be converted to time in destination time
            zone.</param>
            <param name="sourceTimeZone">Time zone for given source timestamp.</param>
            <param name="destinationTimeZone">Desired end time zone for given source timestamp.</param>
            <returns>
            <para>Timestamp in destination time zone.</para>
            </returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.AbbreviatedMonthName(System.DateTime)">
            <summary>Gets the abbreviated month name for month of the timestamp.</summary>
            <param name="timestamp">Timestamp from which month name is extracted.</param>
            <returns>String representation of the month name based on <paramref name="timestamp"/></returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.MonthName(System.DateTime)">
            <summary>Gets the full month name for month of the timestamp.</summary>
            <param name="timestamp">Timestamp from which month name is extracted.</param>
            <returns>String representation of the month name based on <paramref name="timestamp"/></returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.AbbreviatedWeekdayName(System.DateTime)">
            <summary>Gets the abbreviated weekday name for weekday of the timestamp.</summary>
            <param name="timestamp">Timestamp from which weekday name is extracted.</param>
            <returns>String representation of the weekday name based on <paramref name="timestamp"/></returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.ShortWeekdayName(System.DateTime)">
            <summary>Gets the shortest weekday name for weekday of the timestamp.</summary>
            <param name="timestamp">Timestamp from which weekday name is extracted.</param>
            <returns>String representation of the short weekday name based on <paramref name="timestamp"/></returns>
        </member>
        <member name="M:GSF.DateTimeExtensions.WeekdayName(System.DateTime)">
            <summary>Gets the full weekday name for weekday of the timestamp.</summary>
            <param name="timestamp">Timestamp from which weekday name is extracted.</param>
            <returns>String representation of the weekday name based on <paramref name="timestamp"/></returns>
        </member>
        <member name="T:GSF.Diagnostics.ChildProcessManager">
            <summary>
            Represents a manager for automatically terminating child processes.
            </summary>
        </member>
        <member name="E:GSF.Diagnostics.ChildProcessManager.TerminationException">
            <summary>
            Raised when there is an exception while attempting to terminate child process.
            </summary>
            <remarks>
            This is currently only raised on non-Windows operating systems.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.ChildProcessManager.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Diagnostics.ChildProcessManager"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ChildProcessManager.Finalize">
            <summary>
            Make sure child processes get disposed.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ChildProcessManager.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Diagnostics.ChildProcessManager"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ChildProcessManager.AddProcess(System.Diagnostics.Process)">
            <summary>
            Associates the specified <paramref name="process"/> as a child of this <see cref="T:GSF.Diagnostics.ChildProcessManager"/> instance.
            </summary>
            <param name="process">The <see cref="T:System.Diagnostics.Process"/> to associate.</param>
            <remarks>
            <para>
            The <paramref name="process"/> will be managed as an associated process of this <see cref="T:GSF.Diagnostics.ChildProcessManager"/>
            instance. When this <see cref="T:GSF.Diagnostics.ChildProcessManager"/> instance is disposed or garbage collected, the children
            processes will be terminated.
            </para>
            <para>
            Creating an instance of this class with lifetime scope of the executing application will cause any child processes
            to be terminated when the parent process shuts down, on Windows environments this will happen even when the parent
            process termination is abnormal.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Diagnostics.NamespaceDoc">
            <summary>
            Contains classes used to simplify and standardize performance monitoring for applications.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.PerformanceCounter">
             <summary>
             Represents an extension of the basic <see cref="T:System.Diagnostics.PerformanceCounter"/> providing additional statistical logic.
             </summary>
             <example>
             This example shows how to create a performance counter for processor utilization:
             <code>
             using System;
             using System.Threading;
             using GSF.Diagnostics;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     PerformanceCounter counter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
                     while (true)
                     {
                         Thread.Sleep(1000);
                         counter.Sample();
                         Console.WriteLine(string.Format("Last value: {0}", counter.LastValue));
                         Console.WriteLine(string.Format("Minimum value: {0}", counter.MinimumValue));
                         Console.WriteLine(string.Format("Maximum value: {0}", counter.MaximumValue));
                         Console.WriteLine(string.Format("Average value: {0}", counter.AverageValue));
                         Console.WriteLine(new string('-', 30));
                     }
                 }
             }
             </code>
             </example>
        </member>
        <member name="F:GSF.Diagnostics.PerformanceCounter.DefaultValueUnit">
            <summary>
            Default measurement unit of the statistical values.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PerformanceCounter.DefaultValueDivisor">
            <summary>
            Default divisor to be applied to the statistical value.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PerformanceCounter.DefaultSamplingWindow">
            <summary>
            Default number of samples over which statistical values are to be calculated.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> class.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> class.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.#ctor(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> class.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueUnit">The measurement unit for the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.#ctor(System.String,System.String,System.String,System.String,System.String,System.Single,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> class.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueUnit">The measurement unit for the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueDivisor">The divisor to be applied to the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="readOnly">Flag that determines if this counter is read-only.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Diagnostics.PerformanceCounter" /> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.AliasName">
            <summary>
            Gets or sets an alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.ValueUnit">
            <summary>
            Gets or sets the measurement unit of <see cref="P:GSF.Diagnostics.PerformanceCounter.LastValue"/>, <see cref="P:GSF.Diagnostics.PerformanceCounter.MinimumValue"/>, 
            <see cref="P:GSF.Diagnostics.PerformanceCounter.MaximumValue"/> and <see cref="P:GSF.Diagnostics.PerformanceCounter.AverageValue"/>
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.ValueDivisor">
            <summary>
            Gets or sets the divisor to be applied to the <see cref="P:GSF.Diagnostics.PerformanceCounter.LastValue"/>, <see cref="P:GSF.Diagnostics.PerformanceCounter.MinimumValue"/>, 
            <see cref="P:GSF.Diagnostics.PerformanceCounter.MaximumValue"/> and <see cref="P:GSF.Diagnostics.PerformanceCounter.AverageValue"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is not greater than 0.</exception>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.SamplingWindow">
            <summary>
            Gets or sets the number of samples to use to determine the <see cref="P:GSF.Diagnostics.PerformanceCounter.LastValue"/>, 
            <see cref="P:GSF.Diagnostics.PerformanceCounter.MinimumValue"/>, <see cref="P:GSF.Diagnostics.PerformanceCounter.MaximumValue"/> and <see cref="P:GSF.Diagnostics.PerformanceCounter.AverageValue"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned is not greater than 0.</exception>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.Samples">
            <summary>
            Gets a list of sampled values from the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.LastValue">
            <summary>
            Gets the last sample value from the samples of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.MinimumValue">
            <summary>
            Gets the minimum sample value from the samples of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.MaximumValue">
            <summary>
            Gets the maximum sample value from the samples of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.AverageValue">
            <summary>
            Gets the average value from the samples of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.LifetimeMaximumValue">
            <summary>
            Gets the maximum sample value over the entire lifetime of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.LifetimeAverageValue">
            <summary>
            Gets the average sample value over the entire lifetime of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.LifetimeSampleCount">
            <summary>
            Gets the total values sampled over the entire lifetime of the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.BaseCounter">
            <summary>
            Gets the <see cref="T:System.Diagnostics.PerformanceCounter"/> object that this <see cref="T:GSF.Diagnostics.PerformanceCounter"/> objects wraps.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.SampleAdjuster">
            <summary>
            Gets or sets an optional custom sample adjustment function. Can be used to apply linear adjustments to sampled values.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceCounter.SampleFilter">
            <summary>
            Gets or sets an optional custom sample filter function. Can be used to skip sampled values that are unreasonable.
            </summary>
            <remarks>
            Return <c>true</c> if sample should be filtered; otherwise, <c>false</c>.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Diagnostics.PerformanceCounter" /> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Diagnostics.PerformanceCounter" /> object and optionally 
            releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.Sample">
            <summary>
            Obtains a sample value from the <see cref="P:GSF.Diagnostics.PerformanceCounter.BaseCounter"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceCounter.Reset">
            <summary>
            Resets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object to its initial state.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.PerformanceMonitor">
             <summary>
             Represents a process performance monitor that operates similar to the Windows Performance Monitor utility
             that can be used to monitor system performance.
             </summary>
             <example>
             This example shows how to use <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> for monitoring application performance:
             <code>
             using System;
             using System.Threading;
             using GSF.Diagnostics;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     PerformanceMonitor perfMon = new PerformanceMonitor();
                     while (true)
                     {
                         // Display process performance.
                         Thread.Sleep(5000);
                         Console.WriteLine("");
                         Console.Write(perfMon.Status);
                     }
                 }
             }
             </code>
             </example>
             <seealso cref="T:GSF.Diagnostics.PerformanceCounter"/>
        </member>
        <member name="F:GSF.Diagnostics.PerformanceMonitor.ThreadPoolCountersCategoryName">
            <summary>
            Name of the custom thread pool counters category.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> class.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.#ctor(System.Double,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> class.
            </summary>
            <param name="samplingInterval">Interval, in milliseconds, at which the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/> are to be sampled.</param>
            <param name="addDefaultCounters">Set to <c>true</c> to add default counters; otherwise <c>false</c>.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> class.
            </summary>
            <param name="processName">Name of the <see cref="T:System.Diagnostics.Process"/> whose performance is to be monitored.</param>
            <param name="addDefaultCounters">Set to <c>true</c> to add default counters; otherwise <c>false</c>.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.#ctor(System.String,System.Double,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> class.
            </summary>
            <param name="processName">Name of the <see cref="T:System.Diagnostics.Process"/> whose performance is to be monitored.</param>
            <param name="samplingInterval">Interval, in milliseconds, at which the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/> are to be sampled.</param>
            <param name="addDefaultCounters">Set to <c>true</c> to add default counters; otherwise <c>false</c>.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.ProcessName">
            <summary>
            Gets or sets the name of the <see cref="T:System.Diagnostics.Process"/> to be monitored.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.CPUUsage">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the processor utilization of the monitored process.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.IPDataSendRate">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the IP based datagrams sent / second of the system.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.IPDataReceiveRate">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the IP based datagrams received / second of the system.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.ThreadingContentionRate">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the .NET threading contention rate / second of the process.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.MemoryUsage">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the memory utilization of the monitored process.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.IOUsage">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the rate at which the monitored process is 
            issuing bytes to I/O operations that do not involve data such as control operations.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.IOActivity">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the rate at which the monitored process is 
            issuing read and write I/O operations.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.HandleCount">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the total number of handles currently open by 
            the monitored process.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.ThreadCount">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the number of threads currently active in the 
            monitored process.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitor.Name">
            <summary>
            Gets the friendly name of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitor.SampleCustomCounters">
            <summary>
            Handle sampling of custom counters.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.PerformanceMonitorBase">
            <summary>
            Represents a base class for performance monitors, e.g., the process level <see cref="T:GSF.Diagnostics.PerformanceMonitor"/>
            and the system level <see cref="T:GSF.Diagnostics.SystemPerformanceMonitor"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PerformanceMonitorBase.DefaultSamplingInterval">
            <summary>
            Default interval for sampling the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Diagnostics.PerformanceMonitorBase"/> class.
            </summary>
            <param name="samplingInterval">Interval, in milliseconds, at which the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/> are to be sampled.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitorBase.SamplingInterval">
            <summary>
            Gets or sets the interval, in milliseconds, at which the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/> are to be sampled.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitorBase.Counters">
            <summary>
            Gets a read-only list of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> objects monitored by the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> object.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitorBase.Name">
            <summary>
            Gets the friendly name of the <see cref="T:GSF.Diagnostics.PerformanceMonitorBase"/> object.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitorBase.Status">
            <summary>
            Gets the current status of the <see cref="T:GSF.Diagnostics.PerformanceMonitorBase"/> object.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.PerformanceMonitorBase.LifetimeStatus">
            <summary>
            Gets the lifetime status statistics of the <see cref="T:GSF.Diagnostics.PerformanceMonitor"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Diagnostics.PerformanceMonitorBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Diagnostics.PerformanceMonitorBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.AddCounter(System.String,System.String,System.String)">
            <summary>
            Adds a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be monitored.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.AddCounter(System.String,System.String,System.String,System.String)">
            <summary>
            Adds a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be monitored.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.AddCounter(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Adds a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be monitored.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueUnit">The measurement unit for the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.AddCounter(System.String,System.String,System.String,System.String,System.String,System.Single,System.Boolean,System.Func{System.Single,System.Single},System.Func{System.Single,System.Boolean})">
            <summary>
            Adds a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be monitored.
            </summary>
            <param name="categoryName">The name of the performance counter category (performance object) with which this performance counter is associated.</param>
            <param name="counterName">The name of the performance counter.</param>
            <param name="instanceName">The name of the performance counter category instance, or an empty string (""), if the category contains a single instance.</param>
            <param name="aliasName">The alias name for the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueUnit">The measurement unit for the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="valueDivisor">The divisor to be applied to the statistical values of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object.</param>
            <param name="readOnly">Flag that determines if this counter is read-only.</param>
            <param name="sampleAdjuster">Defines a custom sample adjustment function for the counter.</param>
            <param name="sampleFilter">Defines a custom sample filter function for the counter.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.AddCounter(GSF.Diagnostics.PerformanceCounter)">
            <summary>
            Adds a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be monitored.
            </summary>
            <param name="counter">The <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object to be monitored.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.RemoveCounter(GSF.Diagnostics.PerformanceCounter)">
            <summary>
            Removes a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> being monitored.
            </summary>
            <param name="counter">The <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object to be unmonitored.</param>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.FindCounter(System.String)">
            <summary>
            Returns a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object matching the specified counter name.
            </summary>
            <param name="counterName">Name of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <returns>A <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object if a match is found; otherwise null.</returns>
            <remarks>
            First <see cref="T:GSF.Diagnostics.PerformanceCounter"/> with matching name is returned. If same name exists within
            multiple monitored categories, use <see cref="M:GSF.Diagnostics.PerformanceMonitorBase.FindCounter(System.String,System.String)"/> overload instead.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.FindCounter(System.String,System.String)">
            <summary>
            Returns a <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object matching the specified counter name.
            </summary>
            <param name="categoryName">Category of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <param name="counterName">Name of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <returns>A <see cref="T:GSF.Diagnostics.PerformanceCounter"/> object if a match is found; otherwise null.</returns>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.FindCounters(System.String)">
            <summary>
            Returns <see cref="T:GSF.Diagnostics.PerformanceCounter"/> array matching the specified counter name.
            </summary>
            <param name="counterName">Name of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <returns>A <see cref="T:GSF.Diagnostics.PerformanceCounter"/> array of found matches, if any.</returns>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.FindCounters(System.String,System.String)">
            <summary>
            Returns <see cref="T:GSF.Diagnostics.PerformanceCounter"/> array matching the specified counter name.
            </summary>
            <param name="categoryName">Category of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <param name="counterName">Name of the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> to be retrieved.</param>
            <returns>A <see cref="T:GSF.Diagnostics.PerformanceCounter"/> array of found matches, if any.</returns>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.SampleCounters">
            <summary>
            Sample all defined counters.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PerformanceMonitorBase.SampleCustomCounters">
            <summary>
            Derived class should override this method to sample any custom counters.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.ProcessUtilizationCalculator">
            <summary>
            Represents a utilization calculator for a related <see cref="T:System.Diagnostics.Process"/> set.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.ProcessUtilizationCalculator.DefaultUpdateInterval">
            <summary>
            Default value for the <see cref="P:GSF.Diagnostics.ProcessUtilizationCalculator.UpdateInterval"/> property.
            </summary>
        </member>
        <member name="E:GSF.Diagnostics.ProcessUtilizationCalculator.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.ProcessUtilizationCalculator.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Diagnostics.ProcessUtilizationCalculator"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.ProcessUtilizationCalculator.Utilization">
            <summary>
            Gets the current processor utilization, percent between 0.0 and 1.0, of the associated <see cref="T:System.Diagnostics.Process"/> set.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.ProcessUtilizationCalculator.UpdateInterval">
            <summary>
            Gets or sets the interval, in milliseconds, over which <see cref="P:GSF.Diagnostics.ProcessUtilizationCalculator.Utilization"/> will be calculated.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.ProcessUtilizationCalculator.AssociatedProcesses">
            <summary>
            Gets associated processes for this <see cref="T:GSF.Diagnostics.ProcessUtilizationCalculator"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ProcessUtilizationCalculator.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Diagnostics.ProcessUtilizationCalculator"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ProcessUtilizationCalculator.Initialize(System.Diagnostics.Process[])">
            <summary>
            Starts calculating the total processor utilization of the specified <paramref name="processes"/>.
            </summary>
            <param name="processes">The <see cref="T:System.Diagnostics.Process"/> set, e.g., parent and child processes, to monitor for total processor utilization.</param>
        </member>
        <member name="M:GSF.Diagnostics.ProcessUtilizationCalculator.Initialize(System.Collections.Generic.IEnumerable{System.Diagnostics.Process})">
            <summary>
            Starts calculating the total processor utilization of the specified <paramref name="processes"/>.
            </summary>
            <param name="processes">The <see cref="T:System.Diagnostics.Process"/> set, e.g., parent and child processes, to monitor for total processor utilization.</param>
        </member>
        <member name="M:GSF.Diagnostics.ProcessUtilizationCalculator.Refresh">
            <summary>
            Refreshes the processor utilization of the associated <see cref="T:System.Diagnostics.Process"/> set.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.SystemPerformanceMonitor">
            <summary>
            Represents a system performance monitor for system level performance statistics, e.g.,
            CPU utilization and available memory.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.SystemPerformanceMonitor.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Diagnostics.SystemPerformanceMonitor"/>.
            </summary>
            <param name="samplingInterval">
            Interval, in milliseconds, at which the <see cref="P:GSF.Diagnostics.PerformanceMonitorBase.Counters"/>
            are to be sampled.
            </param>
            <remarks>
            It is recommended to use the <see cref="P:GSF.Diagnostics.SystemPerformanceMonitor.Default"/> instance of this class
            instead of creating a new instance where applicable.
            </remarks>
        </member>
        <member name="P:GSF.Diagnostics.SystemPerformanceMonitor.CPUUsage">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the processor utilization of the system.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.SystemPerformanceMonitor.AvailableMemory">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.PerformanceCounter"/> that monitors the remaining available memory of the system in GB.
            </summary>
            <remarks>This <see cref="T:GSF.Diagnostics.PerformanceCounter"/> is added by default.</remarks>
        </member>
        <member name="P:GSF.Diagnostics.SystemPerformanceMonitor.Default">
            <summary>
            Gets default reference of <see cref="T:GSF.Diagnostics.SystemPerformanceMonitor"/>.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.ThreadPoolMonitor">
            <summary>
            This class will monitor the performance of the ThreadPool and report any indications of system stress.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ThreadPoolMonitor.Initialize">
            <summary>
            Initializes the static constructor
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogFileWriterInMemory">
            <summary>
            A log subscriber that will log messages to a file.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriterInMemory.#ctor">
            <summary>
            Creates a LogFileWriter that initially queues message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogFileWriterInMemory.LogCount">
            <summary>
            The number of logs that have been written to this file.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriterInMemory.Write(GSF.Diagnostics.LogMessage)">
            <summary>
            Writes the specified log to the file
            </summary>
            <param name="log"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriterInMemory.ToByteArray">
            <summary>
            Returns a byte array of the log zip stream.
            </summary>
            <returns>Byte array of the log zip stream.</returns>
        </member>
        <member name="T:GSF.Diagnostics.DisposableLoggingClassBase">
            <summary>
            A helper class that implements <see cref="T:System.IDisposable"/> that will raise log messages
            when this class is not properly disposed of.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.DisposableLoggingClassBase.Log">
            <summary>
            The <see cref="T:GSF.Diagnostics.LogPublisher"/> for logging messages.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.DisposableLoggingClassBase.#ctor(GSF.Diagnostics.MessageClass)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.DisposableLoggingClassBase"/>
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.DisposableLoggingClassBase.Finalize">
            <summary>
            This code is here to detect when finalizers are called rather than a class be properly disposed. 
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.DisposableLoggingClassBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Diagnostics.DisposableLoggingClassBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.DisposableLoggingClassBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Diagnostics.DisposableLoggingClassBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Diagnostics.DisposableLoggingClassBase.CheckDisposed">
            <summary>
            Checks if the class has been disposed, throws an exception if this is the case.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogEventPublisherInternal">
            <summary>
            A publisher for a specific event of a <see cref="T:GSF.Diagnostics.LogPublisher"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogEventPublisherInternal.ShouldRaiseMessageSupressionNotifications">
            <summary>
            Gets/Sets if a log message should be generated when message suppression occurs.
            Default is true;
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherInternal.#ctor(GSF.Diagnostics.LogMessageAttributes,GSF.Diagnostics.LogEventPublisherDetails,GSF.Diagnostics.LogPublisherInternal,GSF.Diagnostics.LoggerInternal,System.Int32,System.Double,System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogEventPublisherInternal"/>.
            </summary>
            <param name="attributes"></param>
            <param name="owner">the owner of the log messages.</param>
            <param name="publisher">the publisher that is used to raise messages</param>
            <param name="logger">the callback for all new messages that are generated.</param>
            <param name="stackTraceDepth"></param>
            <param name="messagesPerSecond"></param>
            <param name="burstLimit"></param>
        </member>
        <member name="P:GSF.Diagnostics.LogEventPublisherInternal.HasSubscribers">
            <summary>
            Checks if messages generated by this publisher will be received by a subscriber.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogEventPublisherInternal.DefaultAttributes">
            <summary>
            The attributes that will be used if not specified.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherInternal.Publish(System.Nullable{GSF.Diagnostics.LogMessageAttributes},System.String,System.String,System.Exception,GSF.Diagnostics.LogStackMessages,GSF.Diagnostics.LogStackTrace)">
            <summary>
            Raises a log message with the provided data.
            </summary>
            <param name="overriddenAttributes">attributes to use with this message</param>
            <param name="message"></param>
            <param name="details">A long text field with the details of the message.</param>
            <param name="exception">An exception object if one is provided.</param>
            <param name="initialStackMessage"></param>
            <param name="initialStackTrace"></param>
        </member>
        <member name="T:GSF.Diagnostics.LoggerInternal">
            <summary>
            The fundamental functionality of <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.#ctor(GSF.Diagnostics.LoggerInternal@)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LoggerInternal"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.CalculateRoutingTable(System.Object,GSF.EventArgs{GSF.Threading.ScheduledTaskRunningReason})">
            <summary>
            Recalculates the entire routing table on a separate thread.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.CalculateRoutingTableForPublisherSync(System.Collections.Generic.List{GSF.Diagnostics.LogSubscriberInternal},GSF.Diagnostics.LogPublisherInternal)">
            <summary>
            This method should be called with a lock on m_syncRoot
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.CreateSubscriber">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogSubscriber"/> that can subscribe to log messages.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.RecalculateRoutingTable">
            <summary>
            Invalidates the current routing table.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.OnNewMessage(GSF.Diagnostics.LogMessage,GSF.Diagnostics.LogPublisherInternal)">
            <summary>
            Handles the routing of messages through the logging system.
            </summary>
            <param name="message">the message to route</param>
            <param name="publisher">the publisher that is originating this message.</param>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.CreateType(System.Type)">
            <summary>
            Creates a type topic on a specified type.
            </summary>
            <param name="type">the type to create the topic from</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LoggerInternal.Dispose">
            <summary>
            Gracefully terminate all message routing. Function blocks until all termination is successful.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogMessageAttributes">
            <summary>
            All of the attributes that can be assigned to a <see cref="T:GSF.Diagnostics.LogMessage"/>.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogMessageSaveHelper">
            <summary>
            Assists in the saving of a LogMessage. This class is here to help de-duplicate classes so they don't take so much 
            space or memory.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogPublisherInternal">
            <summary>
            This publisher is shared by all other instances of the same <see cref="F:GSF.Diagnostics.LogPublisherInternal.Type"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogPublisherInternal.m_logger">
            <summary>
            Occurs when a new <see cref="T:GSF.Diagnostics.LogMessage"/> is ready to be published.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisherInternal.HasSubscribers(GSF.Diagnostics.LogMessageAttributes)">
            <summary>
            Checks messages generated by this publisher and the provided attributes will be received by a subscriber.
            </summary>
            <param name="attributes"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.LogSubscriberInternal">
            <summary>
            A <see cref="T:GSF.Diagnostics.LogSubscriberInternal"/> that collects logs 
            </summary>
        </member>
        <member name="E:GSF.Diagnostics.LogSubscriberInternal.NewLogMessage">
            <summary>
            Event handler for the logs that are raised.
            </summary>
            <remarks>
            Any exceptions generated by this callback will be ignored.
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogSubscriberInternal.Reference">
            <summary>
            Since weak references are linked to this class, this is a common one that everyone can use when storing this weak reference.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.#ctor(System.Action)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogSubscriberInternal"/>
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.Clear">
            <summary>
            Clears all subscriptions
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.Subscribe(GSF.Diagnostics.PublisherFilter,GSF.Diagnostics.MessageAttributeFilter,System.Boolean)">
            <summary>
            Adds/Modify/Deletes an existing subscription
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.RaiseLogMessages(GSF.Diagnostics.LogMessage)">
            <summary>
            Assigns the supplied message to this subscriber.
            </summary>
            <param name="log">the message</param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.OnLog(GSF.Diagnostics.LogMessage)">
            <summary>
            Raises the <see cref="E:GSF.Diagnostics.LogSubscriberInternal.NewLogMessage"/> event.
            </summary>
            <param name="logMessage">the message to raise.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriberInternal.Dispose">
            <summary>
            Disposes this class so future messages will not route. 
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogSuppressionEngine">
            <summary>
            The suppression engine associated with an individual <see cref="T:GSF.Diagnostics.LogEventPublisherDetails"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSuppressionEngine.#ctor(System.Double,System.Int32)">
            <summary>
            
            </summary>
            <param name="messagesPerSecond">The number of messages per second that can be generated. Must be greater than zero and less than 1 billion</param>
            <param name="burstLimit">The maximum number of messages that can be burst at one time.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogSuppressionEngine.IncrementPublishCount">
            <summary>
            Increments the publish count for this type of message.
            </summary>
            <returns>The suppression code assigned to this message.</returns>
        </member>
        <member name="T:GSF.Diagnostics.MessageAttributeFilterCollection">
            <summary>
            Contains a collection of <see cref="T:GSF.Diagnostics.MessageAttributeFilter"/>s with the <see cref="T:GSF.Diagnostics.LogSubscriberInternal"/> 
            that is assigned to each segment.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageAttributeFilterCollection.Routes">
            <summary>
            All of the routes that made up this filter collection
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageAttributeFilter">
            <summary>
            A subscription that filters which messages to sort by based on their Classification and Flags.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.MessageAttributeFilter.IsSubscribedTo(GSF.Diagnostics.LogMessageAttributes)">
            <summary>
            Gets if this subscription includes the provided message.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageAttributeFilter.Append(GSF.Diagnostics.MessageAttributeFilter)">
            <summary>
            Does a Union of the two subscriptions.
            </summary>
            
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageAttributeFilter.Remove(GSF.Diagnostics.MessageAttributeFilter)">
            <summary>
            Removes subscription A from this subscription if possible.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.PublisherFilter">
            <summary>
            Describes a kind of publisher. This can be All, or a subset based on Assembly (dll) or Type (namespace/type)
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.PublisherFilter.FilterType">
            <summary>
            The general classification of the subscription.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.FilterType.Universal">
            <summary>
            This will subscribe to anything, regardless of matching assembly or type. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.FilterType.Assembly">
            <summary>
            This subscription matches the name of the assembly.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.FilterType.Type">
            <summary>
            This subscription matches the full type name.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.m_filterType">
            <summary>
            The type of the filter.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.m_text">
            <summary>
            The text associated with the filter;
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.m_isExpression">
            <summary>
            Filter is an expression, this means the name contains a wildcard (* or ?)
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherFilter.m_regexMatch">
            <summary>
            A <see cref="T:System.Text.RegularExpressions.Regex"/> for matching publishers if the publisher is an expression.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.#ctor(GSF.Diagnostics.PublisherFilter.FilterType)">
            <summary>
            Creates a either Universal or LogSource Topic
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.#ctor(GSF.Diagnostics.PublisherFilter.FilterType,System.String)">
            <summary>
            Creates an Assembly, Type.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.ContainsPublisher(GSF.Diagnostics.LogPublisherInternal)">
            <summary>
            Gets if this subscription contains the publisher.
            </summary>
            <param name="publisher">the publisher to check</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>
            A string that represents the current object.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.CreateType(System.Type)">
            <summary>
            Creates a type topic on a specified type.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.CreateType(System.String)">
            <summary>
            Creates a topic from the specified list
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.TrimAfterFullName(System.String)">
            <summary>
            Trims the unused information after the namespace.class+subclass details.
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.CreateAssembly(System.Reflection.Assembly)">
            <summary>
            Creates a topic from the specified assembly.
            </summary>
            <param name="assembly"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.CreateAssembly(System.String)">
            <summary>
            Creates a topic from the specified assembly file name.
            </summary>
            <param name="name">the assembly file name (.dll or .exe) </param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.PublisherFilter.CreateUniversal">
            <summary>
            Creates a universal topic.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.LogEventPublisher">
            <summary>
            Can be used to publish event messages.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogEventPublisher.HasSubscribers">
            <summary>
            Gets if this publisher has any subscribers to it. This does not have to be checked as messages won't route if there are not subscribers. This is mainly
            used to skip the code that would generate the data for the <see cref="T:GSF.Diagnostics.LogMessage"/>.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogEventPublisher.ShouldRaiseMessageSupressionNotifications">
            <summary>
            Gets/Sets if a log message should be generated when message suppression occurs.
            Default is true;
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisher.Publish(System.String,System.String,System.Exception)">
            <summary>
            Raises a log message with the provided data.
            </summary>
            <param name="message"></param>
            <param name="details">A long text field with the details of the message.</param>
            <param name="exception">An exception object if one is provided.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisher.Publish(GSF.Diagnostics.MessageFlags,System.String,System.String,System.Exception)">
            <summary>
            Raises a log message with the provided data.
            </summary>
            <param name="flags">additional flags to set to this log</param>
            <param name="message"></param>
            <param name="details">A long text field with the details of the message.</param>
            <param name="exception">An exception object if one is provided.</param>
        </member>
        <member name="T:GSF.Diagnostics.LogEventPublisherDetails">
            <summary>
            Information about the <see cref="T:GSF.Diagnostics.LogEventPublisher"/> that published this message.
            </summary>
            <remarks>
            Since it is likely that a log file will have this data repeated a bunch, this class allows
            de-duplication of this data so it takes up less memory to store.
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogEventPublisherDetails.TypeData">
            <summary>
            The <see cref="T:GSF.Diagnostics.PublisherTypeDefinition"/> associated with <see cref="T:GSF.Diagnostics.LogPublisher"/> that generated the message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogEventPublisherDetails.EventName">
            <summary>
            The event name of this log message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogEventPublisherDetails.m_hashCode">
            <summary>
            A hashCode code of this owner.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.#ctor(System.IO.Stream,GSF.Diagnostics.LogMessageSaveHelper)">
            <summary>
            Loads a log messages from the supplied stream
            </summary>
            <param name="stream">the stream to load the log message from.</param>
            <param name="helper">the helper to assist in loading/saving</param>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.#ctor(GSF.Diagnostics.PublisherTypeDefinition,System.String)">
            <summary>
            Represents a single owner of a log message.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.Save(System.IO.Stream,GSF.Diagnostics.LogMessageSaveHelper)">
            <summary>
            Writes the log data to the stream
            </summary>
            <param name="stream"></param>
            <param name="helper">the helper to assist in loading/saving</param>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>
            A string that represents the current object.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified object  is equal to the current object; otherwise, false.
            </returns>
            <param name="obj">The object to compare with the current object. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogEventPublisherDetails.Equals(GSF.Diagnostics.LogEventPublisherDetails)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="obj"/> parameter; otherwise, false.
            </returns>
            <param name="obj">An object to compare with this object.</param>
        </member>
        <member name="T:GSF.Diagnostics.Logger">
            <summary>
            Manages the collection and reporting of logging information in a system.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.Logger.ThreadLocalThreadStack.Value">
            <summary>
            Gets the <see cref="T:GSF.Diagnostics.Logger.ThreadStack"/> item for the current thread.
            Note: No exchange compare is needed since <see cref="F:GSF.Diagnostics.Logger.ThreadLocalThreadStack.s_localValue"/>
            is local only to the current thread.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.Logger.ThreadStack">
            <summary>
            This information is maintained in a ThreadLocal variable and is about 
            messages and log suppression applied at higher levels of the calling stack.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.Logger.Console">
            <summary>
            The default console based log subscriber.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.Logger.FileWriter">
            <summary>
            The default file based log writer.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.Logger.Initialize">
            <summary>
            Ensures that the logger has been initialized. 
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.Logger.Shutdown">
            <summary>
            Ensures that the logger is properly shutdown.
            This is called from ShutdownHandler.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.Logger.PreviousFirstChanceExceptionSequenceNumber">
            <summary>
            Gets the sequence number of the most recent First Chance Exception log 
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.Logger.ShouldSuppressLogMessages">
            <summary>
            Gets if Log Messages should be suppressed.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.Logger.ShouldSuppressFirstChanceLogMessages">
            <summary>
            Gets if First Chance Exception Log Messages should be suppressed.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.Logger.CreatePublisher(System.Type,GSF.Diagnostics.MessageClass)">
            <summary>
            Looks up the type of the log source
            </summary>
            <param name="type">the type</param>
            <param name="classification">the classification of the type of messages that this publisher will raise.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.CreateSubscriber(GSF.Diagnostics.VerboseLevel)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogSubscriber"/>
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.SwallowException(System.Exception,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Logs that a first chance exception was intentionally not handled for the provided reason.
            In the LogFileViewer it will filter messages differently if it was indicated that they were swallowed.
            </summary>
            <param name="ex">the exception that was swallowed</param>
            <param name="message">message to include, such as a reason why it was swallowed.</param>
            <param name="details">additional details.</param>
            <param name="additionalFlags">additional flags that can be set with this swallowed exception.</param>
        </member>
        <member name="M:GSF.Diagnostics.Logger.GetStackMessages">
            <summary>
            Searches the current stack frame for all related messages that will be published with this message.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.AppendStackMessages(GSF.Diagnostics.LogStackMessages)">
            <summary>
            Temporarily appends data to the thread's stack so the data can be propagated to any messages generated on this thread.
            Be sure to call Dispose on the returned object to remove this from the stack.
            </summary>
            <param name="messages"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.SuppressLogMessages">
            <summary>
            Sets a flag that will prevent log messages from being raised on this thread.
            Remember to dispose of the callback to remove this suppression.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.SuppressFirstChanceExceptionLogMessages">
            <summary>
            Sets a flag that will prevent First Chance Exception log messages from being raised on this thread.
            Remember to dispose of the callback to remove this suppression.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.OverrideSuppressLogMessages">
            <summary>
            Sets a flag that will allow log messages to be raised again.
            Remember to dispose of the callback to remove this override.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.Logger.AppendStackMessages(System.String,System.String)">
            <summary>
            Temporarily appends data to the thread's stack so the data can be propagated to any messages generated on this thread.
            Be sure to call Dispose on the returned object to remove this from the stack.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.Logger.StackDisposal">
            <summary>
            A class that will undo a temporary change in the stack variables. Note, this class 
            will be reused. Therefore setting some kind of disposed flag will cause make this 
            class unusable. The side effect of multiple calls to Dispose is tolerable.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.Logger.StackDisposal.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Diagnostics.LogMessage">
            <summary>
            An individual log message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.EventPublisherDetails">
            <summary>
            Contains details about the <see cref="T:GSF.Diagnostics.LogEventPublisher"/> that published this <see cref="T:GSF.Diagnostics.LogMessage"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.InitialStackMessages">
            <summary>
            The message stack that existed when the <see cref="T:GSF.Diagnostics.LogPublisher"/> was originally constructed.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.InitialStackTrace">
            <summary>
            The stack trace that existed when the <see cref="T:GSF.Diagnostics.LogPublisher"/> was originally constructed.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.CurrentStackMessages">
            <summary>
            The message stack that existed when this <see cref="T:GSF.Diagnostics.LogMessage"/> was published.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.CurrentStackTrace">
            <summary>
            The stack trace that existed when this <see cref="T:GSF.Diagnostics.LogMessage"/> was published.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.UtcTime">
            <summary>
            The time that the message was created.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.Classification">
            <summary>
            The classification of the message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.Level">
            <summary>
            The level associated with the message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.Flags">
            <summary>
            The flags associated with the message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.MessageSuppression">
            <summary>
            The suppression level assigned to this log message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.TypeName">
            <summary>
            The <see cref="T:System.Type"/> associated with <see cref="T:GSF.Diagnostics.LogPublisher"/> that generated the message.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.AssemblyName">
            <summary>
            The <see cref="T:System.Reflection.Assembly"/> associated with <see cref="T:GSF.Diagnostics.LogPublisher"/> that generated the message.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.RelatedTypes">
            <summary>
            All related types such as interfaces/parent classes for the current type.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogMessage.EventName">
            <summary>
            The event name of this log message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.Message">
            <summary>
            A specific message about the event giving more specifics about the actual message. 
            Typically, this will be up to 1 line of text. 
            Can be String.Empty.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.Details">
            <summary>
            A long text field with the details of the message. 
            Can be String.Empty.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.Exception">
            <summary>
            An exception object if one is provided.
            Can be null. 
            Since the exception is not serialized to the disk, it will be null when loaded.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.ExceptionString">
            <summary>
            A string representation of the exception. Can be String.Empty.
            If loaded from the disk, since exception objects cannot be serialized, 
            the <see cref="F:GSF.Diagnostics.LogMessage.Exception"/> will be null and 
            this field will have the string representation of <see cref="F:GSF.Diagnostics.LogMessage.Exception"/>
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.ManagedThreadID">
            <summary>
            The Managed Thread ID of the thread that created this message. This 
            is primarily to assist in future log viewing applications
            where it is beneficial to track the thread.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogMessage.PreviousFirstChanceExceptionSequenceNumber">
            <summary>
            A sequence number maintained by each thread thread of the previous 
            first chance exception that was thrown. This is used to assist
            LogFileViewer associate log messages with properly handled 
            first chance exceptions.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogMessage.#ctor(System.IO.Stream,GSF.Diagnostics.LogMessageSaveHelper)">
            <summary>
            Loads a log messages from the supplied stream
            </summary>
            <param name="stream">the stream to load the log message from.</param>
            <param name="saveHelper">A save helper that will condense objects</param>
        </member>
        <member name="M:GSF.Diagnostics.LogMessage.#ctor(GSF.Diagnostics.LogEventPublisherDetails,GSF.Diagnostics.LogStackMessages,GSF.Diagnostics.LogStackTrace,GSF.Diagnostics.LogStackMessages,GSF.Diagnostics.LogStackTrace,GSF.Diagnostics.LogMessageAttributes,System.String,System.String,System.Exception)">
            <summary>
            Creates a log message
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogMessage.ToString">
            <summary>Returns a string that represents the current object.</summary>
            <returns>A string that represents the current object.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogMessage.Save(System.IO.Stream,GSF.Diagnostics.LogMessageSaveHelper)">
            <summary>
            Writes the log data to the stream
            </summary>
            <param name="stream"></param>
            <param name="saveHelper"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogMessage.GetMessage">
            <summary>
            Gets the details of the message.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.LogPublisher">
            <summary>
            A publisher of log messages. 
            </summary>
            <remarks>
            <see cref="F:GSF.Diagnostics.LogPublisher.InitialStackMessages"/> and <see cref="F:GSF.Diagnostics.LogPublisher.InitialStackTrace"/> can be modified so messages that are generated 
            with this instance will have this data appended to the log message.
            
            The user can either call one of the Publish overloads to lazily publish a message, or they
            can register a message with RegisterEvent so calling this message will incur little overhead.
            If registering an event, the user can check <see cref="P:GSF.Diagnostics.LogEventPublisher.HasSubscribers"/> to determine if the log message can be skipped altogether. 
            Registering events also allows the user to specify the auto-suppression algorithm and the depth of the stack trace that will be recorded on a message being raised.
            
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogPublisher.m_logger">
            <summary>
            Occurs when a new <see cref="T:GSF.Diagnostics.LogMessage"/> is ready to be published.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogPublisher.InitialStackMessages">
            <summary>
            The stack messages that existed when this publisher was created. This can be modified by the user of this publisher.
            Any messages that get published by this class will automatically have this data added to the log message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogPublisher.InitialStackTrace">
            <summary>
            The stack trace that existed when this publisher was created. This can be modified by the user of this publisher.
            Any messages that get published by this class will automatically have this data added to the log message.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogPublisher.MaxDistinctEventPublisherCount">
            <summary>
            The maximum number of distinct events that this publisher can generate. (Default: 20)
            </summary>
            <remarks>
            Since message suppression and collection occurs at the event name level, it is important
            to have only a few distinct message types. This is the limit so misapplication
            of this publisher will not cause memory impacts on the system.
            
            It is recommended to keep the event name as a fixed string and not report any other meta data
            with the event.
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogPublisher.m_lookupEventPublishers">
            <summary>
            Where the <see cref="T:GSF.Diagnostics.LogEventPublisherInternal"/>s of specific events are cached.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.RegisterEvent(GSF.Diagnostics.MessageLevel,System.String)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with the provided values.
            </summary>
            <param name="level">the level of the message and associated flags if any</param>
            <param name="eventName">the name of the event.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.RegisterEvent(GSF.Diagnostics.MessageLevel,GSF.Diagnostics.MessageFlags,System.String)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with the provided values.
            </summary>
            <param name="level">the level of the message</param>
            <param name="flags">associated flags</param>
            <param name="eventName">the name of the event.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.RegisterEvent(GSF.Diagnostics.MessageLevel,System.String,System.Int32,GSF.Diagnostics.MessageRate,System.Int32)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with the provided values.
            </summary>
            <param name="level">the level of the message</param>
            <param name="eventName"></param>
            <param name="stackTraceDepth"></param>
            <param name="messagesPerSecond"></param>
            <param name="burstLimit"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.RegisterEvent(GSF.Diagnostics.MessageLevel,GSF.Diagnostics.MessageFlags,System.String,System.Int32,GSF.Diagnostics.MessageRate,System.Int32)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with the provided values.
            </summary>
            <param name="level">the level of the message</param>
            <param name="flags">associated flags</param>
            <param name="eventName"></param>
            <param name="stackTraceDepth"></param>
            <param name="messagesPerSecond"></param>
            <param name="burstLimit"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.ToString">
            <summary>
            Gets the full name of the type.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.Publish(GSF.Diagnostics.MessageLevel,System.String,System.String,System.String,System.Exception)">
            <summary>
            Raises a log message with the provided data.
            </summary>
            <param name="level">the level of the message</param>
            <param name="eventName">A short name about what this message is detailing. Typically this will be a few words.</param>
            <param name="message"> A longer message than <see param="eventName"/> giving more specifics about the actual message. 
            Typically, this will be up to 1 line of text.</param>
            <param name="details">A long text field with the details of the message.</param>
            <param name="exception">An exception object if one is provided.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.Publish(GSF.Diagnostics.MessageLevel,GSF.Diagnostics.MessageFlags,System.String,System.String,System.String,System.Exception)">
            <summary>
            Raises a log message with the provided data.
            </summary>
            <param name="level">the level of the message</param>
            <param name="flags">associated flags</param>
            <param name="eventName">A short name about what this message is detailing. Typically this will be a few words.</param>
            <param name="message"> A longer message than <see param="eventName"/> giving more specifics about the actual message. 
            Typically, this will be up to 1 line of text.</param>
            <param name="details">A long text field with the details of the message.</param>
            <param name="exception">An exception object if one is provided.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.InternalRegisterEvent(GSF.Diagnostics.LogMessageAttributes,System.String)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with a series of settings.
            </summary>
            <param name="attributes"></param>
            <param name="eventName">the name of the event.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogPublisher.InternalRegisterEvent(GSF.Diagnostics.LogMessageAttributes,System.String,System.Int32,GSF.Diagnostics.MessageRate,System.Int32)">
            <summary>
            Initializes an <see cref="T:GSF.Diagnostics.LogEventPublisher"/> with a series of settings.
            </summary>
            <param name="attributes"></param>
            <param name="eventName"></param>
            <param name="stackTraceDepth"></param>
            <param name="messagesPerSecond"></param>
            <param name="burstLimit"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.LogStackFrame">
            <summary>
            Provides information about the specific stack frame.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.ClassName">
            <summary>
            The name of the method's type.
            </summary>
            <remarks>
            Example: System.Collections.Generic.List`1+Enumerable
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.MethodName">
            <summary>
            The name of the method
            </summary>
            <remarks>
            Example: MethodName&lt;TKey,TValue&gt;(String key, String value)
            </remarks>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.FileName">
            <summary>
            The file name if debug symbols were compiled with the assembly
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.NativeOffset">
            <summary>
            Gets the offset position in the IL Code.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.LineNumber">
            <summary>
            The line number of the data.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackFrame.ColumnNumber">
            <summary>
            The column number of the execution point.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.#ctor(System.Diagnostics.StackFrame)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogStackFrame"/> from a <see cref="T:System.Diagnostics.StackFrame"/>
            </summary>
            <param name="frame"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.#ctor(System.IO.Stream)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogStackFrame"/> from a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream">the stream to load from</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.Save(System.IO.Stream)">
            <summary>
            Saves this class to a <see cref="T:System.IO.Stream"/>
            </summary>
            <param name="stream">the stream to write to.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.ToString">
            <summary>
            Makes a string
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.ToString(System.Text.StringBuilder)">
            <summary>
            Appends the details of this stack frame to the provided <see param="stringBuilder"/>.
            </summary>
            <param name="stringBuilder">where to append this class information</param>
            <remarks>
            Does not append a <see cref="P:System.Environment.NewLine"/> to the end of the line.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.ComputeHashCode">
            <summary>
            Gets the hash code data from this frame
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackFrame.Equals(GSF.Diagnostics.LogStackFrame)">
            <summary>
            Gets of the two classes are equal
            </summary>
            <param name="other">the class to compare.</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.LogStackMessages">
            <summary>
            Represents an immutable list of stack messages.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(System.String[])">
            <summary>
            Creates a new stack message from the provided list of key/value pairs.
            </summary>
            <param name="keyValuePairs">Key/value pairs, e.g., key1, value1, key2, value2, ..., key(n), value(n).</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(System.String,System.String)">
            <summary>
            Creates a new stack message from the provided <paramref name="key"/> and <paramref name="value"/>.
            </summary>
            <param name="key">The key.</param>
            <param name="value">The value.</param>
            <exception cref="T:System.ArgumentNullException">if key or value are null or whitespace.</exception>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(System.Collections.Generic.List{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
            <summary>
            Appends stack messages together.
            </summary>
            <param name="messages">the messages</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(System.Collections.Generic.List{GSF.Diagnostics.LogStackMessages})">
            <summary>
            Appends stack messages together.
            </summary>
            <param name="messages">the messages</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(GSF.Diagnostics.LogStackMessages,GSF.Diagnostics.LogStackMessages)">
            <summary>
            Appends stack messages together.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.#ctor(System.IO.Stream)">
            <summary>
            Loads stack messages from the stream.
            </summary>
            <param name="stream">the stream to load from</param>
            <exception cref="T:System.Data.VersionNotFoundException">if the version is not recognized.</exception>
        </member>
        <member name="P:GSF.Diagnostics.LogStackMessages.Count">
            <summary>
            Gets the number of Key/Value pairs.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogStackMessages.Item(System.Int32)">
            <summary>
            Gets the KeyValue for the provided index.
            </summary>
            <param name="index">The Index</param>
        </member>
        <member name="P:GSF.Diagnostics.LogStackMessages.Item(System.String)">
            <summary>
            Gets the first match of the provided <see pref="key"/> in this dictionary. Returns
            null if none can be found.
            </summary>
            <param name="key">The Index</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Union(System.String,System.String)">
            <summary>
            returns the union of this instance and the specified key/value. 
            If the key already exists. The new one replaces the existing one.
            </summary>
            <param name="key">a key</param>
            <param name="value">a value</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">if Key or Value are null or whitespace.</exception>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Union(System.String[])">
            <summary>
            returns the union of this instance and the specified list of key/value pairs. 
            If the keys already exists. The new one replaces the existing one.
            </summary>
            <param name="keyValuePairs">Key/value pairs, e.g., key1, value1, key2, value2, ..., key(n), value(n).</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException">if Key or Value are null or whitespace.</exception>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Union(GSF.Diagnostics.LogStackMessages)">
            <summary>
            returns the union of this instance and the specified <see pref="stackMessage"/>
            New messages replace existing messages.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Save(System.IO.Stream)">
            <summary>
            Saves this instance to the provided stream
            </summary>
            <param name="stream">the stream to save.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified object  is equal to the current object; otherwise, false.
            </returns>
            <param name="obj">The object to compare with the current object. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.Equals(GSF.Diagnostics.LogStackMessages)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackMessages.ToString">
            <summary>Returns a string that represents the current object.</summary>
            <returns>A string that represents the current object.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="F:GSF.Diagnostics.LogStackMessages.Empty">
            <summary>
            An empty stack message.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogStackTrace">
            <summary>
            Provides stack trace data that can be serialized to a stream.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackTrace.m_frames">
            <summary>
            Gets the stack frame data
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackTrace.Frames">
            <summary>
            Gets the stack frame data
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogStackTrace.m_hashCode">
            <summary>
            Gets the hashcode for this class
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.#ctor">
            <summary>
            Creates the <see cref="F:GSF.Diagnostics.LogStackTrace.Empty"/> object
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.#ctor(System.Boolean,System.Int32,System.Int32)">
            <summary>
            Creates a stack trace object
            </summary>
            <param name="lookupFileInfo">gets if the file paths need to be looked up.</param>
            <param name="skipCount">the number of frames to skip.</param>
            <param name="maxStackFrames">the maximum number of frames in the stack trace.</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.#ctor(System.IO.Stream)">
            <summary>
            Loads stack trace information from the supplied <see param="stream"/>
            </summary>
            <param name="stream">where to load the stack trace information</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.Save(System.IO.Stream)">
            <summary>
            Saves stack trace information to the supplied <see param="stream"/>
            </summary>
            <param name="stream">where to save the stack trace information</param>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>
            A string that represents the current object.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified object  is equal to the current object; otherwise, false.
            </returns>
            <param name="obj">The object to compare with the current object. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.LogStackTrace.Equals(GSF.Diagnostics.LogStackTrace)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
            </returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="F:GSF.Diagnostics.LogStackTrace.Empty">
            <summary>
            An empty stack trace.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogSubscriber">
            <summary>
            Subscribes to log events.
            </summary>
        </member>
        <member name="E:GSF.Diagnostics.LogSubscriber.NewLogMessage">
            <summary>
            Event handler for the logs that are raised.
            </summary>
            <remarks>
            Any exceptions generated by this callback will be ignored.
            </remarks>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.#ctor(GSF.Diagnostics.LogSubscriberInternal)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogSubscriber"/>
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.SubscribeToAll(GSF.Diagnostics.VerboseLevel)">
            <summary>
            Subscribes to all publishers with the specified verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.SubscribeToType(System.Type,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Subscribes to the publisher of the specified type with the specified verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.SubscribeToType(System.String,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Subscribes to the publisher of the specified type expression with the specified verbose level.
            </summary>
            <param name="typeExpression">An expression of the name of a type. Must include a * or ? to be considered an expression.</param>
            <param name="level">The level</param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.SubscribeToAssembly(System.Reflection.Assembly,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Subscribes to the publisher of the specified assembly with the specified verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.SubscribeToAssembly(System.String,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Subscribes to the publisher of the specified assembly with the specified verbose level.
            </summary>
             /// <param name="assemblyExpression">An expression of the name of an assembly. Must include a * or ? to be considered an expression.</param>
            <param name="level">The level</param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.IgnoreAll(GSF.Diagnostics.VerboseLevel)">
            <summary>
            Ignore all messages of this verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.IgnoreType(System.Type,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Ignore all messages of this verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.IgnoreType(System.String,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Ignore all messages of this verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.IgnoreAssembly(System.Reflection.Assembly,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Ignore all messages of this verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.IgnoreAssembly(System.String,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Ignore all messages of this verbose level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.Clear">
            <summary>
            Clears all subscriptions
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriber.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Diagnostics.MessageClass">
            <summary>
            Gets the classification of the message. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageClass.Component">
            <summary>
            Messages that come from core components. These messages are for classes that 
            are not working towards a specific framework or application, but can 
            generally be used. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageClass.Framework">
            <summary>
            Messages from higher level software components. A framework is what makes the underlying application work and 
            is the assimilation of components for a specific purpose. Use this if the intent is that this
            code will be shared among many different applications and may be implemented differently in those applications. 
            This is different from Component as it has a more specific and defined purpose.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageClass.Application">
            <summary>
            These messages are for the highest layer of an application. 
            Messages like 'Application X is starting up, shutting down' would go here.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageFlags">
            <summary>
            Various flags that can be attributed to a <see cref="T:GSF.Diagnostics.LogMessage"/>. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.None">
            <summary>
            No flags are specified.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.UsageIssue">
            <summary>
            Indicates that a segment of code is not being used properly or ideally.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.BugReport">
            <summary>
            Indicates that a bug in the code exists somewhere. This is helpful when the programmer suspects that 
            certain exceptions were not properly handled.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.PerformanceIssue">
            <summary>
            A flag indicating that a performance related issue has occurred. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.SecurityMessage">
            <summary>
            Indicates this message has security implications with it. Such as 
            a successful/unsuccessful authentication.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageFlags.SystemHealth">
            <summary>
            These messages in generally should always be logged because they report the state of the current system's health. Normally this 
            will be when the system health is abnormal, for example, something abnormal is happening in the background that is important to 
            note and can assist debugging other components. Messages raised here would include First Chance Exceptions 
            and exceptions in log message routing (such as Message Suppression).
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageLevel">
            <summary>
            The level of importance of a message that is being raised. Increasing from Debug, Info, Warning, Error, Critical.
            None can be specified, but this indicates an importance level cannot be properly identified, and the message
            will be routed based on <see cref="T:GSF.Diagnostics.MessageFlags"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.NA">
            <summary>
            Indicates a level that cannot be generally subscribed to. In this case,
            the message can only be subscribed to if a <see cref="T:GSF.Diagnostics.MessageFlags"/> is subscribed to.
            Example: First Chance AppDomain Exceptions could fall under here because it's impossible
            to assign the risk of this king of exception. Instead the SystemHealth flag will be raised.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.Debug">
            <summary>
            Indicates a message that may assist in debugging code and generally
            serves no additional purpose. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.Info">
            <summary>
            Indicates that the message is informational. No action should be taken
            for these type of messages.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.Warning">
            <summary>
            Indicates that something happened that might adversely affect the system's operation.
            This level can also be used for expected errors. Warnings can be precursors
            to errors in the system. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.Error">
            <summary>
            Indicates that something happened that might adversely affect the system's operation.
            This level should be reserved for errors that are not expected to occur. 
            These are non-urgent failures to the system.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevel.Critical">
            <summary>
            Indicates that something happened that will render certain components useless. These
            errors can be recovered from. An example case would be one of those 
            "this should never happen" errors that were likely not handled properly and thus could
            eventually make the system unstable or unusable.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageLevelFlags">
            <summary>
            The level of importance of a message that is being raised. Increasing from Debug, Info, Warning, Error, Critical.
            None can be specified, but this indicates an importance level cannot be properly identified, and the message
            will be routed based on <see cref="T:GSF.Diagnostics.MessageFlags"/>.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.NA">
            <summary>
            Indicates a level that cannot be generally subscribed to. In this case,
            the message can only be subscribed to if a <see cref="T:GSF.Diagnostics.MessageFlags"/> is subscribed to.
            Example: First Chance AppDomain Exceptions could fall under here because it's impossible
            to assign the risk of this king of exception. Instead the SystemHealth flag will be raised.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.Debug">
            <summary>
            Indicates a message that may assist in debugging code and generally
            serves no additional purpose. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.Info">
            <summary>
            Indicates that the message is informational. No action should be taken
            for these type of messages.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.Warning">
            <summary>
            Indicates that something happened that might adversely affect the system's operation.
            This level can also be used for expected errors. Warnings can be precursors
            to errors in the system. 
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.Error">
            <summary>
            Indicates that something happened that might adversely affect the system's operation.
            This level should be reserved for errors that are not expected to occur. 
            These are non-urgent failures to the system.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageLevelFlags.Critical">
            <summary>
            Indicates that something happened that will render certain components useless. These
            errors can be recovered from. An example case would be one of those 
            "this should never happen" errors that were likely not handled properly and thus could
            eventually make the system unstable or unusable.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageRate">
            <summary>
            Defines a message rate for the message suppression algorithm
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageRate.m_rate">
            <summary>
            The rate in messages per second. (add 1 to this time, so the default is 1 message per second)
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageRate.Default">
            <summary>
            Gets the default message rate. Which is 1 message per second.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.PerSecond(System.Double)">
            <summary>
            As messages per second.
            </summary>
            <param name="messagesPerSecond">the number of messages to allow per second</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.PerMinute(System.Double)">
            <summary>
            As messages per minute.
            </summary>
            <param name="messagesPerMinute">the number of messages to allow per minute</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.PerHour(System.Double)">
            <summary>
            As messages per hour.
            </summary>
            <param name="messagesPerHour">the number of messages to allow per hour</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.PerDay(System.Double)">
            <summary>
            As messages per day.
            </summary>
            <param name="messagesPerDay">the number of messages to allow per day</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.EveryFewSeconds(System.Double)">
            <summary>
            As a minimum timespan between each message.
            </summary>
            <param name="seperation">the number of seconds between messages</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.EveryFewMinutes(System.Double)">
            <summary>
            As a minimum timespan between each message.
            </summary>
            <param name="seperation">the number of Minutes between messages</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.EveryFewHours(System.Double)">
            <summary>
            As a minimum timespan between each message.
            </summary>
            <param name="seperation">the number of Hours between messages</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.EveryFewDays(System.Double)">
            <summary>
            As a minimum timespan between each message.
            </summary>
            <param name="seperation">the number of Days between messages</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Diagnostics.MessageRate.op_Implicit(GSF.Diagnostics.MessageRate)~System.Double">
            <summary>
            Implicitly convert the message rate to a rate per second.
            </summary>
            <param name="rate">the item to convert.</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.MessageSuppression">
            <summary>
            Indicates the suppression level that this message received
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppression.None">
            <summary>
            This message did not receive a suppression level.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppression.Standard">
            <summary>
            Indicates that the message rate is slightly over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppression.Heavy">
            <summary>
            Indicates that the message rate is heavily over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppression.Severe">
            <summary>
            Indicates that the message rate is severely over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.MessageSuppressionFlags">
            <summary>
            Indicates the suppression level that this message received
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppressionFlags.None">
            <summary>
            This message did not receive a suppression level.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppressionFlags.Standard">
            <summary>
            Indicates that the message rate is slightly over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppressionFlags.Heavy">
            <summary>
            Indicates that the message rate is heavily over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.MessageSuppressionFlags.Severe">
            <summary>
            Indicates that the message rate is severely over normal levels. Only subscribers specifically
            asking for this suppression level will receive this message.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.NewLogMessageEventHandler">
            <summary>
            A log message delegate
            </summary>
            <param name="logMessage">the log message</param>
        </member>
        <member name="T:GSF.Diagnostics.PublisherTypeDefinition">
            <summary>
            Contains all of the metadata associated with a <see cref="T:System.Type"/> that will 
            be serialized to the disk.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherTypeDefinition.TypeName">
            <summary>
            The <see cref="T:System.Type"/> associated with <see cref="T:GSF.Diagnostics.LogPublisher"/> that generated the message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherTypeDefinition.AssemblyName">
            <summary>
            The <see cref="T:System.Reflection.Assembly"/> associated with <see cref="T:GSF.Diagnostics.LogPublisher"/> that generated the message.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherTypeDefinition.AssemblyVersion">
            <summary>
            Gets the version number of the <see cref="T:System.Reflection.Assembly"/> that this <see cref="T:GSF.Diagnostics.LogPublisher"/>'s type 
            belongs to.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherTypeDefinition.RelatedTypes">
            <summary>
            All related types such as interfaces/parent classes for the current type.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.PublisherTypeDefinition.m_hashCode">
            <summary>
            A hashCode code of this owner.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.#ctor(System.Type)">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.PublisherTypeDefinition"/> by looking it up from <see pref="type"/>.
            </summary>
            <param name="type"></param>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.#ctor(System.IO.Stream)">
            <summary>
            Loads a log messages from the supplied stream
            </summary>
            <param name="stream">the stream to load the log message from.</param>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.#ctor(System.String,System.String)">
            <summary>
            A backwards compatible means of generating this type data if <see cref="T:System.Type"/> is not available.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.Save(System.IO.Stream)">
            <summary>
            Writes the log data to the stream
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.ToString">
            <summary>
            Returns a string that represents the current object.
            </summary>
            <returns>
            A string that represents the current object.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object"/>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            true if the specified object  is equal to the current object; otherwise, false.
            </returns>
            <param name="obj">The object to compare with the current object. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.Equals(GSF.Diagnostics.PublisherTypeDefinition)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <returns>
            true if the current object is equal to the <paramref name="obj"/> parameter; otherwise, false.
            </returns>
            <param name="obj">An object to compare with this object.</param>
        </member>
        <member name="M:GSF.Diagnostics.PublisherTypeDefinition.TrimAfterFullName(System.String)">
            <summary>
            Trims the unused information after the namespace.class+subclass details.
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Diagnostics.ThreadPoolTrace">
            <summary>
            Executes a trace on the <see cref="T:System.Threading.ThreadPool"/> for all callbacks currently queued.
            This will not include work items that have a time delayed callback.
            </summary>
            <remarks>
            This class heavily relies on reflection to get the ThreadPool queue.
            Therefore it is very unlikely to work in MONO and can break 
            if Microsoft changes any of the member names or how the ThreadPool 
            works.
            
            In this case <see cref="P:GSF.Diagnostics.ThreadPoolTrace.WorksInThisRuntime"/> will be set to false
            and <see cref="M:GSF.Diagnostics.ThreadPoolTrace.GetTrace(System.Text.StringBuilder)"/> will return "Not Supported"
            
            </remarks>
        </member>
        <member name="P:GSF.Diagnostics.ThreadPoolTrace.WorksInThisRuntime">
            <summary>
            Indicates that this trace works in the runtime version of .NET.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.ThreadPoolTrace.GetTrace(System.Text.StringBuilder)">
            <summary>
            Traces all queued items on the ThreadPool.
            </summary>
            <param name="sb"></param>
        </member>
        <member name="T:GSF.Diagnostics.TimerTrace">
            <summary>
            Executes a trace on the <see cref="T:System.Threading.Timer"/> for all queued timers.
            </summary>
            <remarks>
            This class heavily relies on reflection to get the Timer queue.
            Therefore it is very unlikely to work in MONO and can break 
            if Microsoft changes any of the member names or how the Timer 
            works.
            
            In this case <see cref="P:GSF.Diagnostics.TimerTrace.WorksInThisRuntime"/> will be set to false
            and <see cref="M:GSF.Diagnostics.TimerTrace.GetTrace(System.Text.StringBuilder)"/> will return "Not Supported"
            
            </remarks>
        </member>
        <member name="P:GSF.Diagnostics.TimerTrace.WorksInThisRuntime">
            <summary>
            Indicates that this trace works in the runtime version of .NET.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.TimerTrace.GetTrace(System.Text.StringBuilder)">
            <summary>
            Gets all of the callbacks for all timers.
            </summary>
            <param name="sb"></param>
        </member>
        <member name="T:GSF.Diagnostics.LogFileCompactor">
            <summary>
            A method to read all of the logs in a single file.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileCompactor.Compact(System.Collections.Generic.ICollection{System.String},System.String)">
            <summary>
            Reads all log messages from the supplied file.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogFileReader">
            <summary>
            A method to read all of the logs in a single file.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileReader.Read(System.String)">
            <summary>
            Reads all log messages from the supplied file.
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogFileWriter">
            <summary>
            A log subscriber that will log messages to a file.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.LogFileWriter.FileName">
            <summary>
            The file name
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriter.#ctor(System.String)">
            <summary>
            Creates a LogFileWriter that initially queues message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogFileWriter.LogCount">
            <summary>
            The number of logs that have been written to this file.
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogFileWriter.LogSize">
            <summary>
            The current size of the log file.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriter.Write(GSF.Diagnostics.LogMessage,System.Boolean)">
            <summary>
            Writes the specified log to the file
            </summary>
            <param name="log"></param>
            <param name="autoFlush"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriter.Flush">
            <summary>
            Flushes the stream to the disk.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogFileWriter.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Diagnostics.LogSubscriptionConsole">
            <summary>
            Creates a <see cref="T:GSF.Diagnostics.LogSubscriber"/> that will write messages to the <see cref="N:GSF.Console"/>
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionConsole.#ctor">
            <summary>
            Creates a LogFileWriter that initially queues message
            </summary>
        </member>
        <member name="P:GSF.Diagnostics.LogSubscriptionConsole.Verbose">
            <summary>
            Gets or sets verbosity level for this <see cref="T:GSF.Diagnostics.LogSubscriptionConsole"/>.
            To disable the console from receiving messages, set to <see cref="F:GSF.Diagnostics.VerboseLevel.None"/>
            </summary>
        </member>
        <member name="T:GSF.Diagnostics.LogSubscriptionFileWriter">
            <summary>
            A log subscription that will write messages to a file
            </summary>
        </member>
        <member name="E:GSF.Diagnostics.LogSubscriptionFileWriter.NewFileComplete">
            <summary>
            When a new file has been completed.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionFileWriter.#ctor(System.Int32)">
            <summary>
            Creates a LogFileWriter that initially queues message
            </summary>
            <param name="messageLimit">the number of messages to maintain</param>
        </member>
        <member name="P:GSF.Diagnostics.LogSubscriptionFileWriter.Verbose">
            <summary>
            Gets or sets verbosity level for this <see cref="T:GSF.Diagnostics.LogSubscriptionFileWriter"/>.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionFileWriter.SetLoggingFileCount(System.Int32)">
            <summary>
            Sets the maximum number of log files before a new one will delete the oldest one.
            </summary>
            <param name="maxFileCount"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionFileWriter.SetPath(System.String)">
            <summary>
            Sets the path of the log files.
            </summary>
            <param name="logDirectory"></param>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionFileWriter.SetPath(System.String,GSF.Diagnostics.VerboseLevel)">
            <summary>
            Sets log file writer path and optionally its verbosity level.
            </summary>
        </member>
        <member name="M:GSF.Diagnostics.LogSubscriptionFileWriter.Dispose">
            <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Diagnostics.VerboseLevel">
            <summary>
            General Verbose Levels exposed to the user for application logging.
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.None">
            <summary>
            None
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.Low">
            <summary>
            Component=Error, Framework=Error, Application=Warning
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.Medium">
            <summary>
            Component=Warning, Framework=Warning, Application=Info
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.High">
            <summary>
            Component=Info, Framework=Info, Application=Debug
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.Ultra">
            <summary>
            Component=Debug, Framework=Debug, Application=Debug
            </summary>
        </member>
        <member name="F:GSF.Diagnostics.VerboseLevel.All">
            <summary>
            Component=Debug, Framework=Debug, Application=Debug, Include Suppressed Logs.
            </summary>
        </member>
        <member name="T:GSF.Drawing.BitmapExtensions">
            <summary>
            Defines extension functions related to bitmap image manipulation.
            </summary>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.Resize(System.Drawing.Image,System.Drawing.Size)">
             <summary>
             Returns a resized <see cref="T:System.Drawing.Bitmap"/> image of the original.
             </summary>
             <param name="originalImage">The original <see cref="T:System.Drawing.Bitmap"/> image to be resized.</param>
             <param name="newSize">The <see cref="T:System.Drawing.Size"/> to which the original image is to be resized.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to resize an image:
             <code>
             using System;
             using GSF.Drawing;
             using System.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load the original image.
                     Bitmap original = (Bitmap)Bitmap.FromFile("Original.jpg");
                     // Resize the original image.
                     Bitmap originalResized = original.Resize(new Size(800, 600));
                     // Save the resized image to file.
                     originalResized.Save("OriginalResized.jpg");
            
                     // Clean-up.
                     original.Dispose();
                     originalResized.Dispose();
                     
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.Resize(System.Drawing.Image,System.Drawing.Size,System.Boolean)">
             <summary>
             Returns a resized <see cref="T:System.Drawing.Bitmap"/> image of the original.
             </summary>
             <param name="originalImage">The original <see cref="T:System.Drawing.Bitmap"/> image to be resized.</param>
             <param name="newSize">The <see cref="T:System.Drawing.Size"/> to which the original image is to be resized.</param>
             <param name="disposeOriginal">true if the original image is to be disposed after resizing it; otherwise false.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to resize an image and dispose the original image that was resized:
             <code>
             using System;
             using System.Drawing;
             using GSF.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load original, resize it, and dispose original.
                     using (Bitmap resized = ((Bitmap)Bitmap.FromFile("Original.jpg")).Resize(new Size(800, 600), true))
                     {
                         // Save the resized image to file.
                         resized.Save("OriginalResized.jpg");
                     }
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.Crop(System.Drawing.Image,System.Drawing.Rectangle)">
             <summary>
             Returns a cropped <see cref="T:System.Drawing.Bitmap"/> image of the original.
             </summary>
             <param name="originalImage">The original <see cref="T:System.Drawing.Bitmap"/> image to be cropped.</param>
             <param name="croppedArea">The <see cref="T:System.Drawing.Rectangle"/> area of the original image to be cropped.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to crop an image:
             <code>
             using System;
             using System.Drawing;
             using GSF.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load the original image.
                     Bitmap original = (Bitmap)Bitmap.FromFile("Original.jpg");
                     // Crop the original image.
                     Bitmap originalCropped = original.Crop(new Rectangle(0, 0, 300, 300));
                     // Save the cropped image to file.
                     originalCropped.Save("OriginalCropped.jpg");
                     
                     // Clean-up.
                     original.Dispose();
                     originalCropped.Dispose();
            
                     Console.ReadLine();
                 }
             }        
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.Crop(System.Drawing.Image,System.Drawing.Rectangle,System.Boolean)">
             <summary>
             Returns a cropped <see cref="T:System.Drawing.Bitmap"/> image of the original.
             </summary>
             <param name="originalImage">The original <see cref="T:System.Drawing.Bitmap"/> image to be cropped.</param>
             <param name="croppedArea">The <see cref="T:System.Drawing.Rectangle"/> area of the original image to be cropped.</param>
             <param name="disposeOriginal">true if the original image is to be disposed after cropping it; otherwise false.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to crop an image and dispose the original image that was cropped:
             <code>
             using System;
             using System.Drawing;
             using GSF.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load original, crop it, and dispose original.
                     using (Bitmap cropped = ((Bitmap)Bitmap.FromFile("Original.jpg")).Crop(new Rectangle(0, 0, 300, 300), true))
                     {
                         // Save the cropped image to file.
                         cropped.Save("OriginalCropped.jpg");
                     }
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.ConvertTo(System.Drawing.Image,System.Drawing.Imaging.ImageFormat)">
             <summary>
             Converts a <see cref="T:System.Drawing.Bitmap"/> image to the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
             </summary>
             <param name="originalImage">The <see cref="T:System.Drawing.Bitmap"/> image to be converted.</param>
             <param name="newFormat">The new <see cref="T:System.Drawing.Imaging.ImageFormat"/> of the image.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to convert the format of an image:
             <code>
             using System;
             using System.Drawing;
             using System.Drawing.Imaging;
             using GSF.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load the original image.
                     Bitmap original = (Bitmap)Bitmap.FromFile("Original.jpg");
                     // Convert the original image.
                     Bitmap originalGif = original.ConvertTo(ImageFormat.Gif);
                     // Save the converted image to file.
                     originalGif.Save("OriginalGif.gif");
            
                     // Clean-up.
                     original.Dispose();
                     originalGif.Dispose();
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.ConvertTo(System.Drawing.Image,System.Drawing.Imaging.ImageFormat,System.Boolean)">
             <summary>
             Converts a <see cref="T:System.Drawing.Bitmap"/> image to the specified <see cref="T:System.Drawing.Imaging.ImageFormat"/>.
             </summary>
             <param name="originalImage">The <see cref="T:System.Drawing.Bitmap"/> image to be converted.</param>
             <param name="newFormat">The new <see cref="T:System.Drawing.Imaging.ImageFormat"/> of the image.</param>
             <param name="disposeOriginal">true if the original image is to be disposed after converting it; otherwise false.</param>
             <returns>A <see cref="T:System.Drawing.Bitmap"/> instance.</returns>
             <example>
             This example shows how to convert the format of an image and dispose the original image that was converted:
             <code>
             using System;
             using System.Drawing;
             using System.Drawing.Imaging;
             using GSF.Drawing;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Load original, convert it, and dispose original.
                     using (Bitmap converted = ((Bitmap)Bitmap.FromFile("Original.jpg")).ConvertTo(ImageFormat.Gif))
                     {
                         // Save the converted image to file.
                         converted.Save("OriginalGif.gif");
                     }
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.FromPixelData(System.Int32,System.UInt32[])">
            <summary>
            Converts from an array of pixel data to a <see cref="T:System.Drawing.Bitmap"/> image.
            </summary>
            <param name="width">The width of the bitmap.</param>
            <param name="pixelData">The values of individual pixels in ARGB format.</param>
            <returns>A bitmap image converted from the pixel data.</returns>
        </member>
        <member name="M:GSF.Drawing.BitmapExtensions.ToPixelData(System.Drawing.Bitmap)">
            <summary>
            Converts from a bitmap image to an array of pixel data.
            </summary>
            <param name="bitmap">The bitmap image to be converted.</param>
            <returns>The pixel data contained in the image.</returns>
        </member>
        <member name="T:GSF.Drawing.NamespaceDoc">
            <summary>
            Contains extension functions used to simplify managing images.
            </summary>
        </member>
        <member name="T:GSF.Drawing.Point">
            <summary>
            Represents a point in an xy-coordinate system.
            </summary>
        </member>
        <member name="M:GSF.Drawing.Point.#ctor(System.Double,System.Double)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Drawing.Point"/> class.
            </summary>
            <param name="x">The x-coordinate of the point.</param>
            <param name="y">The y-coordinate of the point.</param>
        </member>
        <member name="P:GSF.Drawing.Point.X">
            <summary>
            Gets the x-coordinate of the point.
            </summary>
        </member>
        <member name="P:GSF.Drawing.Point.Y">
            <summary>
            Gets the y-coordinate of the point.
            </summary>
        </member>
        <member name="T:GSF.Endianness">
            <summary>
            Endian Byte Order Enumeration.
            </summary>
        </member>
        <member name="F:GSF.Endianness.BigEndian">
            <summary>
            Big-endian byte order.
            </summary>
        </member>
        <member name="F:GSF.Endianness.LittleEndian">
            <summary>
            Little-endian byte order.
            </summary>
        </member>
        <member name="T:GSF.BigEndianOrder">
            <summary>
            Represents a big-endian byte order interoperability class.
            </summary>
        </member>
        <member name="M:GSF.BigEndianOrder.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.BigEndianOrder"/> class.
            </summary>
        </member>
        <member name="P:GSF.BigEndianOrder.Default">
            <summary>
            Returns the default instance of the <see cref="T:GSF.BigEndianOrder"/> class.
            </summary>
        </member>
        <member name="T:GSF.LittleEndianOrder">
            <summary>
            Represents a little-endian byte order interoperability class.
            </summary>
        </member>
        <member name="M:GSF.LittleEndianOrder.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.LittleEndianOrder"/> class.
            </summary>
        </member>
        <member name="P:GSF.LittleEndianOrder.Default">
            <summary>
            Returns the default instance of the <see cref="T:GSF.LittleEndianOrder"/> class.
            </summary>
        </member>
        <member name="T:GSF.NativeEndianOrder">
            <summary>
            Represents a native-endian byte order interoperability class.
            </summary>
        </member>
        <member name="M:GSF.NativeEndianOrder.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.NativeEndianOrder"/> class.
            </summary>
        </member>
        <member name="P:GSF.NativeEndianOrder.Default">
            <summary>
            Returns the default instance of the <see cref="T:GSF.NativeEndianOrder"/> class.
            </summary>
        </member>
        <member name="T:GSF.EndianOrder">
            <summary>
            Represents an endian byte order interoperability class.
            </summary>
            <remarks>
            Intel systems use little-endian byte order, other systems, such as Unix, use big-endian byte ordering.
            Little-endian ordering means bits are ordered such that the bit whose in-memory representation is right-most is the most-significant-bit in a byte.
            Big-endian ordering means bits are ordered such that the bit whose in-memory representation is left-most is the most-significant-bit in a byte.
            </remarks>
        </member>
        <member name="M:GSF.EndianOrder.#ctor(GSF.Endianness)">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.EndianOrder"/> class.
            </summary>
            <param name="targetEndianness">Endianness parameter.</param>
        </member>
        <member name="P:GSF.EndianOrder.TargetEndianness">
            <summary>
            Returns the target endian-order of this <see cref="T:GSF.EndianOrder"/> representation.
            </summary>
        </member>
        <member name="M:GSF.EndianOrder.CopyBuffer(System.Byte[],System.Int32,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Copies a buffer in the target endian-order of this <see cref="T:GSF.EndianOrder"/> representation.
            </summary>
            <param name="sourceBuffer">The source buffer.</param>
            <param name="sourceIndex">The byte offset into <paramref name="sourceBuffer"/>.</param>
            <param name="destinationBuffer">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationBuffer"/>.</param>
            <param name="length">The number of bytes to copy.</param>
        </member>
        <member name="M:GSF.EndianOrder.CoerceByteOrder(System.Byte[])">
            <summary>
            Changes the order of a buffer (reverse or pass-through) based on the target endian-order of this <see cref="T:GSF.EndianOrder"/> representation.
            </summary>
            <param name="buffer">Byte buffer to be coerced.</param>
            <returns>Coerced byte array.</returns>
        </member>
        <member name="M:GSF.EndianOrder.ToBoolean(System.Byte[],System.Int32)">
            <summary>
            Returns a <see cref="T:System.Boolean"/> value converted from one byte at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes.</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>true if the byte at startIndex in value is nonzero; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToChar(System.Byte[],System.Int32)">
            <summary>
            Returns a Unicode character converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A character formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Returns a double-precision floating point number converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A double-precision floating point number formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit signed integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit signed integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit signed integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit signed integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit signed integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit signed integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit signed integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Returns a single-precision floating point number converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A single-precision floating point number formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit unsigned integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit unsigned integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToUInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit unsigned integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit unsigned integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit unsigned integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit unsigned integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit unsigned integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.ToGuid(System.Byte[],System.Int32)">
            <summary>
            Returns a <see cref="T:System.Guid"/> converted from sixteen bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A <see cref="T:System.Guid"/> formed by sixteen bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes``1(``0)">
            <summary>
            Returns the specified value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Boolean)">
            <summary>
            Returns the specified <see cref="T:System.Boolean"/> value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Char)">
            <summary>
            Returns the specified Unicode character value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The Unicode character value to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Double)">
            <summary>
            Returns the specified double-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Int16)">
            <summary>
            Returns the specified 16-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(GSF.Int24)">
            <summary>
            Returns the specified 24-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Int32)">
            <summary>
            Returns the specified 32-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Int64)">
            <summary>
            Returns the specified 64-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Single)">
            <summary>
            Returns the specified single-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.UInt16)">
            <summary>
            Returns the specified 16-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(GSF.UInt24)">
            <summary>
            Returns the specified 24-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.UInt32)">
            <summary>
            Returns the specified 32-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.UInt64)">
            <summary>
            Returns the specified 64-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.EndianOrder.GetBytes(System.Guid)">
            <summary>
            Returns the specified <see cref="T:System.Guid"/> value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 16.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes``1(``0,System.Byte[],System.Int32)">
            <summary>
            Copies the specified primitive type value as an array of bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
            <returns>Length of bytes copied into array based on size of <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Boolean,System.Byte[],System.Int32)">
            <summary>
            Copies the specified <see cref="T:System.Boolean"/> value as an array of 1 byte in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Char,System.Byte[],System.Int32)">
            <summary>
            Copies the specified Unicode character value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The Unicode character value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Double,System.Byte[],System.Int32)">
            <summary>
            Copies the specified double-precision floating point value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Int16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit signed integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(GSF.Int24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit signed integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Int32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit signed integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Int64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit signed integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Single,System.Byte[],System.Int32)">
            <summary>
            Copies the specified single-precision floating point value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.UInt16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit unsigned integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(GSF.UInt24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit unsigned integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.UInt32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit unsigned integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.UInt64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit unsigned integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.EndianOrder.CopyBytes(System.Guid,System.Byte[],System.Int32)">
            <summary>
            Copies the specified <see cref="T:System.Guid"/> value as an array of 16 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Guid"/> to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="F:GSF.EndianOrder.BigEndian">
            <summary>Default instance of the Big-Endian byte order conversion class.</summary>
        </member>
        <member name="F:GSF.EndianOrder.LittleEndian">
            <summary>Default instance of the Little-Endian byte order conversion class.</summary>
        </member>
        <member name="T:GSF.ErrorManagement.ErrorLogger">
             <summary>
             Represents a logger that can be used for logging handled as well as unhandled exceptions across multiple 
             application types (Console Application, Windows Service, Web Application, Web Service).
             </summary>
             <remarks>
             <para>
             Adapted from exception handling code by Jeff Atwood of CodingHorror.com. Demo projects for handling unhandled
             exception in both windows and web environment by Jeff Atwood are available at The Code Project web site.
             See: http://www.codeproject.com/script/articles/list_articles.asp?userid=450027
             </para>
             <para>
             Error logger with Windows Forms capabilities can be found in the GSF.Windows assembly.
             </para>
             </remarks>
             <example>
             This example shows how to use the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> component to log handled and unhandled exceptions:
             <code>
             using System;
             using System.IO;
             using GSF.ErrorManagement;
            
             class Program
             {
                 static ErrorLogger s_logger;
            
                 static Program()
                 {
                     s_logger = new ErrorLogger();
                     s_logger.LogToUI = true;                    // Show exception info on the UI.
                     s_logger.LogToFile = true;                  // Log exception info to a file.
                     s_logger.LogToEmail = true;                 // Send exception info in an e-mail.
                     s_logger.LogToEventLog = true;              // Log exception info to the event log.
                     s_logger.ContactEmail = "dev@email.com";    // Provide an e-mail address.
                     s_logger.HandleUnhandledException = true;   // Configure to handle unhandled exceptions.
                     s_logger.PersistSettings = true;            // Save settings to the config file.
                     s_logger.Initialize();                      // Initialize ErrorLogger component for use.
                 }
            
                 static void Main(string[] args)
                 {
                     try
                     {
                         // This may cause a handled FileNotFoundException if the file doesn't exist.
                         string data = File.ReadAllText(@"c:\NonExistentFile.txt");
                     }
                     catch (Exception ex)
                     {
                         // When logging handled exceptions we want to disable loggers (UI logger and E-mail logger) that
                         // may require interaction either directly or indirectly as it can be annoying. All the loggers
                         // are enabled automatically after the handled exception has been logged.
                         s_logger.SuppressInteractiveLogging();
                         s_logger.Log(ex);
                     }
            
                     int numerator = 1;
                     int denominator = 0;
                     int result = numerator / denominator;   // This will cause an unhandled DivideByZeroException.
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
             <seealso cref="T:GSF.ErrorManagement.ErrorModule"/>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogToUI">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToUI"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogToFile">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToFile"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogToEmail">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToEmail"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogToEventLog">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToEventLog"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogToDatabase">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToDatabase"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultLogUserInfo">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogUserInfo"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultDatabaseLogSize">
            <summary>
            Specifies the default value for the <see cref="F:GSF.ErrorManagement.ErrorLogger.DefaultDatabaseLogSize"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultSmtpServer">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.SmtpServer"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultContactName">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.ContactName"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultContactEmail">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.ContactEmail"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultContactPhone">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.ContactPhone"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultHandleUnhandledException">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.HandleUnhandledException"/> property.
            </summary>
        </member>
        <member name="F:GSF.ErrorManagement.ErrorLogger.DefaultExitOnUnhandledException">
            <summary>
            Specifies the default value for the <see cref="P:GSF.ErrorManagement.ErrorLogger.ExitOnUnhandledException"/> property.
            </summary>
        </member>
        <member name="E:GSF.ErrorManagement.ErrorLogger.LoggingException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered while logging an <see cref="T:System.Exception"/>.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> that was encountered while logging an <see cref="T:System.Exception"/>.
            </remarks>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> class.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> class.
            </summary>
            <param name="container"><see cref="T:System.ComponentModel.IContainer"/> object that contains the <see cref="T:GSF.ErrorManagement.ErrorLogger"/>.</param>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogToUI">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:System.Exception"/> information is to be 
            displayed on the application UI.
            </summary>
            <remarks>
            This setting is ignored in Windows Service and Web Service application types.
            </remarks>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogToFile">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:System.Exception"/> information is to be 
            written to the <see cref="P:GSF.ErrorManagement.ErrorLogger.ErrorLog"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogToEmail">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:System.Exception"/> information is to be sent 
            in an e-mail to the <see cref="P:GSF.ErrorManagement.ErrorLogger.ContactEmail"/> address.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogToEventLog">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:System.Exception"/> information is to be 
            written to the <see cref="T:System.Diagnostics.EventLog"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogToDatabase">
            <summary>
            Gets or sets a boolean value that indicates whether <see cref="T:System.Exception"/> information is to be 
            written to the database.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LogUserInfo">
            <summary>
            Gets or sets a boolean value that indicates whether information about local user (for windows applications) 
            or remote user (for web applications) is to be logged when logging an <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.DatabaseLogSize">
            <summary>
            Gets or sets the maximum exception log size to maintain when logging exceptions to the database.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.SmtpServer">
            <summary>
            Gets or sets the SMTP server to be used for sending e-mail messages containing <see cref="T:System.Exception"/> 
            information to the <see cref="P:GSF.ErrorManagement.ErrorLogger.ContactEmail"/> address.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ContactName">
            <summary>
            Gets or sets the name of the person who can be contacted by the end-user in case of an <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ContactEmail">
            <summary>
            Gets or sets the e-mail address where e-mail messages containing <see cref="T:System.Exception"/> information are 
            to be sent when the <see cref="P:GSF.ErrorManagement.ErrorLogger.LogToEmail"/> property is set to true.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ContactPhone">
            <summary>
            Gets or sets the phone number that can be used by the end-user to communicate about an encountered <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object are to be saved
            to the config file if the <see cref="P:GSF.ErrorManagement.ErrorLogger.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.HandleUnhandledException">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object must register 
            itself to handle <see cref="T:System.Exception"/> that are not trapped inside of a try-catch block.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ExitOnUnhandledException">
            <summary>
            Gets or sets a boolean value that indicates whether the application will terminate after logging an 
            unhandled <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ErrorLog">
            <summary>
            Get the <see cref="T:GSF.IO.LogFile"/> object used for logging <see cref="T:System.Exception"/> information to a file.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object is currently enabled.
            </summary>
            <remarks>
            <see cref="P:GSF.ErrorManagement.ErrorLogger.Enabled"/> property is not be set by user-code directly.
            </remarks>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ErrorTextMethod">
            <summary>
            Gets or sets the <see cref="T:System.Delegate"/> that provides common text stating what could have possibly 
            caused the <see cref="T:System.Exception"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null.</exception>
            <example>
            Sample text:
            <para>
            An unexpected exception has occurred in RogueApplication. This may be due to an inconsistent system 
            state or a programming error.
            </para>
            </example>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ScopeTextMethod">
            <summary>
            Gets or sets the <see cref="T:System.Delegate"/> that provides text stating what is going to happen as a result 
            of the <see cref="T:System.Exception"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null.</exception>
            <example>
            Sample text:
            <para>The action you requested was not performed.</para>
            </example>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ActionTextMethod">
            <summary>
            Gets or sets the <see cref="T:System.Delegate"/> that provides text stating the action(s) that can be taken by 
            the end-user after an <see cref="T:System.Exception"/> is encountered.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null.</exception>
            <example>
            Sample text:
            <para>Close your browser, navigate back to the website, and try repeating you last action.</para>
            </example>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.MoreInfoTextMethod">
            <summary>
            Gets or sets the <see cref="T:System.Delegate"/> that provides text containing detailed information about the 
            encountered <see cref="T:System.Exception"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null.</exception>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.SuppressInteractiveLogging">
            <summary>
            Gets or sets flag that controls if <see cref="P:GSF.ErrorManagement.ErrorLogger.Loggers"/> requiring interaction either directly or indirectly
            when logging handled <see cref="T:System.Exception"/> using the <see cref="M:GSF.ErrorManagement.ErrorLogger.Log(System.Exception)"/> method are enabled.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ApplicationName">
            <summary>
            Gets the name of the currently executing application.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.ApplicationType">
            <summary>
            Gets the type of the currently executing application.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.LastException">
            <summary>
            Get the last encountered <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.Loggers">
            <summary>
            Gets a list of methods registered for logging information about an encountered <see cref="T:System.Exception"/>.
            </summary>
            <remarks>
            This property can be used to register additional methods for logging information about an encountered
            <see cref="T:System.Exception"/>. When an <see cref="T:System.Exception"/> is logged, all registered methods that take 
            <see cref="T:System.Exception"/> as a parameter are invoked.
            </remarks>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorLogger.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object and optionally releases the 
            managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object.
            </summary>
            <remarks>
            <see cref="M:GSF.ErrorManagement.ErrorLogger.Initialize"/> is to be called by user-code directly only if the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> 
            object is not consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.BeginInit">
            <summary>
            Performs necessary operations before the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.ErrorManagement.ErrorLogger.BeginInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.EndInit">
            <summary>
            Performs necessary operations after the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.ErrorManagement.ErrorLogger.EndInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.SaveSettings">
            <summary>
            Saves settings for the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object to the config file if the <see cref="P:GSF.ErrorManagement.ErrorLogger.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.ErrorManagement.ErrorLogger.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.LoadSettings">
            <summary>
            Loads saved settings for the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object from the config file if the <see cref="P:GSF.ErrorManagement.ErrorLogger.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.ErrorManagement.ErrorLogger.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Log(System.Exception)">
            <summary>
            Logs information about the encountered <see cref="T:System.Exception"/>.
            </summary>
            <param name="exception">Encountered <see cref="T:System.Exception"/> whose information is to be logged.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Log(System.Exception,System.Boolean)">
            <summary>
            Logs information about the encountered <see cref="T:System.Exception"/>.
            </summary>
            <param name="exception">Encountered <see cref="T:System.Exception"/> whose information is to be logged.</param>
            <param name="exitApplication">true to exit the application; otherwise false.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Register">
            <summary>
            Registers the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object to handle unhandled <see cref="T:System.Exception"/> if the 
            <see cref="P:GSF.ErrorManagement.ErrorLogger.HandleUnhandledException"/> property is set to true.
            </summary>
            <returns><c>true</c> if handlers were registered; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.Unregister">
            <summary>
            Unregister the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object from handling unhandled <see cref="T:System.Exception"/>.
            </summary>
            <returns><c>true</c> if handlers were unregistered; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToUI(System.Exception)">
            <summary>
            Logs encountered <see cref="T:System.Exception"/> to the application UI.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> that was encountered.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToWindowsGui">
            <summary>
            Shows <see cref="T:System.Exception"/> information in a Windows Application.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToWindowsCui">
            <summary>
            Shows <see cref="T:System.Exception"/> information in a Console Application.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToWebPage">
            <summary>
            Shows <see cref="T:System.Exception"/> information in a Web Site.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToFile(System.Exception)">
            <summary>
            Logs encountered <see cref="T:System.Exception"/> to the <see cref="P:GSF.ErrorManagement.ErrorLogger.ErrorLog"/>.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> that was encountered.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToEmail(System.Exception)">
            <summary>
            Logs encountered <see cref="T:System.Exception"/> to an e-mail message.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> that was encountered.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetEmailAttachments">
            <summary>
            Gets or sets the comma-separated or semicolon-separated list of file names to be attached to the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToEventLog(System.Exception)">
            <summary>
            Logs encountered <see cref="T:System.Exception"/> to the <see cref="T:System.Diagnostics.EventLog"/>.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> that was encountered.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.ExceptionToDatabase(System.Exception)">
            <summary>
            Logs encountered <see cref="T:System.Exception"/> to the database.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> that was encountered.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.OnLoggingException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.ErrorManagement.ErrorLogger.LoggingException"/> event.
            </summary>
            <param name="exception"><see cref="T:System.Exception"/> to send to <see cref="E:GSF.ErrorManagement.ErrorLogger.LoggingException"/> event.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetErrorText">
            <summary>
            Default <see cref="T:System.Delegate"/> for <see cref="P:GSF.ErrorManagement.ErrorLogger.ErrorTextMethod"/>.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetScopeText">
            <summary>
            Default <see cref="T:System.Delegate"/> for <see cref="P:GSF.ErrorManagement.ErrorLogger.ScopeTextMethod"/>.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetActionText">
            <summary>
            Default <see cref="T:System.Delegate"/> for <see cref="P:GSF.ErrorManagement.ErrorLogger.ActionTextMethod"/>.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetMoreInfoText">
            <summary>
            Default <see cref="T:System.Delegate"/> for <see cref="P:GSF.ErrorManagement.ErrorLogger.MoreInfoTextMethod"/>.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetExtendedMoreInfoText(System.String)">
            <summary>
            Allows other loggers to extend "more info text".
            </summary>
            <param name="bullet">Type of bullet to use for extended info text.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetExceptionInfo(System.Exception,System.Boolean)">
            <summary>
            Gets information about an <see cref="T:System.Exception"/> complete with system and application information.
            </summary>
            <param name="ex"><see cref="T:System.Exception"/> whose information is to be retrieved.</param>
            <param name="includeUserInfo">true if user information is to be include; otherwise false.</param>
            <returns><see cref="T:System.Exception"/> information in text.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetSystemInfo(System.Boolean)">
            <summary>
            Gets information about the system where current application is executing.
            </summary>
            <param name="includeUserInfo">true if user information is to be include; otherwise false.</param>
            <returns>System information in text.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetApplicationInfo">
            <summary>
            Gets information about the current application.
            </summary>
            <returns>Application information in text.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetExceptionGeneralInfo(System.Exception)">
            <summary>
            Gets common information about an <see cref="T:System.Exception"/>.
            </summary>
            <param name="ex"><see cref="T:System.Exception"/> whose common information is to be retrieved.</param>
            <returns>Common <see cref="T:System.Exception"/> information in text.</returns>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorLogger.GetExceptionStackTrace(System.Exception)">
            <summary>
            Gets stack trace information about an <see cref="T:System.Exception"/>.
            </summary>
            <param name="ex"><see cref="T:System.Exception"/> whose stack trace information is to be retrieved.</param>
            <returns><see cref="T:System.Exception"/> stack trace in text.</returns>
        </member>
        <member name="T:GSF.ErrorManagement.ErrorModule">
            <summary>
            Represents an HTTP module that can be used to handle exceptions globally in Web Sites and Web Services.
            </summary>
            <example>
            Below is the config file entry required for enabling error handling using <see cref="T:GSF.ErrorManagement.ErrorModule"/>:
            <code>
            <![CDATA[
            <configuration>
              <system.web>
                <httpModules>
                  <add name="ErrorModule" type="GSF.ErrorManagement.ErrorModule, GSF.Core" />
                </httpModules>
              </system.web>
            </configuration>
            ]]>
            </code>
            Below is the config file entry required for changing the settings of <see cref="P:GSF.ErrorManagement.ErrorModule.Logger"/>:
            <code>
            <![CDATA[
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="GSF.Configuration.CategorizedSettingsSection, GSF.Core" />
              </configSections>
              <categorizedSettings>
                <errorLogger>
                  <add name="LogToUI" value="False" description="True if an encountered exception is to be logged to the User Interface; otherwise False."
                    encrypted="false" />
                  <add name="LogToFile" value="True" description="True if an encountered exception is to be logged to a file; otherwise False."
                    encrypted="false" />
                  <add name="LogToEmail" value="False" description="True if an email is to be sent to ContactEmail with the details of an encountered exception; otherwise False."
                    encrypted="false" />
                  <add name="LogToEventLog" value="True" description="True if an encountered exception is to be logged to the Event Log; otherwise False."
                    encrypted="false" />
                  <add name="LogToScreenshot" value="False" description="True if a screenshot is to be taken when an exception is encountered; otherwise False."
                    encrypted="false" />
                  <add name="SmtpServer" value="smtp.email.com" description="Name of the SMTP server to be used for sending the email messages."
                    encrypted="false" />
                  <add name="ContactEmail" value="" description="Comma-seperated list of recipient email addresses for the email message."
                    encrypted="false" />
                  <add name="ContactName" value="" description="Name of the person that the end-user can contact when an exception is encountered."
                    encrypted="false" />
                  <add name="ContactPhone" value="" description="Phone number of the person that the end-user can contact when an exception is encountered."
                    encrypted="false" />
                  <add name="HandleUnhandledException" value="True" description="True if unhandled exceptions are to be handled automatically; otherwise False."
                    encrypted="false" />
                  <add name="ExitOnUnhandledException" value="False" description="True if the application must exit when an unhandled exception is encountered; otherwise False."
                    encrypted="false" />
                </errorLogger>
              </categorizedSettings>
            </configuration>
            ]]>
            </code>
            </example>
            <seealso cref="T:GSF.ErrorManagement.ErrorLogger"/>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorModule.Init(System.Web.HttpApplication)">
            <summary>
            Initializes the <see cref="T:GSF.ErrorManagement.ErrorModule"/> and prepares it to handle requests.
            </summary>
            <param name="context">The <see cref="T:System.Web.HttpApplication"/> to use for initialization.</param>
        </member>
        <member name="M:GSF.ErrorManagement.ErrorModule.Dispose">
            <summary>
            Disposes the resources (other than memory) used by the <see cref="T:GSF.ErrorManagement.ErrorModule"/>.
            </summary>
        </member>
        <member name="P:GSF.ErrorManagement.ErrorModule.Logger">
             <summary>
             Gets the <see cref="T:GSF.ErrorManagement.ErrorLogger"/> object used by the <see cref="T:GSF.ErrorManagement.ErrorModule"/> object for logging exceptions.
             </summary>
             <remarks>
             <see cref="P:GSF.ErrorManagement.ErrorModule.Logger"/> property can be used for logging handled exception throughout the web application.
             </remarks>
             <example>
             This example shows the use of <see cref="P:GSF.ErrorManagement.ErrorModule.Logger"/> for logging handled exception:
             <code>
             using System;
             using GSF.ErrorManagement;
            
             namespace WebApp
             {
                 public partial class _Default : System.Web.UI.Page
                 {
                     protected void Page_Load(object sender, EventArgs e)
                     {
                         try
                         {
                             string s = null;
                             s.ToCharArray();            // This will result in NullReferenceException.
                         }
                         catch (Exception ex)
                         {
                             ErrorModule.Logger.Log(ex); // Log the encountered exception.
                         }
                     }
                 }
             }
             </code>
             </example>
        </member>
        <member name="T:GSF.ErrorManagement.NamespaceDoc">
            <summary>
            Contains classes used to simplify and standardize error management for applications.
            </summary>
        </member>
        <member name="T:GSF.ErrorManagement.SmtpTraceListener">
            <summary>
            Represents an e-mail based <see cref="T:System.Diagnostics.TraceListener"/>.
            </summary>
            <example>
            Below is the config file entry required for enabling e-mail based tracing using <see cref="T:GSF.ErrorManagement.SmtpTraceListener"/>:
            <code>
            <![CDATA[
            <configuration>
              <system.diagnostics>
                <trace>
                  <listeners>
                    <add name="SmtpTraceListener" type="GSF.ErrorManagement.SmtpTraceListener,GSF.Core" initializeData="sender@email.com,recipient@email.com,smtp.email.com"/>
                  </listeners>
                </trace>
              </system.diagnostics>
            </configuration>
            ]]>
            </code>
            </example>
        </member>
        <member name="M:GSF.ErrorManagement.SmtpTraceListener.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ErrorManagement.SmtpTraceListener"/> class.
            </summary>
        </member>
        <member name="M:GSF.ErrorManagement.SmtpTraceListener.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ErrorManagement.SmtpTraceListener"/> class.
            </summary>
            <param name="initializationData">Initialization text in the format of "sender@email.com,recipient@email.com,smtp.email.com".</param>
        </member>
        <member name="M:GSF.ErrorManagement.SmtpTraceListener.Write(System.String)">
            <summary>
            Sends an e-mail message containing the specified message.
            </summary>
            <param name="message">The message to be sent in the e-mail message.</param>
        </member>
        <member name="M:GSF.ErrorManagement.SmtpTraceListener.WriteLine(System.String)">
            <summary>
            Sends an e-mail message containing the specified message.
            </summary>
            <param name="message">The message to be sent in the e-mail message.</param>
        </member>
        <member name="T:GSF.FastObjectFactory`1">
            <summary>
            Quickly creates new objects based on specified type.
            </summary>
            <typeparam name="T">Type of object to create quickly.</typeparam>
            <remarks>
            You can use the alternate <see cref="T:GSF.FastObjectFactory"/> implementation if you only have the <see cref="T:System.Type"/> of
            an object available (such as when you are using reflection).
            </remarks>
        </member>
        <member name="P:GSF.FastObjectFactory`1.CreateObjectFunction">
            <summary>
            Gets delegate that quickly creates new instance of the specified type.
            </summary>
        </member>
        <member name="T:GSF.FastObjectFactory">
            <summary>
            Quickly creates new objects based on specified type.
            </summary>
            <remarks>
            <see cref="T:GSF.FastObjectFactory"/> should be used when you only have the <see cref="T:System.Type"/> of an object available (such as when you are
            using reflection), otherwise you should use the generic <see cref="T:GSF.FastObjectFactory`1"/>.
            </remarks>
        </member>
        <member name="M:GSF.FastObjectFactory.GetCreateObjectFunction(System.Type)">
            <summary>
            Gets delegate that creates new instance of the <paramref name="type"/>.
            </summary>
            <param name="type">Type of object to create quickly.</param>
            <returns>Delegate to use to quickly create new objects.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="type"/> does not support parameterless public constructor.</exception>
        </member>
        <member name="M:GSF.FastObjectFactory.GetCreateObjectFunction``1(System.Type)">
            <summary>
            Gets delegate of specified return type that creates new instance of the <paramref name="type"/>.
            </summary>
            <param name="type">Type of object to create quickly.</param>
            <typeparam name="T">Type of returned object function used to create objects quickly.</typeparam>
            <returns>Delegate to use to quickly create new objects.</returns>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="type"/> does not support parameterless public constructor -or- 
            <paramref name="type"/> is not a subclass or interface implementation of function type definition.
            </exception>
            <remarks>
            This function will validate that <typeparamref name="T"/> is related to <paramref name="type"/>.
            </remarks>
        </member>
        <member name="T:GSF.FuzzyStrings.FuzzyStringComparisonTolerance">
            <summary>
            Fuzzy string comparison tolerances.
            </summary>
        </member>
        <member name="F:GSF.FuzzyStrings.FuzzyStringComparisonTolerance.Strong">
            <summary>
            Strong comparison tolerance.
            </summary>
        </member>
        <member name="F:GSF.FuzzyStrings.FuzzyStringComparisonTolerance.Normal">
            <summary>
            Normal comparison tolerance.
            </summary>
        </member>
        <member name="F:GSF.FuzzyStrings.FuzzyStringComparisonTolerance.Weak">
            <summary>
            Weak comparison tolerance.
            </summary>
        </member>
        <member name="F:GSF.FuzzyStrings.FuzzyStringComparisonTolerance.Manual">
            <summary>
            Manual comparison tolerance.
            </summary>
        </member>
        <member name="T:GSF.IdentifiableItem`2">
            <summary>
            Represents an identifiable item.
            </summary>
            <typeparam name="TId">Type of the identifier to be used for identification.</typeparam>
            <typeparam name="TItem">Type of the item that is to be made identifiable.</typeparam>
        </member>
        <member name="F:GSF.IdentifiableItem`2.ID">
            <summary>
            Defines the identifier of the <see cref="F:GSF.IdentifiableItem`2.Item"/>.
            </summary>
        </member>
        <member name="F:GSF.IdentifiableItem`2.Item">
            <summary>
            Defines the buffer being made identifiable by its associated <see cref="F:GSF.IdentifiableItem`2.ID"/>.
            </summary>
        </member>
        <member name="M:GSF.IdentifiableItem`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IdentifiableItem`2"/> class.
            </summary>
        </member>
        <member name="M:GSF.IdentifiableItem`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IdentifiableItem`2"/> class.
            </summary>
            <param name="id">The identifier of the <paramref name="item"/>.</param>
            <param name="item">The item being associated with the <paramref name="id"/> to make it identifiable.</param>
        </member>
        <member name="T:GSF.Identity.IUserInfo">
            <summary>
            Internal interface that represents common properties and methods needed by <see cref="T:GSF.Identity.UserInfo"/>
            implemented in both Windows and Unix flavors.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.DomainRespondsForUser">
            <summary>
            Gets flag that determines if domain is responding to user existence.
            </summary>
            <returns><c>true</c> if domain responds and user exists; otherwise <c>false</c>.</returns>
            <remarks>
            Note that when the domain is unavailable, this function will return <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.Identity.IUserInfo.Exists">
            <summary>
            Gets flag that determines if user exists.
            </summary>
            <returns><c>true</c> if user is found to exist; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:GSF.Identity.IUserInfo.Enabled">
            <summary>
            Gets or sets enabled state.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.LastLogon">
            <summary>
            Gets the last login time of the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.AccountCreationDate">
            <summary>
            Gets the <see cref="T:System.DateTime"/> when the account was created.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.NextPasswordChangeDate">
            <summary>
            Gets the <see cref="T:System.DateTime"/>, in UTC, of next password change for the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.LocalUserAccountControl">
            <summary>
            Gets the account control information of the local user.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.MaximumPasswordAge">
            <summary>
            Gets this maximum password age for the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.Groups">
            <summary>
            Gets all the groups associated with the user - this includes local groups and Active Directory groups if applicable.
            </summary>
            <remarks>
            <para>
            Groups names are prefixed with their associated domain, computer name or BUILTIN.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Identity.IUserInfo.LocalGroups">
            <summary>
            Gets the local groups the user is a member of.
            </summary>
            <remarks>
            <para>
            Groups names are prefixed with BUILTIN or computer name.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Identity.IUserInfo.FullLocalUserName">
            <summary>
            Gets the full user name for local accounts.
            </summary>
        </member>
        <member name="P:GSF.Identity.IUserInfo.IsLocalAccount">
            <summary>
            Gets flag that determines if this <see cref="T:GSF.Identity.UserInfo"/> instance is based on a local WinNT account instead of found through LDAP.
            </summary>
        </member>
        <member name="M:GSF.Identity.IUserInfo.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.Identity.UserInfo"/> object.
            </summary>
            <returns><c>true</c> if successfully initialized; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Identity.IUserInfo.ChangePassword(System.String,System.String)">
            <summary>
            Attempts to change the user's password.
            </summary>
            <param name="oldPassword">Old password.</param>
            <param name="newPassword">New password.</param>
        </member>
        <member name="M:GSF.Identity.IUserInfo.GetUserPropertyValue(System.String)">
            <summary>
            Returns the value for specified active directory property.
            </summary>
            <param name="propertyName">Name of the active directory property whose value is to be retrieved.</param>
            <returns><see cref="T:System.String"/> value for the specified active directory property.</returns>
        </member>
        <member name="T:GSF.Identity.NamespaceDoc">
            <summary>
            Contains classes used to simplify and standardize access to information about a domain user retrieved from Active Directory.
            </summary>
        </member>
        <member name="T:GSF.Identity.UserAccountControl">
            <summary>
            Provides facilities for enabling and disabling User Account Control (UAC), determining elevation and virtualization status, and launching a process under elevated credentials.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.CreateProcessAsAdmin(System.String,System.String)">
            <summary>
            Creates a process under the elevated token, regardless of UAC settings or the manifest associated with that process.
            </summary>
            <param name="fileName">The path to the executable file.</param>
            <param name="arguments">The command-line arguments to pass to the process.</param>
            <returns>A <see cref="T:System.Diagnostics.Process"/> object representing the newly created process.</returns>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.CreateProcessAsStandardUser(System.String,System.String)">
            <summary>
            Creates a process under the standard user if the current process is elevated.  The identity of the standard user is
            determined by retrieving the user token of the currently running Explorer (shell) process.
            </summary>
            <param name="fileName">The path to the executable file.</param>
            <param name="arguments">The command-line arguments to pass to the process.</param>
            <returns>A <see cref="T:System.Diagnostics.Process"/> object representing the newly created process.</returns>
            <remarks>
            <para>
            This method requires administrative privileges. An exception will be thrown if the current user is not elevated.
            </para>
            <para>
            This is an especially useful function if you are trying to shell an application from an installation program. With UAC
            enabled, an application spawned from a setup program will be the "NT AUTHORITY\SYSTEM" user - not the local user that
            executed the installer; this can wreak havoc if the spawned application needs to authenticate the local user.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserAccountControl.IsUserAdmin">
            <summary>
            Returns <c>true</c> if the current user has administrator privileges.
            </summary>
            <remarks>
            If UAC is on, then this property will return <c>true</c> even if the current process is not running elevated.
            If UAC is off, then this property will return <c>true</c> if the user is part of the built-in <i>Administrators</i> group.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserAccountControl.IsUacEnabled">
            <summary>
            Returns <c>true</c> if User Account Control (UAC) is enabled on this machine.
            </summary>
            <remarks>
            This value is obtained by checking the LUA registry key. It is possible that the user has not restarted the machine after
            enabling/disabling UAC. In that case, the value of the registry key does not reflect the true state of affairs.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserAccountControl.IsCurrentProcessVirtualized">
            <summary>
            Returns <c>true</c> if the current process is using UAC virtualization.
            </summary>
            <remarks>
            Under UAC virtualization, file system and registry accesses to specific locations performed by an application are redirected to
            provide backwards compatibility. 64-bit applications or applications that have an associated manifest do not enjoy UAC virtualization
            because they are assumed to be compatible with Vista and UAC.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserAccountControl.IsCurrentProcessElevated">
            <summary>
             Returns <c>true</c> if the current process is elevated, i.e. if the process went through an elevation consent phase.
             </summary>
             <remarks>
             This property will return <c>false</c> if UAC is disabled and the process is running as admin.  It only determines whether the process
             went through the elevation procedure.
             </remarks>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.DisableUac">
            <summary>
            Disables User Account Control by changing the LUA registry key. The changes do not have effect until the system is restarted.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.DisableUacAndRestartWindows">
            <summary>
            Disables User Account Control and restarts the system.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.EnableUac">
            <summary>
            Enables User Account Control by changing the LUA registry key. The changes do not have effect until the system is restarted.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserAccountControl.EnableUacAndRestartWindows">
            <summary>
            Enables User Account Control and restarts the system.
            </summary>
        </member>
        <member name="T:GSF.Identity.UserInfo">
             <summary>
             Represents information about a local user or a domain user (e.g., from Active Directory).
             </summary>
             <remarks>
             See <a href="http://msdn.microsoft.com/en-us/library/ms677980.aspx" target="_blank">http://msdn.microsoft.com/en-us/library/ms677980.aspx</a> for more information on active directory properties.
             </remarks>
             <example>
             This example shows how to retrieve user information from Active Directory:
             <code>
             using System;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Retrieve and display user information from Active Directory.
                     using (UserInfo user = new UserInfo("XYZCorp\\johndoe"))
                     {
                         Console.WriteLine(string.Format("First Name: {0}", user.FirstName));
                         Console.WriteLine(string.Format("Last Name: {0}", user.LastName));
                         Console.WriteLine(string.Format("Middle Initial: {0}", user.MiddleInitial));
                         Console.WriteLine(string.Format("Email Address: {0}", user.Email));
                         Console.WriteLine(string.Format("Telephone Number: {0}", user.Telephone));
                     }
            
                     Console.ReadLine();
                 }
             }
             </code>
             This example shows the config file section that can be used to specify the domain account to be used for Active Directory queries:
             <code>
             <![CDATA[
             <?xml version="1.0"?>
             <configuration>
               <configSections>
                 <section name="categorizedSettings" type="GSF.Configuration.CategorizedSettingsSection, GSF.Core" />
               </configSections>
               <categorizedSettings>
                 <activeDirectory>
                   <add name="PrivilegedDomain" value="" description="Domain of privileged domain user account."
                     encrypted="false" />
                   <add name="PrivilegedUserName" value="" description="Username of privileged domain user account."
                     encrypted="false" />
                   <add name="PrivilegedPassword" value="" description="Password of privileged domain user account."
                     encrypted="true" />
                 </activeDirectory>
               </categorizedSettings>
             </configuration>
             ]]>
             </code>
             </example>
        </member>
        <member name="F:GSF.Identity.UserInfo.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Identity.UserInfo.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.Identity.UserInfo.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Identity.UserInfo.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="E:GSF.Identity.UserInfo.Disposed">
            <summary>
            Occurs when the class has been disposed.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserInfo.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Identity.UserInfo"/> class.
            </summary>
            <param name="loginID">
            Login ID in 'domain\username' format of the user's account whose information is to be retrieved. Login ID 
            can also be specified in 'username' format without the domain name, in which case the domain name will be
            approximated based on the privileged user domain if specified, default logon domain of the host machine 
            if available, or the domain of the identity that owns the host process.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="loginID"/> is a null or empty string.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Identity.UserInfo"/> class.
            </summary>
            <param name="loginID">
            Login ID in 'domain\username' format of the user's account whose information is to be retrieved. Login ID 
            can also be specified in 'username' format without the domain name, in which case the domain name will be
            approximated based on the privileged user domain if specified, default logon domain of the host machine 
            if available, or the domain of the identity that owns the host process.
            </param>
            <param name="ldapPath">
            String in 'LDAP://' format that specifies the Active Directory node where search for the user starts.
            </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="loginID"/> is a null or empty string.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Identity.UserInfo"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.GSF#ISupportLifecycle#IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:GSF.Identity.UserInfo"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:GSF.Identity.UserInfo"/> object are to be saved
            to the config file if the <see cref="P:GSF.Identity.UserInfo.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.PassthroughPrincipal">
            <summary>
            Gets or sets the principal used for passthrough authentication.
            </summary>
            <remarks>
            This is necessary to determine whether a domain user exists when the
            computer is disconnected from the domain but still able to authenticate
            using the last seen domain user account.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Domain">
            <summary>
            Gets the domain for the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.UserName">
            <summary>
            Gets the user name of the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.LdapPath">
            <summary>
            Gets LDAP path defined for this user, if any.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.LoginID">
            <summary>
            Gets the Login ID of the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.LdapID">
            <summary>
            Gets the ID of the user in LDAP format.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.DomainRespondsForUser">
            <summary>
            Gets flag that determines if domain is responding to user existence.
            </summary>
            <returns><c>true</c> if domain responds and user exists; otherwise <c>false</c>.</returns>
            <remarks>
            Note that when the domain is unavailable, this function will return <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Exists">
            <summary>
            Gets flag that determines if user exists.
            </summary>
            <returns><c>true</c> if user is found to exist; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            Unlike other properties in this class, <see cref="P:GSF.Identity.UserInfo.Exists"/> will still work even if the domain server is
            unavailable. Calling this property without access to a domain server will return <c>true</c> if the user
            is authenticated. This only succeeds if the current user is the same as the <see cref="P:GSF.Identity.UserInfo.LoginID"/>, there
            is no way to determine if a user other than the currently authenticated user exists without access to
            the domain server. Local accounts are not subject to these constraints since the domain server will
            effectively be your local computer which is always accessible.
            </para>
            <para>
            Since this property can check the <see cref="T:System.Security.Principal.WindowsPrincipal"/> to determine if the current thread identity
            is authenticated, it is important that consumers add the following code at application startup:
            <code>AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);</code>
            </para>
            <para>
            If a laptop user that's normally connected to the domain takes their computer on the road without VPN or other
            connectivity to the domain, the user can still login to the laptop using cached credentials therefore they are
            still considered to exist. Without access to the domain, no user information will be available (such as the
            <see cref="P:GSF.Identity.UserInfo.Groups"/> listing) - if this data is needed offline it will need to be cached by the application in
            anticipation of offline access.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.LastLogon">
            <summary>
            Gets the last login time of the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.AccountCreationDate">
            <summary>
            Gets the <see cref="T:System.DateTime"/> when the account was created.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.NextPasswordChangeDate">
            <summary>
            Gets the <see cref="T:System.DateTime"/>, in UTC, of next password change for the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.UserAccountControl">
            <summary>
            Gets the account control information of the user.
            </summary>
            <exception cref="T:System.Security.SecurityException">User account control information cannot be obtained, may not have needed rights.</exception>
            <exception cref="T:System.InvalidOperationException">Unknown error. Invalid value returned when querying user account control.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.AccountIsLockedOut">
            <summary>
            Gets flag that determines if account is locked-out for this user.
            </summary>
            <exception cref="T:System.Security.SecurityException">User account control information cannot be obtained, may not have needed rights.</exception>
            <exception cref="T:System.InvalidOperationException">Unknown error. Invalid value returned when querying user account control.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.AccountIsDisabled">
            <summary>
            Gets flag that determines if account is disabled for this user.
            </summary>
            <exception cref="T:System.Security.SecurityException">User account control information cannot be obtained, may not have needed rights.</exception>
            <exception cref="T:System.InvalidOperationException">Unknown error. Invalid value returned when querying user account control.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.PasswordCannotChange">
            <summary>
            Gets flag that determines if account password cannot change for this user.
            </summary>
            <exception cref="T:System.Security.SecurityException">User account control information cannot be obtained, may not have needed rights.</exception>
            <exception cref="T:System.InvalidOperationException">Unknown error. Invalid value returned when querying user account control.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.PasswordDoesNotExpire">
            <summary>
            Gets flag that determines if account password does not expire for this user.
            </summary>
            <exception cref="T:System.Security.SecurityException">User account control information cannot be obtained, may not have needed rights.</exception>
            <exception cref="T:System.InvalidOperationException">Unknown error. Invalid value returned when querying user account control.</exception>
        </member>
        <member name="P:GSF.Identity.UserInfo.MaximumPasswordAge">
            <summary>
            Gets this maximum password age for the user.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.Groups">
            <summary>
            Gets all the groups associated with the user - this includes local groups and Active Directory groups if applicable.
            </summary>
            <remarks>
            Groups names are prefixed with their associated domain, computer name or BUILTIN.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.LocalGroups">
            <summary>
            Gets the local groups the user is a member of.
            </summary>
            <remarks>
            Groups names are prefixed with BUILTIN or computer name.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.FirstName">
            <summary>
            Gets the First Name of the user.
            </summary>
            <remarks>Returns the value retrieved for the "givenName" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.LastName">
            <summary>
            Gets the Last Name of the user.
            </summary>
            <remarks>Returns the value retrieved for the "sn" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.DisplayName">
            <summary>
            Gets the Display Name the user.
            </summary>
            <remarks>Returns the value retrieved for the "displayName" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.MiddleInitial">
            <summary>
            Gets the Middle Initial of the user.
            </summary>
            <remarks>Returns the value retrieved for the "initials" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.FullName">
            <summary>
            Gets the Full Name of the user.
            </summary>
            <remarks>Returns the concatenation of <see cref="P:GSF.Identity.UserInfo.FirstName"/>, <see cref="P:GSF.Identity.UserInfo.MiddleInitial"/> and <see cref="P:GSF.Identity.UserInfo.LastName"/> properties.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Email">
            <summary>
            Gets the E-Mail address of the user.
            </summary>
            <remarks>Returns the value retrieved for the "mail" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Webpage">
            <summary>
            Gets the web page address of the user.
            </summary>
            <remarks>Returns the value retrieved for the "wWWHomePage" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Description">
            <summary>
            Gets the description specified for the user.
            </summary>
            <remarks>Returns the value retrieved for the "description" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Telephone">
            <summary>
            Gets the Telephone Number of the user.
            </summary>
            <remarks>Returns the value retrieved for the "telephoneNumber" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Title">
            <summary>
            Gets the Title of the user.
            </summary>
            <remarks>Returns the value retrieved for the "title" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Company">
            <summary>
            Gets the Company of the user.
            </summary>
            <remarks>Returns the value retrieved for the "company" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Office">
            <summary>
            Gets the Office location of the user.
            </summary>
            <remarks>Returns the value retrieved for the "physicalDeliveryOfficeName" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Department">
            <summary>
            Gets the Department where the user works.
            </summary>
            <remarks>Returns the value retrieved for the "department" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.City">
            <summary>
            Gets the City where the user works.
            </summary>
            <remarks>Returns the value retrieved for the "l" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.Mailbox">
            <summary>
            Gets the Mailbox address of where the user works.
            </summary>
            <remarks>Returns the value retrieved for the "streetAddress" active directory property.</remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.IsLocalAccount">
            <summary>
            Gets flag that determines if this <see cref="T:GSF.Identity.UserInfo"/> instance is based on a local account instead of found through LDAP.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserInfo.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Identity.UserInfo"/> object.
            </summary>
        </member>
        <member name="M:GSF.Identity.UserInfo.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Identity.UserInfo"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Identity.UserInfo.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.Identity.UserInfo"/> object.
            </summary>
            <exception cref="T:GSF.InitializationException">Failed to initialize directory entry for <see cref="P:GSF.Identity.UserInfo.LoginID"/>.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.SaveSettings">
            <summary>
            Saves settings for the <see cref="T:GSF.Identity.UserInfo"/> object to the config file if the <see cref="P:GSF.Identity.UserInfo.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Identity.UserInfo.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.LoadSettings">
            <summary>
            Loads saved settings for the <see cref="T:GSF.Identity.UserInfo"/> object from the config file if the <see cref="P:GSF.Identity.UserInfo.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Identity.UserInfo.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.DefinePrivilegedAccount(System.String,System.String,System.String)">
             <summary>
             Defines the credentials of a privileged domain account that can be used for impersonation prior to the 
             retrieval of user information from the Active Directory.
             </summary>
             <param name="domain">Domain of privileged domain user account.</param>
             <param name="username">Username of privileged domain user account.</param>
             <param name="password">Password of privileged domain user account.</param>
             <example>
             This example shows how to define the identity of the user to be used for retrieving information from Active Directory:
             <code>
             using System;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     using (UserInfo user = new UserInfo("XYZCorp\\johndoe"))
                     {
                         // Define the identity to use for retrieving Active Directory information.
                         // Persist identity credentials encrypted to the config for easy access.
                         user.PersistSettings = true;
                         user.DefinePrivilegedAccount("XYZCorp", "admin", "Passw0rd");
            
                         // Retrieve and display user information from Active Directory.
                         Console.WriteLine(string.Format("First Name: {0}", user.FirstName));
                         Console.WriteLine(string.Format("Last Name: {0}", user.LastName));
                         Console.WriteLine(string.Format("Middle Initial: {0}", user.MiddleInitial));
                         Console.WriteLine(string.Format("Email Address: {0}", user.Email));
                         Console.WriteLine(string.Format("Telephone Number: {0}", user.Telephone));
                     }
            
                     Console.ReadLine();
                 }
             }
             </code>
            </example>
        </member>
        <member name="M:GSF.Identity.UserInfo.ImpersonatePrivilegedAccount">
            <summary>
            Impersonates the defined privileged domain account.
            </summary>
            <returns>An <see cref="T:System.Security.Principal.WindowsImpersonationContext"/> if privileged domain account has been defined, otherwise null.</returns>
        </member>
        <member name="M:GSF.Identity.UserInfo.ChangePassword(System.String,System.String)">
            <summary>
            Attempts to change the user's password.
            </summary>
            <param name="oldPassword">Old password.</param>
            <param name="newPassword">New password.</param>
        </member>
        <member name="M:GSF.Identity.UserInfo.GetUserPropertyValue(System.String)">
            <summary>
            Returns the value for specified active directory property.
            </summary>
            <param name="propertyName">Name of the active directory property whose value is to be retrieved.</param>
            <returns><see cref="T:System.String"/> value for the specified active directory property.</returns>
        </member>
        <member name="F:GSF.Identity.UserInfo.BuiltInGroupName">
            <summary>
            Localized version of Windows "BUILTIN" local permissions group name.
            </summary>
            <remarks>
            For non-English based OS languages, this name may be different. For example, on a German OS this is "VORDEFINIERT".
            </remarks>
        </member>
        <member name="F:GSF.Identity.UserInfo.NTAuthorityGroupName">
            <summary>
            Localized version of Windows "NT AUTHORITY" local permissions group name.
            </summary>
            <remarks>
            For non-English based OS languages, this name may be different. For example, on a French OS this is "NT-AUTORITÄT".
            </remarks>
        </member>
        <member name="F:GSF.Identity.UserInfo.NTServiceGroupName">
            <summary>
            Localized version of Windows "NT SERVICE" local Windows services group name.
            </summary>
            <remarks>
            For non-English based OS languages, this name may be different.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.CurrentUserID">
            <summary>
            Gets the ID name of the current user.
            </summary>
            <remarks>
            The ID name returned is that of the user account under which the code is executing.
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.CurrentUserInfo">
            <summary>
            Gets the <see cref="T:GSF.Identity.UserInfo"/> object for the <see cref="P:GSF.Identity.UserInfo.CurrentUserID"/>.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.RemoteUserID">
            <summary>
            Gets the <see cref="P:GSF.Identity.UserInfo.LoginID"/> of the remote web user.
            </summary>
            <remarks>
            The <see cref="P:GSF.Identity.UserInfo.LoginID"/> returned is that of the remote user accessing the web application. This is 
            available only if the virtual directory hosting the web application is configured to use "Integrated 
            Windows Authentication".
            </remarks>
        </member>
        <member name="P:GSF.Identity.UserInfo.RemoteUserInfo">
            <summary>
            Gets the <see cref="T:GSF.Identity.UserInfo"/> object for the <see cref="P:GSF.Identity.UserInfo.RemoteUserID"/>.
            </summary>
        </member>
        <member name="P:GSF.Identity.UserInfo.MachineIsJoinedToDomain">
            <summary>
            Gets a boolean value that indicates whether the current machine is joined to a domain (non-local such as AD or LDAP).
            </summary>
        </member>
        <member name="M:GSF.Identity.UserInfo.GetBuiltInLocalGroups">
            <summary>
            Returns a sorted list of the common built-in local groups. On Windows these groups have a domain name of BUILTIN.
            </summary>
            <returns>Sorted list of the common built-in local groups.</returns>
            <remarks>
            Names in this list will not have a "BUILTIN\" prefix.
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.AuthenticateUser(System.String,System.String,System.String)">
             <summary>
             Authenticates the specified user credentials.
             </summary>
             <param name="domain">Domain of user to authenticate.</param>
             <param name="userName">Username of user to authenticate.</param>
             <param name="password">Password of user to authenticate.</param>
             <returns>true if the user credentials are authenticated successfully; otherwise false.</returns>
             <example>
             This example shows how to validate a user's credentials:
             <code>
             using System;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     string domain = "XYZCorp";
                     string username = "johndoe";
                     string password = "password";
                    
                     // Authenticate user credentials.
                     if (UserInfo.AuthenticateUser(domain, username, password) is not null)
                         Console.WriteLine("Successfully authenticated user \"{0}\\{1}\".", domain, username);
                     else
                         Console.WriteLine("Failed to authenticate user \"{0}\\{1}\".", domain, username);
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Identity.UserInfo.AuthenticateUser(System.String,System.String,System.String,System.String@)">
             <summary>
             Authenticates the specified user credentials.
             </summary>
             <param name="domain">Domain of user to authenticate.</param>
             <param name="userName">Username of user to authenticate.</param>
             <param name="password">Password of user to authenticate.</param>
             <param name="errorMessage">Error message returned, if authentication fails.</param>
             <returns>true if the user credentials are authenticated successfully; otherwise false.</returns>
             <example>
             This example shows how to validate a user's credentials and retrieve an error message if validation fails: 
             <code>
             using System;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     string domain = "XYZCorp";
                     string username = "johndoe";
                     string password = "password";
                     string errorMessage;
            
                     // Authenticate user credentials.
                     if (UserInfo.AuthenticateUser(domain, username, password, out errorMessage) is not null)
                         Console.WriteLine("Successfully authenticated user \"{0}\\{1}\".", domain, username);
                     else
                         Console.WriteLine("Failed to authenticate user \"{0}\\{1}\" due to exception: {2}", domain, username, errorMessage);
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Identity.UserInfo.ImpersonateUser(System.String,System.String,System.String)">
             <summary>
             Impersonates the specified user.
             </summary>
             <param name="domain">Domain of user to impersonate.</param>
             <param name="userName">Username of user to impersonate.</param>
             <param name="password">Password of user to impersonate.</param>
             <returns>A <see cref="T:System.Security.Principal.WindowsImpersonationContext"/> object of the impersonated user.</returns>
             <remarks>
             After impersonating a user the code executes under the impersonated user's identity.
             </remarks>
             <example>
             This example shows how to impersonate a user:
             <code>
             using System;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     Console.WriteLine(string.Format("User before impersonation: {0}", UserInfo.CurrentUserID));
                     UserInfo.ImpersonateUser("XYZCorp", "johndoe", "password"); // Impersonate user.
                     Console.WriteLine(string.Format("User after impersonation: {0}", UserInfo.CurrentUserID));
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Identity.UserInfo.EndImpersonation(System.Security.Principal.WindowsImpersonationContext)">
             <summary>
             Ends the impersonation of the specified user.
             </summary>
             <param name="impersonatedUser"><see cref="T:System.Security.Principal.WindowsImpersonationContext"/> of the impersonated user.</param>
             <example>
             This example shows how to terminate an active user impersonation:
             <code>
             using System;
             using System.IO;
             using System.Security.Principal;
             using GSF.Identity;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     // Impersonate user.
                     WindowsImpersonationContext context = UserInfo.ImpersonateUser("XYZCorp", "johndoe", "password");
                     // Perform operation requiring elevated privileges.
                     Console.WriteLine(File.ReadAllText(@"\\server\share\file.xml"));
                     // End the impersonation.
                     UserInfo.EndImpersonation(context);
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="M:GSF.Identity.UserInfo.IsLocalDomain(System.String)">
            <summary>
            Determines if specified <paramref name="domain"/> is the local domain (i.e., local machine).
            </summary>
            <param name="domain">Domain name to check.</param>
            <returns><c>true</c>if specified <paramref name="domain"/> is the local domain (i.e., local machine); otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Identity.UserInfo.LocalUserExists(System.String)">
            <summary>
            Determines if local user exists.
            </summary>
            <param name="userName">User name to test for existence.</param>
            <returns><c>true</c> if <paramref name="userName"/> exists; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="userName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="userName"/> was specified.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.CreateLocalUser(System.String,System.String,System.String)">
            <summary>
            Creates a new local user if it does not exist already.
            </summary>
            <param name="userName">User name to create if it doesn't exist.</param>
            <param name="password">Password to user for new user.</param>
            <param name="userDescription">Optional user description.</param>
            <returns><c>true</c> if user was created; otherwise, <c>false</c> if user already existed.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="userName"/> or <paramref name="password"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="userName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not create local user.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.SetLocalUserPassword(System.String,System.String)">
            <summary>
            Sets local user's password.
            </summary>
            <param name="userName">User name to change password for.</param>
            <param name="password">New password fro user.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="userName"/> or <paramref name="password"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="userName"/> was specified or user does not exist.</exception>
            <exception cref="T:System.InvalidOperationException">Could not set password for local user.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.RemoveLocalUser(System.String)">
            <summary>
            Removes local user if it exists.
            </summary>
            <param name="userName">User name to remove if it exists.</param>
            <returns><c>true</c> if user was removed; otherwise, <c>false</c> if user did not exist.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="userName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="userName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not remove local user.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.LocalGroupExists(System.String)">
            <summary>
            Determines if local group exists.
            </summary>
            <param name="groupName">Group name to test for existence.</param>
            <returns><c>true</c> if <paramref name="groupName"/> exists; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> was specified.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.CreateLocalGroup(System.String,System.String)">
            <summary>
            Creates a new local group if it does not exist already.
            </summary>
            <param name="groupName">Group name to create if it doesn't exist.</param>
            <param name="groupDescription">Optional group description.</param>
            <returns><c>true</c> if group was created; otherwise, <c>false</c> if group already existed.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not create local group.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.RemoveLocalGroup(System.String)">
            <summary>
            Removes local group if it exists.
            </summary>
            <param name="groupName">Group name to remove if it exists.</param>
            <returns><c>true</c> if group was removed; otherwise, <c>false</c> if group did not exist.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not remove local group.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.UserIsInLocalGroup(System.String,System.String)">
            <summary>
            Determines if user is in the specified local <paramref name="groupName"/>.
            </summary>
            <param name="groupName">Group name to test.</param>
            <param name="userName">User name to test.</param>
            <returns><c>true</c> if user is in group; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> or <paramref name="userName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> or <paramref name="userName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not determine if user was in local group.</exception>
            <remarks>
            This function will handle Windows service virtual accounts by specifying the complete virtual account name,
            such as <c>@"NT SERVICE\MyService"</c>, as the <paramref name="userName"/>. This function can also detect
            Active Directory user accounts and groups that may exist in the local group when the <paramref name="userName"/>
            is prefixed with a domain name and a backslash "\".
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.AddUserToLocalGroup(System.String,System.String)">
            <summary>
            Adds an existing user to the specified local <paramref name="groupName"/>.
            </summary>
            <param name="groupName">Group name to add local user to.</param>
            <param name="userName">Existing local user name.</param>
            <returns><c>true</c> if user was added to local group; otherwise, <c>false</c> meaning user was already in group.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> or <paramref name="userName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> or <paramref name="userName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not add user to local group.</exception>
            <remarks>
            This function will handle Windows service virtual accounts by specifying the complete virtual account name,
            such as <c>@"NT SERVICE\MyService"</c>, as the <paramref name="userName"/>. This function can also add
            Active Directory user accounts and groups to the local group the when the <paramref name="userName"/> is
            prefixed with a domain name and a backslash "\".
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.RemoveUserFromLocalGroup(System.String,System.String)">
            <summary>
            Removes an existing user from the specified local <paramref name="groupName"/>.
            </summary>
            <param name="groupName">Group name to remove local user from.</param>
            <param name="userName">Existing local user name.</param>
            <returns><c>true</c> if user was removed from local group; otherwise, <c>false</c> meaning user did not exist in group.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> or <paramref name="userName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> or <paramref name="userName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not remove user from local group.</exception>
            <remarks>
            This function will handle Windows service virtual accounts by specifying the complete virtual account name,
            such as <c>@"NT SERVICE\MyService"</c>, as the <paramref name="userName"/>. This function can also remove
            Active Directory user accounts and groups from the local group the when the <paramref name="userName"/> is
            prefixed with a domain name and a backslash "\".
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.GetLocalGroupUserList(System.String)">
            <summary>
            Gets a list of users that exist in the specified local <paramref name="groupName"/>.
            </summary>
            <param name="groupName">Group name to remove local user from.</param>
            <returns>List of users that exist in the in group.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="groupName"/> was <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">No <paramref name="groupName"/> was specified.</exception>
            <exception cref="T:System.InvalidOperationException">Could not get members for local group.</exception>
        </member>
        <member name="M:GSF.Identity.UserInfo.UserNameToSID(System.String)">
            <summary>
            Converts the given user name to the SID corresponding to that name.
            </summary>
            <param name="userName">The user name for which to look up the SID.</param>
            <returns>The SID for the given user name, or the user name if no SID can be found.</returns>
            <remarks>
            If the <paramref name="userName"/> cannot be converted to a SID, <paramref name="userName"/>
            will be the return value.
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.GroupNameToSID(System.String)">
            <summary>
            Converts the given group name to the SID corresponding to that name.
            </summary>
            <param name="groupName">The group name for which to look up the SID.</param>
            <returns>The SID for the given group name, or the group name if no SID can be found.</returns>
            <remarks>
            If the <paramref name="groupName"/> cannot be converted to a SID, <paramref name="groupName"/>
            will be the return value.
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.SIDToAccountName(System.String)">
            <summary>
            Converts the given SID to the corresponding account name.
            </summary>
            <param name="sid">The SID for which to look up the account name.</param>
            <returns>The account name for the given SID, or the SID if no account name can be found.</returns>
            <remarks>
            If the <paramref name="sid"/> cannot be converted to an account name, <paramref name="sid"/>
            will be the return value.
            </remarks>
        </member>
        <member name="M:GSF.Identity.UserInfo.IsUserSID(System.String)">
            <summary>
            Determines whether the given security identifier identifies a user account.
            </summary>
            <param name="sid">The security identifier.</param>
            <returns>True if the security identifier identifies a user account; false otherwise.</returns>
        </member>
        <member name="M:GSF.Identity.UserInfo.IsGroupSID(System.String)">
            <summary>
            Determines whether the given security identifier identifies a group.
            </summary>
            <param name="sid">The security identifier.</param>
            <returns>True if the security identifier identifies a group; false otherwise.</returns>
        </member>
        <member name="M:GSF.Identity.WindowsUserInfo.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Identity.WindowsUserInfo"/> object.
            </summary>
        </member>
        <member name="M:GSF.Identity.WindowsUserInfo.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Identity.WindowsUserInfo"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.InitializationException">
            <summary>
            The exception that is thrown when an object fails to initialize properly.
            </summary>
        </member>
        <member name="M:GSF.InitializationException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.InitializationException"/> class.
            </summary>
        </member>
        <member name="M:GSF.InitializationException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.InitializationException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:GSF.InitializationException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.InitializationException"/> class.
            </summary>
            <param name="message">The message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="T:GSF.Interop.IIniFile">
            <summary>
            Represents an interface for common INI functions.
            </summary>
        </member>
        <member name="P:GSF.Interop.IIniFile.FileName">
            <summary>
            File name of the INI file.
            </summary>
        </member>
        <member name="P:GSF.Interop.IIniFile.Item(System.String,System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="defaultValue">Default value of key.</param>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="P:GSF.Interop.IIniFile.Item(System.String,System.String)">
            <summary>
            Gets or sets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <value>The new key value to store in the INI file.</value>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="M:GSF.Interop.IIniFile.GetSectionKeys(System.String)">
            <summary>
            Gets an array of keys from the specified section in the INI file.
            </summary>
            <param name="section">Section to retrieve keys from.</param>
            <returns>Array of <see cref="T:System.String"/> keys from the specified section of the INI file.</returns>
        </member>
        <member name="M:GSF.Interop.IIniFile.GetSectionNames">
            <summary>
            Gets an array of that section names that exist in the INI file.
            </summary>
            <returns>Array of <see cref="T:System.String"/> section names from the INI file.</returns>
        </member>
        <member name="T:GSF.Interop.IniFile">
            <summary>
            Represents a Windows INI style configuration file.
            </summary>
        </member>
        <member name="M:GSF.Interop.IniFile.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Interop.IniFile"/>.
            </summary>
            <remarks>INI file name defaults to "Win.ini" - change using FileName property.</remarks>
        </member>
        <member name="M:GSF.Interop.IniFile.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Interop.IniFile"/> using the specified INI file name.
            </summary>
            <param name="fileName">Specified INI file name to use.</param>
        </member>
        <member name="P:GSF.Interop.IniFile.FileName">
            <summary>
            File name of the INI file.
            </summary>
        </member>
        <member name="P:GSF.Interop.IniFile.Item(System.String,System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="defaultValue">Default value of key.</param>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="P:GSF.Interop.IniFile.Item(System.String,System.String)">
            <summary>
            Gets or sets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <value>The new key value to store in the INI file.</value>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="M:GSF.Interop.IniFile.GetKeyValue(System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <returns>Value of key.</returns>
        </member>
        <member name="M:GSF.Interop.IniFile.GetKeyValue(System.String,System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="defaultValue">Default value of key.</param>
            <returns>Value of key.</returns>
        </member>
        <member name="M:GSF.Interop.IniFile.SetKeyValue(System.String,System.String,System.String)">
            <summary>
            Sets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="newValue">The new key value to store in the INI file.</param>
        </member>
        <member name="M:GSF.Interop.IniFile.GetSectionKeys(System.String)">
            <summary>
            Gets an array of keys from the specified section in the INI file.
            </summary>
            <param name="section">Section to retrieve keys from.</param>
            <returns>Array of <see cref="T:System.String"/> keys from the specified section of the INI file.</returns>
        </member>
        <member name="M:GSF.Interop.IniFile.GetSectionNames">
            <summary>
            Gets an array of that section names that exist in the INI file.
            </summary>
            <returns>Array of <see cref="T:System.String"/> section names from the INI file.</returns>
        </member>
        <member name="T:GSF.Interop.NamespaceDoc">
            <summary>
            Contains classes used to handle interoperability with older legacy applications.
            </summary>
        </member>
        <member name="T:GSF.Interop.UnixIniFile">
            <summary>
            Represents a Unix INI style configuration file.
            </summary>
        </member>
        <member name="M:GSF.Interop.UnixIniFile.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Interop.UnixIniFile"/> using the specified INI file name.
            </summary>
            <param name="fileName">Specified INI file name to use.</param>
        </member>
        <member name="P:GSF.Interop.UnixIniFile.FileName">
            <summary>
            File name of the INI file.
            </summary>
        </member>
        <member name="P:GSF.Interop.UnixIniFile.Item(System.String,System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="defaultValue">Default value of key.</param>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="P:GSF.Interop.UnixIniFile.Item(System.String,System.String)">
            <summary>
            Gets or sets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <value>The new key value to store in the INI file.</value>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="M:GSF.Interop.UnixIniFile.GetSectionKeys(System.String)">
            <summary>
            Gets an array of keys from the specified section in the INI file.
            </summary>
            <param name="section">Section to retrieve keys from.</param>
            <returns>Array of <see cref="T:System.String"/> keys from the specified section of the INI file.</returns>
        </member>
        <member name="M:GSF.Interop.UnixIniFile.GetSectionNames">
            <summary>
            Gets an array of that section names that exist in the INI file.
            </summary>
            <returns>Array of <see cref="T:System.String"/> section names from the INI file.</returns>
        </member>
        <member name="T:GSF.Interop.VBArrayDescriptor">
            <summary>
            Represents an old style Visual Basic array descriptor.
            </summary>
            <remarks>
            This class is used to mimic the binary array descriptor used when an array is serialized
            into a file using older Visual Basic applications (VB 6 and prior), this way old VB apps
            can still deserialize an array stored in a file written by a .NET application and vice versa.
            </remarks>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.#ctor(System.Int32[],System.Int32[])">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Interop.VBArrayDescriptor"/> class.
            </summary>
            <param name="arrayLengths">Length of array per dimension.</param>
            <param name="arrayLowerBounds">Lower bound of array per dimension.</param>
        </member>
        <member name="P:GSF.Interop.VBArrayDescriptor.BinaryLength">
            <summary>
            Gets the length of serialized <see cref="T:GSF.Interop.VBArrayDescriptor"/>.
            </summary>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the object and copies it into the given buffer, for <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> will exceed <paramref name="buffer"/> length.
            </exception>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.ZeroBasedOneDimensionalArray(System.Int32)">
            <summary>
            Returns a <see cref="T:GSF.Interop.VBArrayDescriptor"/> object for a one dimensional array with zero-based index.
            </summary>
            <param name="arrayLength">Length of the array.</param>
            <returns>A <see cref="T:GSF.Interop.VBArrayDescriptor"/> object.</returns>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.OneBasedOneDimensionalArray(System.Int32)">
            <summary>
            Returns a <see cref="T:GSF.Interop.VBArrayDescriptor"/> object for a one dimensional array with one-based index.
            </summary>
            <param name="arrayLength">Length of the array.</param>
            <returns>A <see cref="T:GSF.Interop.VBArrayDescriptor"/> object.</returns>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.ZeroBasedTwoDimensionalArray(System.Int32,System.Int32)">
            <summary>
            Returns a <see cref="T:GSF.Interop.VBArrayDescriptor"/> object for a two dimensional array with zero-based index.
            </summary>
            <param name="dimensionOneLength">Length of array in dimension one.</param>
            <param name="dimensionTwoLength">Length of array in dimension two.</param>
            <returns>A <see cref="T:GSF.Interop.VBArrayDescriptor"/> object.</returns>
        </member>
        <member name="M:GSF.Interop.VBArrayDescriptor.OneBasedTwoDimensionalArray(System.Int32,System.Int32)">
            <summary>
            Returns a <see cref="T:GSF.Interop.VBArrayDescriptor"/> object for a two dimensional array with one-based index.
            </summary>
            <param name="dimensionOneLength">Length of array in dimension one.</param>
            <param name="dimensionTwoLength">Length of array in dimension two.</param>
            <returns>A <see cref="T:GSF.Interop.VBArrayDescriptor"/> object.</returns>
        </member>
        <member name="T:GSF.Interop.WindowsApi">
            <summary>
            Defines common Windows API constants, enumerations, structures and functions.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LOGON32_PROVIDER_DEFAULT">
            <summary>
            Use the standard logon provider for the system. The default security provider is NTLM. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LOGON32_LOGON_INTERACTIVE">
            <summary>
            This logon type is intended for users who will be interactively using the computer, such as a user being logged on by a terminal server, 
            remote shell, or similar process. This logon type has the additional expense of caching logon information for disconnected operations; 
            therefore, it is inappropriate for some client/server applications, such as a mail server. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LOGON32_LOGON_NETWORK">
            <summary>
            This logon type is intended for high performance servers to authenticate plaintext passwords. The LogonUserEx function does not cache
            credentials for this logon type. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SECURITY_IMPERSONATION">
            <summary>
            Impersonate a client at the impersonation level.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ERROR_ACCESS_DENIED">
            <summary>
            Access is denied.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS">
            <summary>
            Win32 TOKEN_INFORMATION_CLASS enumeration.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenUser">
            <summary>
            The buffer receives a TOKEN_USER structure that contains the user account of the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenGroups">
            <summary>
            The buffer receives a TOKEN_GROUPS structure that contains the group accounts associated with the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenPrivileges">
            <summary>
            The buffer receives a TOKEN_PRIVILEGES structure that contains the privileges of the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenOwner">
            <summary>
            The buffer receives a TOKEN_OWNER structure that contains the default owner security identifier (SID) for newly created objects.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenPrimaryGroup">
            <summary>
            The buffer receives a TOKEN_PRIMARY_GROUP structure that contains the default primary group SID for newly created objects.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenDefaultDacl">
            <summary>
            The buffer receives a TOKEN_DEFAULT_DACL structure that contains the default DACL for newly created objects.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenSource">
            <summary>
            The buffer receives a TOKEN_SOURCE structure that contains the source of the token. TOKEN_QUERY_SOURCE access is needed to retrieve this information.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenType">
            <summary>
            The buffer receives a TOKEN_TYPE value that indicates whether the token is a primary or impersonation token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenImpersonationLevel">
            <summary>
            The buffer receives a SECURITY_IMPERSONATION_LEVEL value that indicates the impersonation level of the token. If the access token is not an impersonation token, the function fails.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenStatistics">
            <summary>
            The buffer receives a TOKEN_STATISTICS structure that contains various token statistics.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenRestrictedSids">
            <summary>
            The buffer receives a TOKEN_GROUPS structure that contains the list of restricting SIDs in a restricted token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenSessionId">
            <summary>
            The buffer receives a DWORD value that indicates the Terminal Services session identifier that is associated with the token. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenGroupsAndPrivileges">
            <summary>
            The buffer receives a TOKEN_GROUPS_AND_PRIVILEGES structure that contains the user SID, the group accounts, the restricted SIDs, and the authentication ID associated with the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenSessionReference">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenSandBoxInert">
            <summary>
            The buffer receives a DWORD value that is nonzero if the token includes the SANDBOX_INERT flag.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenAuditPolicy">
            <summary>
            Reserved.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenOrigin">
            <summary>
            The buffer receives a TOKEN_ORIGIN value. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenElevationType">
            <summary>
            The buffer receives a TOKEN_ELEVATION_TYPE value that specifies the elevation level of the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenLinkedToken">
            <summary>
            The buffer receives a TOKEN_LINKED_TOKEN structure that contains a handle to another token that is linked to this token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenElevation">
            <summary>
            The buffer receives a TOKEN_ELEVATION structure that specifies whether the token is elevated.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenHasRestrictions">
            <summary>
            The buffer receives a DWORD value that is nonzero if the token has ever been filtered.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenAccessInformation">
            <summary>
            The buffer receives a TOKEN_ACCESS_INFORMATION structure that specifies security information contained in the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenVirtualizationAllowed">
            <summary>
            The buffer receives a DWORD value that is nonzero if virtualization is allowed for the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenVirtualizationEnabled">
            <summary>
            The buffer receives a DWORD value that is nonzero if virtualization is enabled for the token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenIntegrityLevel">
            <summary>
            The buffer receives a TOKEN_MANDATORY_LABEL structure that specifies the token's integrity level. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenUIAccess">
            <summary>
            The buffer receives a DWORD value that is nonzero if the token has the UIAccess flag set.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenMandatoryPolicy">
            <summary>
            The buffer receives a TOKEN_MANDATORY_POLICY structure that specifies the token's mandatory integrity policy.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.TokenLogonSid">
            <summary>
            The buffer receives the token's logon security identifier (SID).
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS.MaxTokenInfoClass">
            <summary>
            The maximum value for this enumeration
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.ProcessAccessTypes">
            <summary>
            Win32 ProcessAccessTypes enumeration.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_TERMINATE">
            <summary
            >Enables usage of the process handle in the TerminateProcess function to terminate the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_CREATE_THREAD">
            <summary>
            Enables usage of the process handle in the CreateRemoteThread function to create a thread in the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_SET_SESSIONID">
            <summary>
            Sets the session ID.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_VM_OPERATION">
            <summary>
            Enables usage of the process handle in the VirtualProtectEx and WriteProcessMemory functions to modify the virtual memory of the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_VM_READ">
            <summary>
            Enables usage of the process handle in the ReadProcessMemory function to read from the virtual memory of the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_VM_WRITE">
            <summary>
            Enables usage of the process handle in the WriteProcessMemory function to write to the virtual memory of the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_DUP_HANDLE">
            <summary>
            Enables usage of the process handle as either the source or target process in the DuplicateHandle function to duplicate a handle.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_CREATE_PROCESS">
            <summary>
            Creates a process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_SET_QUOTA">
            <summary>
            Sets quota.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_SET_INFORMATION">
            <summary>
            Enables usage of the process handle in the SetPriorityClass function to set the priority class of the process.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_QUERY_INFORMATION">
            <summary>
            Enables usage of the process handle in the GetExitCodeProcess and GetPriorityClass functions to read information from the process object.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.STANDARD_RIGHTS_REQUIRED">
            <summary>
            Standard rights required.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.SYNCHRONIZE">
            <summary>
            Enables usage of the process handle in any of the wait functions to wait for the process to terminate.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.ProcessAccessTypes.PROCESS_ALL_ACCESS">
            <summary>
            Specifies all possible access flags for the process object.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.ShutdownReason">
            <summary>
            Win32 ShutdownReason enumeration.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SECURITY_IMPERSONATION_LEVEL">
            <summary>
            Win32 SECURITY_IMPERSONATION_LEVEL enumeration.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.TOKEN_TYPE">
            <summary>
            Win32 TOKEN_TYPE enumeration.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.TOKEN_ELEVATION_TYPE">
            <summary>
            Win32 TOKEN_ELEVATION_TYPE enumeration.
            </summary>
            <remarks>
            Enumeration indicates the elevation type of token being queried by the GetTokenInformation function or set by the SetTokenInformation function.
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_ELEVATION_TYPE.TokenElevationTypeDefault">
            <summary>
            The token does not have a linked token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_ELEVATION_TYPE.TokenElevationTypeFull">
            <summary>
            The token is an elevated token.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_ELEVATION_TYPE.TokenElevationTypeLimited">
            <summary>
            The token is a limited token.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SC_ACTION_TYPE">
            <summary>
            Win32 SC_ACTION_TYPE enumeration.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION_TYPE.SC_ACTION_NONE">
            <summary>
            No action.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION_TYPE.SC_ACTION_RESTART">
            <summary>
            Restart the service.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION_TYPE.SC_ACTION_REBOOT">
            <summary>
            Reboot the computer.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION_TYPE.SC_ACTION_RUN_COMMAND">
            <summary>
            Run a command.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.CreationFlags">
            <summary>
            Win32 CreationFlags enumeration.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.LogonFlags">
            <summary>
            Win32 LogonFlags enumeration.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LogonFlags.WithProfile">
            <summary>
            Log on, then load the user's profile in the HKEY_USERS registry key. The function
            returns after the profile has been loaded. Loading the profile can be time-consuming,
            so it is best to use this value only if you must access the information in the 
            HKEY_CURRENT_USER registry key. 
            NOTE: Windows Server 2003: The profile is unloaded after the new process has been
            terminated, regardless of whether it has created child processes.
            </summary>
            <remarks>See LOGON_WITH_PROFILE</remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LogonFlags.NetCredentialsOnly">
            <summary>
            Log on, but use the specified credentials on the network only. The new process uses the
            same token as the caller, but the system creates a new logon session within LSA, and
            the process uses the specified credentials as the default credentials.
            This value can be used to create a process that uses a different set of credentials
            locally than it does remotely. This is useful in inter-domain scenarios where there is
            no trust relationship.
            The system does not validate the specified credentials. Therefore, the process can start,
            but it may not have access to network resources.
            </summary>
            <remarks>See LOGON_NETCREDENTIALS_ONLY</remarks>
        </member>
        <member name="T:GSF.Interop.WindowsApi.PROCESS_INFORMATION">
            <summary>
            Win32 PROCESS_INFORMATION structure.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.STARTUPINFO">
            <summary>
            Win32 STARTUPINFO structure.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SERVICE_DESCRIPTION">
            <summary>
            Win32 SERVICE_DESCRIPTION structure.
            </summary>
            <remarks>
            <para>
            A description of NULL indicates no service description exists. The service description is NULL when the service is created.
            </para>
            <para>
            The description is simply a comment that explains the purpose of the service. For example, for the DHCP service,
            you could use the description "Provides internet addresses for computer on your network."
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_DESCRIPTION.lpDescription">
            <summary>
            The description of the service.
            </summary>
            <remarks>
            If this member is NULL, the description remains unchanged. If this value is an empty string (""), the current description is deleted.
            </remarks>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SC_ACTION">
            <summary>
            Win32 SC_ACTION structure.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION.Type">
            <summary>
            The <see cref="T:GSF.Interop.WindowsApi.SC_ACTION_TYPE"/> to be performed. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SC_ACTION.Delay">
            <summary>
            The time to wait before performing the specified action, in milliseconds.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS">
            <summary>
            Win32 SERVICE_FAILURE_ACTIONS structure.
            </summary>
            <remarks>
            Represents the action the service controller should take on each failure of a service. A service is considered failed
            when it terminates without reporting a status of SERVICE_STOPPED to the service controller.
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS.dwResetPeriod">
            <summary>
            The time after which to reset the failure count to zero if there are no failures, in seconds. Specify INFINITE to indicate that this value should never be reset.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS.lpRebootMsg">
            <summary>
            The message to be broadcast to server users before rebooting in response to the SC_ACTION_REBOOT service controller action. 
            </summary>
            <remarks>
            If this value is NULL, the reboot message is unchanged. If the value is an empty string (""), the reboot message is deleted and no message is broadcast.
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS.lpCommand">
            <summary>
            The command line of the process for the CreateProcess function to execute in response to the SC_ACTION_RUN_COMMAND service controller action. This process runs under the same account as the service. 
            </summary>
            <remarks>
            If this value is NULL, the command is unchanged. If the value is an empty string (""), the command is deleted and no program is run when the service fails.
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS.cActions">
            <summary>
            The number of elements in the lpsaActions array. 
            </summary>
            <remarks>
            If this value is 0, but lpsaActions is not NULL, the reset period and array of failure actions are deleted. 
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS.lpsaActions">
            <summary>
            A pointer to an array of SC_ACTION structures. 
            </summary>
            <remarks>
            If this value is NULL, the cActions and dwResetPeriod members are ignored. 
            </remarks>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS_FLAG">
            <summary>
            Win32 SERVICE_FAILURE_ACTIONS_FLAG structure.
            </summary>
            <remarks>
            Contains the failure actions flag setting of a service. This setting determines when failure actions are to be executed.
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS_FLAG.bFailureAction">
            <summary>
            If this member is TRUE and the service has configured failure actions, the failure actions are queued if the service process 
            terminates without reporting a status of SERVICE_STOPPED or if it enters the SERVICE_STOPPED state but the dwWin32ExitCode member
            of the SERVICE_STATUS structure is not ERROR_SUCCESS (0). If this member is FALSE and the service has configured failure actions,
            the failure actions are queued only if the service terminates without reporting a status of SERVICE_STOPPED.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.LsaAccess">
            <summary>
            LSA API policy access enumeration.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.LSA_OBJECT_ATTRIBUTES">
            <summary>
            Win32 LSA_OBJECT_ATTRIBUTES structure.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.LSA_UNICODE_STRING">
            <summary>
            Win32 LSA_UNICODE_STRING structure.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LSA_UNICODE_STRING.Length">
            <summary>
            Specifies the length of the string.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LSA_UNICODE_STRING.MaximumLength">
            <summary>
            Specifies the maximum length of the string.
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LSA_UNICODE_STRING.Buffer">
            <summary>
            Pointer to string data.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.LUID_AND_ATTRIBUTES">
            <summary>
            Win32 LUID_AND_ATTRIBUTES structure.
            </summary>
            <remarks>
            An LUID_AND_ATTRIBUTES structure can represent an LUID whose attributes change frequently, 
            such as when the LUID is used to represent privileges in the PRIVILEGE_SET structure. 
            Privileges are represented by LUIDs and have attributes indicating whether they are currently enabled or disabled. 
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LUID_AND_ATTRIBUTES.Luid">
            <summary>
            Specifies an LUID value. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.LUID_AND_ATTRIBUTES.Attributes">
            <summary>
            Specifies attributes of the LUID. This value contains up to 32 one-bit flags. Its meaning is dependent on the definition and use of the LUID.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.TOKEN_PRIVILEGES">
            <summary>
            Win32 TOKEN_PRIVILEGES structure.
            </summary>
            <remarks>
            The TOKEN_PRIVILEGES structure contains information about a set of privileges for an access token. 
            </remarks>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_PRIVILEGES.PrivilegeCount">
            <summary>
            This must be set to the number of entries in the Privileges array. 
            </summary>
        </member>
        <member name="F:GSF.Interop.WindowsApi.TOKEN_PRIVILEGES.Privileges">
            <summary>
            Specifies an array of LUID_AND_ATTRIBUTES structures. Each structure contains the LUID and attributes of a privilege.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.SECURITY_ATTRIBUTES">
            <summary>
            Win32 SECURITY_ATTRIBUTES structure.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.CRYPTOAPI_BLOB">
            <summary>
            Win32 CRYPTOAPI_BLOB structure.
            </summary>
        </member>
        <member name="T:GSF.Interop.WindowsApi.CRYPT_OID_INFO">
            <summary>
            Win32 CRYPT_OID_INFO class.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.InitiateSystemShutdownEx(System.String,System.String,System.UInt32,System.Boolean,System.Boolean,GSF.Interop.WindowsApi.ShutdownReason)">
            <summary>
            Win32 InitiateSystemShutdownEx function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetShellWindow">
            <summary>
            Win32 GetShellWindow function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetWindowThreadProcessId(System.IntPtr,System.UInt32@)">
            <summary>
            Win32 GetWindowThreadProcessId function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.OpenSCManager(System.String,System.String,System.Int32)">
            <summary>
            Win32 OpenSCManager function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.OpenService(System.IntPtr,System.String,System.Int32)">
            <summary>
            Win32 OpenService function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LockServiceDatabase(System.IntPtr)">
            <summary>
            Win32 LockServiceDatabase function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.ChangeServiceConfig2(System.IntPtr,System.Int32,System.IntPtr)">
            <summary>
            Win32 ChangeServiceConfig2 function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.ChangeServiceConfig2(System.IntPtr,System.Int32,GSF.Interop.WindowsApi.SERVICE_DESCRIPTION@)">
            <summary>
            Win32 ChangeServiceConfig2 function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.ChangeServiceConfig2(System.IntPtr,System.Int32,GSF.Interop.WindowsApi.SERVICE_FAILURE_ACTIONS_FLAG@)">
            <summary>
            Win32 ChangeServiceConfig2 function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CloseServiceHandle(System.IntPtr)">
            <summary>
            Win32 CloseServiceHandle function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.UnlockServiceDatabase(System.IntPtr)">
            <summary>
            Win32 UnlockServiceDatabase function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LookupAccountName(System.String,System.String,System.IntPtr,System.Int32@,System.Text.StringBuilder,System.Int32@,System.Int32@)">
            <summary>
            Win32 LookupAccountName function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LsaOpenPolicy(GSF.Interop.WindowsApi.LSA_UNICODE_STRING@,GSF.Interop.WindowsApi.LSA_OBJECT_ATTRIBUTES@,System.Int32,System.IntPtr@)">
            <summary>
            Win32 LsaOpenPolicy function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LsaAddAccountRights(System.IntPtr,System.IntPtr,GSF.Interop.WindowsApi.LSA_UNICODE_STRING[],System.UInt32)">
            <summary>
            Win32 LsaAddAccountRights function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LsaClose(System.IntPtr)">
            <summary>
            Win32 LsaClose function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.FreeSid(System.IntPtr)">
            <summary>
            Win32 FreeSid function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetLastError">
            <summary>
            Win32 GetLastError function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetTokenInformation(System.IntPtr,GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS,System.UInt32@,System.UInt32,System.UInt32@)">
            <summary>
            Win32 GetTokenInformation function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetTokenInformation(System.IntPtr,GSF.Interop.WindowsApi.TOKEN_INFORMATION_CLASS,GSF.Interop.WindowsApi.TOKEN_ELEVATION_TYPE@,System.UInt32,System.UInt32@)">
            <summary>
            Win32 GetTokenInformation function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LogonUser(System.String,System.String,System.String,System.Int32,System.Int32,System.IntPtr@)">
            <summary>
            Win32 LogonUser function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CreateProcessWithTokenW(System.IntPtr,GSF.Interop.WindowsApi.LogonFlags,System.String,System.String,GSF.Interop.WindowsApi.CreationFlags,System.IntPtr,System.String,GSF.Interop.WindowsApi.STARTUPINFO@,GSF.Interop.WindowsApi.PROCESS_INFORMATION@)">
            <summary>
            Win32 CreateProcessWithTokenW function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.DuplicateToken(System.IntPtr,System.Int32,System.IntPtr@)">
            <summary>
            Win32 DuplicateToken function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.DuplicateTokenEx(System.IntPtr,System.UInt32,GSF.Interop.WindowsApi.SECURITY_ATTRIBUTES@,GSF.Interop.WindowsApi.SECURITY_IMPERSONATION_LEVEL,GSF.Interop.WindowsApi.TOKEN_TYPE,System.IntPtr@)">
            <summary>
            Win32 DuplicateTokenEx function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.DuplicateTokenEx(System.IntPtr,System.UInt32,System.IntPtr,GSF.Interop.WindowsApi.SECURITY_IMPERSONATION_LEVEL,GSF.Interop.WindowsApi.TOKEN_TYPE,System.IntPtr@)">
            <summary>
            Win32 DuplicateTokenEx function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.AdjustTokenPrivileges(System.IntPtr,System.Boolean,GSF.Interop.WindowsApi.TOKEN_PRIVILEGES@,System.Int32,System.IntPtr,System.Int32@)">
            <summary>
            Win32 AdjustTokenPrivileges function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.LookupPrivilegeValue(System.String,System.String,System.Int64@)">
            <summary>
            Win32 LookupPrivilegeValue function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.OpenProcessToken(System.IntPtr,System.UInt32,System.IntPtr@)">
            <summary>
            Win32 OpenProcessToken function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.OpenProcess(GSF.Interop.WindowsApi.ProcessAccessTypes,System.Boolean,System.UInt32)">
            <summary>
            Win32 OpenProcess function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetCurrentProcess">
            <summary>
            Win32 GetCurrentProcess function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CloseHandle(System.IntPtr)">
            <summary>
            Win32 CloseHandle function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CopyMemory(System.IntPtr,System.IntPtr,System.UInt32)">
            <summary>
            Win32 CopyMemory function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.FormatMessage(System.Int32,System.IntPtr@,System.Int32,System.Int32,System.String@,System.Int32,System.IntPtr@)">
            <summary>
            Win32 FormatMessage function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CryptFindOIDInfo(System.Int32,System.String,System.UInt32)">
            <summary>
            Win32 CryptFindOIDInfo function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CryptRegisterOIDInfo(System.IntPtr,System.Int32)">
            <summary>
            Win32 CryptRegisterOIDInfo function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.CryptUnregisterOIDInfo(System.IntPtr)">
            <summary>
            Win32 CryptUnregisterOIDInfo function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.IsWow64Process(System.IntPtr,System.Boolean@)">
            <summary>
            Win32 IsWow64Process function.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetErrorMessage(System.Int32)">
            <summary>
            Formats and returns a .NET string containing the Windows API level error message corresponding to the specified error code.
            </summary>
            <param name="errorCode">An <see cref="T:System.Int32"/> value corresponding to the specified error code.</param>
            <returns>A formatted error message corresponding to the specified error code.</returns>
        </member>
        <member name="M:GSF.Interop.WindowsApi.GetLastErrorMessage">
            <summary>
            Formats and returns a .NET string containing the Windows API level error message from the last Win32 call.
            </summary>
            <returns>A formatted error message corresponding to the last Win32 call error code.</returns>
        </member>
        <member name="M:GSF.Interop.WindowsApi.FlushFileBuffers(Microsoft.Win32.SafeHandles.SafeFileHandle)">
            <summary>
            Flushes the buffers of a specified file and causes all buffered data to be written to a file.
            </summary>
            <param name="handle"></param>
            <remarks>Since the <see cref="M:System.IO.FileStream.Flush(System.Boolean)"/> method does not actually work, this finishes the flush to the disk file system.
            Which still could cache the results, but this is about the best we can do for a flush right now.</remarks>
        </member>
        <member name="T:GSF.Interop.WindowsIniFile">
            <summary>
            Represents a Windows INI style configuration file.
            </summary>
        </member>
        <member name="M:GSF.Interop.WindowsIniFile.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Interop.WindowsIniFile"/> using the specified INI file name.
            </summary>
            <param name="fileName">Specified INI file name to use.</param>
        </member>
        <member name="P:GSF.Interop.WindowsIniFile.FileName">
            <summary>
            File name of the INI file.
            </summary>
        </member>
        <member name="P:GSF.Interop.WindowsIniFile.Item(System.String,System.String,System.String)">
            <summary>
            Gets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <param name="defaultValue">Default value of key.</param>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="P:GSF.Interop.WindowsIniFile.Item(System.String,System.String)">
            <summary>
            Gets or sets the value of the specified key.
            </summary>
            <param name="section">Section key exists in.</param>
            <param name="entry">Name of key.</param>
            <value>The new key value to store in the INI file.</value>
            <returns>Value of key.</returns>
            <remarks>This is the default member of this class.</remarks>
        </member>
        <member name="M:GSF.Interop.WindowsIniFile.GetSectionKeys(System.String)">
            <summary>
            Gets an array of keys from the specified section in the INI file.
            </summary>
            <param name="section">Section to retrieve keys from.</param>
            <returns>Array of <see cref="T:System.String"/> keys from the specified section of the INI file.</returns>
        </member>
        <member name="M:GSF.Interop.WindowsIniFile.GetSectionNames">
            <summary>
            Gets an array of that section names that exist in the INI file.
            </summary>
            <returns>Array of <see cref="T:System.String"/> section names from the INI file.</returns>
        </member>
        <member name="T:GSF.IO.CachedFileStream">
            <summary>
            Represents a file stream that caches recently used blocks in memory.
            </summary>
            <remarks>
            <para>
            This class was developed as a wrapper around <see cref="T:System.IO.FileStream"/> with the same
            basic functionality. This stream treats the file as a collection of contiguous blocks which can
            be loaded into an in-memory lookup table to greatly improve seek times. This class generally
            performs significantly better than the standard FileStream class when maintaining multiple
            file pointers and frequently seeking back and forth between them. For an example of a good
            use-case, consider copying a list of serialized objects from one location in the file to another
            without loading the whole list into memory.
            </para>
            
            <para>
            This class likely will not perform significantly better or worse than the standard FileStream
            when performing strictly sequential reads or writes. For an example of a bad use-case, consider
            reading a list of objects into memory or simply appending new data to the end of the file. In
            both of these cases, it may be better to use the standard FileStream for less memory overhead
            and more predictable flush behavior.
            </para>
            
            <para>
            Blocks are loaded into memory as they are used (for read/write operations) and will be kept in
            memory for as long as possible. Blocks can only be flushed from the cache by decreasing the
            cache size or by accessing a non-cached block when the cache is already full. In these cases,
            a least recently used algorithm is executed to determine which blocks should be removed from
            the cache either to decrease the size of the cache or to make room for a new block.
            </para>
            
            <para>
            Write operations are also cached such that they will not be committed to the file until the
            block is removed from the cache or a call to <see cref="M:GSF.IO.CachedFileStream.Flush"/> has been made. This can
            have some additional implications as compared to the standard FileStream. For instance,
            write operations may not be committed to the file in the order in which they were executed.
            Users of this class will need to be judicious about when and how often they call Flush.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.IO.CachedFileStream.DefaultBlockSize">
            <summary>
            Default value for the <see cref="P:GSF.IO.CachedFileStream.BlockSize"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.CachedFileStream.DefaultCacheSize">
            <summary>
            Default value for the <see cref="P:GSF.IO.CachedFileStream.CacheSize"/> property.
            </summary>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> contains an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> or <paramref name="access"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="useAsync">Specifies whether to use asynchronous I/O or synchronous I/O. However, note that the underlying operating system might not support asynchronous I/O, so when specifying true, the handle might be opened synchronously depending on the platform. When opened asynchronously, the <see cref="M:System.IO.FileStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)"/> and <see cref="M:System.IO.FileStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)"/> methods perform better on large reads or writes, but they might be much slower for small reads or writes. If the application is designed to take advantage of asynchronous I/O, set the <paramref name="useAsync"/> parameter to true. Using asynchronous I/O correctly can speed up applications by as much as a factor of 10, but using it without redesigning the application for asynchronous I/O can decrease performance by as much as a factor of 10.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current FileStream object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="access">A constant that determines how the file can be accessed by the FileStream object. This gets the <see cref="P:System.IO.FileStream.CanRead"/> and <see cref="P:System.IO.FileStream.CanWrite"/> properties of the FileStream object. <see cref="P:System.IO.FileStream.CanSeek"/> is true if <paramref name="path"/> specifies a disk file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="options">A value that specifies additional file options.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, <paramref name="access"/>, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred.-or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The <paramref name="access"/> requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when <paramref name="access"/> is Write or ReadWrite and the file or directory is set for read-only access. -or-<see cref="F:System.IO.FileOptions.Encrypted"/> is specified for <paramref name="options"/>, but file encryption is not supported on the current platform.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.Security.AccessControl.FileSystemRights,System.IO.FileShare,System.Int32,System.IO.FileOptions)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, access rights and sharing permission, the buffer size, and additional file options.
            </summary>
            <param name="path">A relative or absolute path for the file that the current <see cref="T:System.IO.FileStream"/> object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="rights">A constant that determines the access rights to use when creating access and audit rules for the file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="options">A constant that specifies additional file options.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception>
            <exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, access, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Windows NT or later.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred. -or-The stream has been closed.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission.</exception>
            <exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The access requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when access is Write or ReadWrite and the file or directory is set for read-only access. -or-<see cref="F:System.IO.FileOptions.Encrypted"/> is specified for <paramref name="options"/>, but file encryption is not supported on the current platform.</exception>
            <exception cref="T:System.IO.PathTooLongException">The specified <paramref name="path"/>, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
        </member>
        <member name="M:GSF.IO.CachedFileStream.#ctor(System.String,System.IO.FileMode,System.Security.AccessControl.FileSystemRights,System.IO.FileShare,System.Int32,System.IO.FileOptions,System.Security.AccessControl.FileSecurity)">
            <summary>
            Initializes a new instance of the <see cref="T:System.IO.FileStream"/> class with the specified path, creation mode, access rights and sharing permission, the buffer size, additional file options, access control and audit security.
            </summary>
            <param name="path">A relative or absolute path for the file that the current <see cref="T:System.IO.FileStream"/> object will encapsulate.</param>
            <param name="mode">A constant that determines how to open or create the file.</param>
            <param name="rights">A constant that determines the access rights to use when creating access and audit rules for the file.</param>
            <param name="share">A constant that determines how the file will be shared by processes.</param>
            <param name="blockSize">A positive <see cref="T:System.Int32"/> value greater than 0 indicating the block size. For <paramref name="blockSize"/> values between one and eight, the actual block size is set to eight bytes.</param>
            <param name="options">A constant that specifies additional file options.</param>
            <param name="fileSecurity">A constant that determines the access control and audit security for the file.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="path"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="path"/> is an empty string (""), contains only white space, or contains one or more invalid characters. -or-<paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.</exception><exception cref="T:System.NotSupportedException"><paramref name="path"/> refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="blockSize"/> is negative or zero.-or- <paramref name="mode"/>, access, or <paramref name="share"/> contain an invalid value.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The file cannot be found, such as when <paramref name="mode"/> is FileMode.Truncate or FileMode.Open, and the file specified by <paramref name="path"/> does not exist. The file must already exist in these modes.</exception>
            <exception cref="T:System.IO.IOException">An I/O error, such as specifying FileMode.CreateNew when the file specified by <paramref name="path"/> already exists, occurred. -or-The stream has been closed.</exception><exception cref="T:System.Security.SecurityException">The caller does not have the required permission. </exception><exception cref="T:System.IO.DirectoryNotFoundException">The specified path is invalid, such as being on an unmapped drive.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The access requested is not permitted by the operating system for the specified <paramref name="path"/>, such as when access is Write or ReadWrite and the file or directory is set for read-only access. -or-<see cref="F:System.IO.FileOptions.Encrypted"/> is specified for <paramref name="options"/>, but file encryption is not supported on the current platform.</exception><exception cref="T:System.IO.PathTooLongException">The specified <paramref name="path"/>, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.</exception>
            <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Windows NT or later.</exception>
        </member>
        <member name="P:GSF.IO.CachedFileStream.BlockSize">
            <summary>
            Gets the size of the cached blocks.
            </summary>
        </member>
        <member name="P:GSF.IO.CachedFileStream.CacheSize">
            <summary>
            Gets or sets the maximum size of the cache.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Cache size is set to a value less than zero.</exception>
        </member>
        <member name="P:GSF.IO.CachedFileStream.CanRead">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports reading.
            </summary>
            <returns>
            true if the stream supports reading; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:GSF.IO.CachedFileStream.CanWrite">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports writing.
            </summary>
            <returns>
            true if the stream supports writing; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:GSF.IO.CachedFileStream.CanSeek">
            <summary>
            When overridden in a derived class, gets a value indicating whether the current stream supports seeking.
            </summary>
            <returns>
            true if the stream supports seeking; otherwise, false.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:GSF.IO.CachedFileStream.Position">
            <summary>
            When overridden in a derived class, gets or sets the position within the current stream.
            </summary>
            <returns>
            The current position within the stream.
            </returns>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="P:GSF.IO.CachedFileStream.Length">
            <summary>
            When overridden in a derived class, gets the length in bytes of the stream.
            </summary>
            <returns>
            A long value representing the length of the stream in bytes.
            </returns>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            When overridden in a derived class, sets the position within the current stream.
            </summary>
            <returns>
            The new position within the current stream.
            </returns>
            <param name="offset">A byte offset relative to the <paramref name="origin"/> parameter.</param>
            <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin"/> indicating the reference point used to obtain the new position.</param>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
            </summary>
            <param name="buffer">An array of bytes. When this method returns, the buffer contains the specified byte array with the values between <paramref name="offset"/> and (<paramref name="offset"/> + <paramref name="count"/> - 1) replaced by the bytes read from the current source. </param><param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin storing the data read from the current stream. </param><param name="count">The maximum number of bytes to be read from the current stream. </param>
            <returns>
            The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="offset"/> and <paramref name="count"/> describe an invalid range in <paramref name="buffer"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> or <paramref name="count"/> is negative.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support reading.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
            </summary>
            <param name="buffer">An array of bytes. This method copies <paramref name="count"/> bytes from <paramref name="buffer"/> to the current stream. </param>
            <param name="offset">The zero-based byte offset in <paramref name="buffer"/> at which to begin copying bytes to the current stream. </param>
            <param name="count">The number of bytes to be written to the current stream. </param>
            <exception cref="T:System.ArgumentException"><paramref name="offset"/> and <paramref name="count"/> describe an invalid range in <paramref name="buffer"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> or <paramref name="count"/> is negative.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support writing.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Flush">
            <summary>
            Clears buffers for this stream and causes any buffered data to be written to the file.
            </summary>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Flush(System.Boolean)">
            <summary>
            Clears buffers for this stream and causes any buffered data to be written to the file,
            and also clears all intermediate file buffers.
            </summary>
            <param name="flushToDisk">true to flush all intermediate file buffers; otherwise, false.</param>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.SetLength(System.Int64)">
            <summary>
            When overridden in a derived class, sets the length of the current stream.
            </summary>
            <param name="value">The desired length of the current stream in bytes.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Attempted to set the <paramref name="value"/> parameter to less than 0.</exception>
            <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
            <exception cref="T:System.NotSupportedException">The stream does not support both writing and seeking.</exception>
            <exception cref="T:System.ObjectDisposedException">Methods were called after the stream was closed.</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.IO.CachedFileStream.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:System.IO.Stream"/> and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.IO.Compression.CompressionStrength">
            <summary>
            Level of compression enumeration.
            </summary>
            <remarks>
            Compression strengths represent tradeoffs on speed of compression vs. effectiveness of compression.
            </remarks>
        </member>
        <member name="F:GSF.IO.Compression.CompressionStrength.NoCompression">
            <summary>Disables compression.</summary>
        </member>
        <member name="F:GSF.IO.Compression.CompressionStrength.Standard">
            <summary>Enables standard compression.</summary>
        </member>
        <member name="F:GSF.IO.Compression.CompressionStrength.MultiPass">
            <summary>Enables multi-pass compression to continue recompressing buffer as long as size continues to shrink.</summary>
        </member>
        <member name="T:GSF.IO.Compression.CompressionExtensions">
            <summary>
            Defines extension functions related to compression.
            </summary>
        </member>
        <member name="F:GSF.IO.Compression.CompressionExtensions.BufferSize">
            <summary>
            Default compression buffer size.
            </summary>
        </member>
        <member name="F:GSF.IO.Compression.CompressionExtensions.CompressionVersion">
            <summary>
            Needed version of this library to uncompress stream (1.0.0 stored as byte 100).
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Compress(System.Byte[])">
            <summary>
            Compress a byte array using standard compression method.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array to compress.</param>
            <returns>A compressed version of the source <see cref="T:System.Byte"/> array.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Compress(System.Byte[],GSF.IO.Compression.CompressionStrength)">
            <summary>
            Compress a byte array using specified compression method.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array to compress.</param>
            <param name="strength">The specified <see cref="T:GSF.IO.Compression.CompressionStrength"/>.</param>
            <returns>A compressed version of the source <see cref="T:System.Byte"/> array.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Compress(System.Byte[],System.Int32,System.Int32,GSF.IO.Compression.CompressionStrength)">
            <summary>
            Compress a byte array using specified compression method.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array to compress.</param>
            <param name="length">The number of bytes to read into the byte array for compression.</param>
            <param name="startIndex">An <see cref="T:System.Int32"/> representing the start index of the byte array.</param>
            <param name="strength">The specified <see cref="T:GSF.IO.Compression.CompressionStrength"/>.</param>
            <returns>A compressed version of the source <see cref="T:System.Byte"/> array.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Compress(System.IO.Stream,GSF.IO.Compression.CompressionStrength)">
            <summary>
            Compress a stream using specified compression strength.
            </summary>
            <remarks>
            This returns a memory stream of the compressed results, if the incoming stream is
            very large this will consume a large amount memory.  In this case use the overload
            that takes the destination stream as a parameter instead.
            </remarks>
            <param name="source">The <see cref="T:System.IO.Stream"/> to compress.</param>
            <param name="strength">The <see cref="T:GSF.IO.Compression.CompressionStrength"/> of the compression.</param>
            <returns>Returns a <see cref="T:System.IO.MemoryStream"/> of the compressed <see cref="T:System.IO.Stream"/>.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Compress(System.IO.Stream,System.IO.Stream,GSF.IO.Compression.CompressionStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Compress a stream onto given output stream using specified compression strength.
            </summary>
            <param name="source">The <see cref="T:System.IO.Stream"/> to compress.</param>
            <param name="strength">The <see cref="T:GSF.IO.Compression.CompressionStrength"/> of the compression.</param>
            <param name="destination">The <see cref="T:System.IO.Stream"/> destination.</param>
            <param name="progressHandler">The progress handler to check progress.</param>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Decompress(System.Byte[])">
            <summary>
            Decompress a byte array.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array to decompress.</param>
            <returns>A decompressed version of the source <see cref="T:System.Byte"/> array.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Decompress(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Decompress a byte array.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array to decompress.</param>
            <param name="length">The number of bytes to read into the byte array for compression.</param>
            <param name="startIndex">An <see cref="T:System.Int32"/> representing the start index of the byte array.</param>
            <returns>A decompressed <see cref="T:System.Byte"/> array.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Decompress(System.IO.Stream)">
            <summary>
            Decompress a stream.
            </summary>
            <remarks>
            This returns a memory stream of the uncompressed results, if the incoming stream is
            very large this will consume a large amount memory.  In this case use the overload
            that takes the destination stream as a parameter instead.
            </remarks>
            <param name="source">A <see cref="T:System.IO.Stream"/> source to decompress.</param>
            <returns>A <see cref="T:System.IO.MemoryStream"/> representing the decompressed source.</returns>
        </member>
        <member name="M:GSF.IO.Compression.CompressionExtensions.Decompress(System.IO.Stream,System.IO.Stream,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Decompress a stream onto given output stream.
            </summary>
            <param name="source">A source <see cref="T:System.IO.Stream"/> to decompress.</param>
            <param name="destination">The destination <see cref="T:System.IO.Stream"/> to decompress to.</param>
            <param name="progressHandler">A <see cref="T:System.Action"/> handler to monitor the action's progress.</param>
        </member>
        <member name="T:GSF.IO.Compression.FileCompressor">
            <summary>Performs basic compression and decompression on a file.</summary>
        </member>
        <member name="M:GSF.IO.Compression.FileCompressor.Compress(System.String,System.String)">
            <summary>
            Compress a file using default compression strength (not PKZip compatible...)
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
        </member>
        <member name="M:GSF.IO.Compression.FileCompressor.Compress(System.String,System.String,GSF.IO.Compression.CompressionStrength)">
            <summary>
            Compress a file using specified compression strength (not PKZip compatible...)
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
            <param name="strength">Stength of compression to apply.</param>
        </member>
        <member name="M:GSF.IO.Compression.FileCompressor.Compress(System.String,System.String,GSF.IO.Compression.CompressionStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Compress a file using specified compression strength (not PKZip compatible...)
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
            <param name="strength">Stength of compression to apply.</param>
            <param name="progressHandler">User function to call with compression progress updates.</param>
        </member>
        <member name="M:GSF.IO.Compression.FileCompressor.Decompress(System.String,System.String)">
            <summary>
            Uncompress a file compressed with CompressFile (not PKZip compatible...)
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
        </member>
        <member name="M:GSF.IO.Compression.FileCompressor.Decompress(System.String,System.String,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Uncompress a file compressed with CompressFile given progress event handler (not PKZip compatible...)
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
            <param name="progressHandler">User function to call with decompression progress updates.</param>
        </member>
        <member name="T:GSF.IO.Compression.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to simplify and standardize using compression in applications.
            </summary>
        </member>
        <member name="T:GSF.IO.Compression.PatternCompressor">
            <summary>
            Defines functions used for high-speed pattern compression against native types.
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.#ctor(System.Byte)">
            <summary>
            Creates a new instance of the PatternCompressor with the given compression strength.
            </summary>
            <param name="compressionStrength">The compression strength of the PatternCompressor.</param>
        </member>
        <member name="P:GSF.IO.Compression.PatternCompressor.CompressedBuffer">
            <summary>
            Gets or sets the buffer into which compressed values are written.
            </summary>
            <remarks>
            When setting the compressed buffer, the new buffer is assumed to be empty
            (<see cref="P:GSF.IO.Compression.PatternCompressor.CompressedBufferLength"/> is set to zero).
            </remarks>
        </member>
        <member name="P:GSF.IO.Compression.PatternCompressor.CompressedBufferLength">
            <summary>
            Gets the amount of compressed data in the compressed buffer.
            </summary>
        </member>
        <member name="P:GSF.IO.Compression.PatternCompressor.MaxCompressedBufferLength">
            <summary>
            Gets or sets the maximum compressed buffer length.
            </summary>
            <remarks>
            The compressor will not write beyond the MaxCompressedBufferLength.
            Defaults to the full length of the compressed buffer.
            Set to -1 to return to the default.
            </remarks>
        </member>
        <member name="P:GSF.IO.Compression.PatternCompressor.CompressionStrength">
            <summary>
            Gets or sets the compression strength of the PatternCompressor.
            </summary>
            <remarks>
            When setting the compression strength, the PatternCompressor
            is automatically reset (the back buffer is emptied).
            </remarks>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(GSF.Parsing.ISupportBinaryImage)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> cannot be null.</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Byte[])">
            <summary>
            Compresses all of the data in the given <paramref name="buffer"/>.
            </summary>
            <param name="buffer">The buffer to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="buffer"/> length must be a multiple of four.</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Byte[],System.Int32)">
            <summary>
            Compresses <paramref name="length"/> bytes of data in the given <paramref name="buffer"/>.
            </summary>
            <param name="buffer">The buffer to be compressed.</param>
            <param name="length">The amount of data to be compressed. Must be a multiple of four.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="length"/> must be a multiple of four.</exception>]
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> exceeds <paramref name="buffer"/> array boundaries</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Compresses <paramref name="length"/> bytes of data in the given <paramref name="buffer"/>, starting at <paramref name="offset"/>.
            </summary>
            <param name="buffer">The buffer to be compressed.</param>
            <param name="offset">The amount of data to ignore at the start of the buffer.</param>
            <param name="length">The amount of data to be compressed. Must be a multiple of four.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="length"/> must be a multiple of four.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> exceeds <paramref name="buffer"/> array boundaries</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Double)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Single)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Int64)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.UInt64)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Int32)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.UInt32)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Int16)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.UInt16)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Compress(System.Byte)">
            <summary>
            Compresses the given value and places it in the compressed buffer.
            </summary>
            <param name="value">The value to be compressed.</param>
            <returns>The size, in bytes, of the compressed value.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.EmptyCompressedBuffer">
            <summary>
            Sets <see cref="P:GSF.IO.Compression.PatternCompressor.CompressedBufferLength"/> to zero and allows the
            compressor to write over the values in the compressed buffer.
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.Reset">
            <summary>
            Resets the compressor by flushing the back buffer. Subsequent calls
            to the Compress methods will not be compressed using previously
            compressed values.
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.PatternCompressor.CompressBuffer(System.Byte[],System.Int32,System.Int32,System.Int32,System.Byte)">
            <summary>
            Compress a byte array containing a sequential list of 32-bit structures (e.g., floating point numbers, integers or unsigned integers) using a patterned compression method.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array containing 32-bit values to compress. Compression will happen inline on this buffer.</param>
            <param name="startIndex">An <see cref="T:System.Int32"/> representing the start index of the byte array.</param>
            <param name="dataLength">The number of bytes in the buffer that represents actual data.</param>
            <param name="bufferLength">The number of bytes available for use in the buffer; actual buffer length must be at least one byte larger than <paramref name="dataLength"/> since it's possible that data cannot be compressed. This extra byte will be used indicate an uncompressed buffer.</param>
            <param name="compressionStrength">Specifies compression strength (0 to 31). Smaller numbers will run faster, larger numbers will yield better compression.</param>
            <returns>The new length of the buffer after compression.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> buffer cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="dataLength"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="dataLength"/> must be an even multiple of 4.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="bufferLength"/> must be at least one byte larger than <paramref name="dataLength"/> in case data cannot be compressed.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Actual length of <paramref name="source"/> buffer is less than specified <paramref name="bufferLength"/>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="compressionStrength"/> must be 0 to 31.</exception>
            <remarks>
            As an optimization this function is using pointers to native structures, as such the endian order decoding and encoding of the values will always be in the native endian order of the operating system.
            </remarks>
        </member>
        <member name="T:GSF.IO.Compression.PatternDecompressor">
            <summary>
            Defines functions for decompression of data compressed by the PatternCompressor.
            </summary>
        </member>
        <member name="P:GSF.IO.Compression.PatternDecompressor.CompressionStrength">
            <summary>
            Gets the compression strength defined by the compressed stream.
            </summary>
        </member>
        <member name="P:GSF.IO.Compression.PatternDecompressor.DataBufferLength">
            <summary>
            Gets the length of the data left in the buffer.
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.AugmentBuffer(System.Byte[])">
            <summary>
            Inserts the given data into the data buffer for decompression.
            </summary>
            <param name="data">The data to be inserted into the data buffer.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.AugmentBuffer(System.Byte[],System.Int32)">
            <summary>
            Inserts the given data into the data buffer for decompression.
            </summary>
            <param name="data">The data to be inserted into the data buffer.</param>
            <param name="dataLength">The amount of data to be taken from the given buffer and placed in the data buffer.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.AugmentBuffer(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Inserts the given data into the data buffer for decompression.
            </summary>
            <param name="data">The data to be inserted into the data buffer.</param>
            <param name="offset">The amount of data to be ignored at the beginning of the buffer.</param>
            <param name="dataLength">The amount of data to be taken from the given buffer and placed in the data buffer.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Byte[])">
            <summary>
            Decompresses enough bytes of data to fill up the <paramref name="buffer"/>.
            </summary>
            <param name="buffer">The buffer that holds the data.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="buffer"/> length must be a multiple of four.</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Byte[],System.Int32)">
            <summary>
            Decompresses <paramref name="length"/> bytes of data and places it in the <paramref name="buffer"/>.
            </summary>
            <param name="buffer">The buffer that holds the data.</param>
            <param name="length">The amount of data to be decompressed and written to the buffer. The value of this parameter must be a multiple of four.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="length"/> must be a multiple of four.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> exceeds <paramref name="buffer"/> array boundaries.</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Decompresses <paramref name="length"/> bytes of data and places it in the <paramref name="buffer"/> starting at <paramref name="offset"/>.
            </summary>
            <param name="buffer">The buffer that holds the data.</param>
            <param name="offset">The amount of data at the beginning of the buffer that will not be overwritten.</param>
            <param name="length">The amount of data to be decompressed and written to the buffer. The value of this parameter must be a multiple of four.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="length"/> must be a multiple of four.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="offset"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> must be greater than or equal to zero.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="length"/> exceeds <paramref name="buffer"/> array boundaries.</exception>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Double@)">
            <summary>
            Decompresses eight bytes of data and writes the data into a 64-bit floating point number.
            </summary>
            <param name="value">The 64-bit floating point number that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Single@)">
            <summary>
            Decompresses four bytes of data and writes the data into a 32-bit floating point number.
            </summary>
            <param name="value">The 32-bit floating point number that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Int64@)">
            <summary>
            Decompresses eight bytes of data and writes the data into a 64-bit signed integer.
            </summary>
            <param name="value">The 64-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.UInt64@)">
            <summary>
            Decompresses eight bytes of data and writes the data into a 64-bit unsigned integer.
            </summary>
            <param name="value">The 64-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Int32@)">
            <summary>
            Decompresses four bytes of data and writes the data into a 32-bit signed integer.
            </summary>
            <param name="value">The 32-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.UInt32@)">
            <summary>
            Decompresses four bytes of data and writes the data into a 32-bit unsigned integer.
            </summary>
            <param name="value">The 32-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Int16@)">
            <summary>
            Decompresses four bytes of data and writes the data into a 16-bit signed integer. The high-order bytes are discarded.
            </summary>
            <param name="value">The 16-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.UInt16@)">
            <summary>
            Decompresses four bytes of data and writes the data into a 16-bit unsigned integer. The high-order bytes are discarded.
            </summary>
            <param name="value">The 16-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Decompress(System.Byte@)">
            <summary>
            Decompresses four bytes of data and writes the data into an 8-bit integer. The high-order bytes are discarded.
            </summary>
            <param name="value">The 8-bit integer that the data is to be written to.</param>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.Reset">
            <summary>
            Resets the decompressor by flushing the back buffer. Subsequent calls
            to the Decompress methods will not be decompressed using previously
            decompressed values.
            </summary>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.EmptyBuffer">
            <summary>
            Clears out the data buffer so that subsequent calls to the Decompress
            methods do not use the data that was previously in the data buffer.
            </summary>
            <remarks>
            This method should not be called during normal operation, as data will
            be lost and the compressed stream will likely be corrupted. Only call
            this method if the stream has already been corrupted.
            </remarks>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.MaximumSizeDecompressed(System.Int32)">
            <summary>
            Given the size of a compressed buffer, provides the maximum possible size of the decompressed data.
            </summary>
            <param name="compressedLength">Size of the compressed buffer.</param>
            <returns>The maximum possible size of the data after decompression.</returns>
        </member>
        <member name="M:GSF.IO.Compression.PatternDecompressor.DecompressBuffer(System.Byte[],System.Int32,System.Int32,System.Int32)">
            <summary>
            Decompress a byte array containing a sequential list of compressed 32-bit structures (e.g., floating point numbers, integers or unsigned integers) using a patterned compression method.
            </summary>
            <param name="source">The <see cref="T:System.Byte"/> array containing compressed 32-bit values to be decompressed. Decompression will happen inline on this buffer.</param>
            <param name="startIndex">An <see cref="T:System.Int32"/> representing the start index of the byte array.</param>
            <param name="dataLength">The number of bytes in the buffer that represents actual data.</param>
            <param name="bufferLength">The number of bytes available for use in the buffer; actual buffer length must be at least large enough to fit the maximum size of the decompressed data. See <see cref="M:GSF.IO.Compression.PatternDecompressor.MaximumSizeDecompressed(System.Int32)"/>.</param>
            <returns>The new length of the buffer after compression, unless the data cannot be compressed. If the data cannot be compressed, the buffer will remain unchanged and zero will be returned.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> buffer cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="dataLength"/> must be greater than or equal to one.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="bufferLength"/> must be at least as large as <paramref name="dataLength"/>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="bufferLength"/> must be at least as large as is necessary to fit the maximum possible size of the decompressed data.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Actual length of <paramref name="source"/> buffer is less than specified <paramref name="bufferLength"/>.</exception>
            <remarks>
            <para>
            Decompression is performed inline. The source buffer must be large enough
            to contain the maximum possible size of the decompressed buffer. This
            maximum size can be obtained by using the <see cref="M:GSF.IO.Compression.PatternDecompressor.MaximumSizeDecompressed(System.Int32)"/>
            method.
            </para>
            
            <para>
            As an optimization this function is using pointers to native structures,
            as such the endian order decoding and encoding of the values will always
            be in the native endian order of the operating system.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.IO.ExportDestination">
            <summary>
            Represents a destination location when exporting data using <see cref="T:GSF.IO.MultipleDestinationExporter"/>.
            </summary>
            <seealso cref="T:GSF.IO.MultipleDestinationExporter"/>
        </member>
        <member name="M:GSF.IO.ExportDestination.#ctor">
            <summary>
            Constructs a new <see cref="T:GSF.IO.ExportDestination"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.ExportDestination.#ctor(System.String,System.Boolean,System.String,System.String,System.String)">
            <summary>
            Constructs a new <see cref="T:GSF.IO.ExportDestination"/> given the specified parameters.
            </summary>
            <param name="destinationFile">Path and file name of export destination.</param>
            <param name="connectToShare">Determines whether or not to attempt network connection to share specified in <paramref name="destinationFile"/>.</param>
            <param name="domain">Domain used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
            <param name="userName">User name used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
            <param name="password">Password used to authenticate network connection if <paramref name="connectToShare"/> is true.</param>
        </member>
        <member name="P:GSF.IO.ExportDestination.DestinationFile">
            <summary>
            Path and file name of export destination.
            </summary>
        </member>
        <member name="P:GSF.IO.ExportDestination.ConnectToShare">
            <summary>
            Determines whether or not to attempt network connection to share specified in <see cref="P:GSF.IO.ExportDestination.DestinationFile"/>.
            </summary>
            <remarks>
            This option is ignored under Mono deployments.
            </remarks>
        </member>
        <member name="P:GSF.IO.ExportDestination.Domain">
            <summary>
            Domain used to authenticate network connection if <see cref="P:GSF.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
            <remarks>
            This option is ignored under Mono deployments.
            </remarks>
        </member>
        <member name="P:GSF.IO.ExportDestination.UserName">
            <summary>
            User name used to authenticate network connection if <see cref="P:GSF.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
            <remarks>
            This option is ignored under Mono deployments.
            </remarks>
        </member>
        <member name="P:GSF.IO.ExportDestination.Password">
            <summary>
            Password used to authenticate network connection if <see cref="P:GSF.IO.ExportDestination.ConnectToShare"/> is true.
            </summary>
            <remarks>
            This option is ignored under Mono deployments.
            </remarks>
        </member>
        <member name="P:GSF.IO.ExportDestination.Share">
            <summary>
            Path root of <see cref="P:GSF.IO.ExportDestination.DestinationFile"/> (e.g., E:\ or \\server\share).
            </summary>
        </member>
        <member name="P:GSF.IO.ExportDestination.FileName">
            <summary>
            Path and filename of <see cref="P:GSF.IO.ExportDestination.DestinationFile"/> without drive or server share prefix.
            </summary>
        </member>
        <member name="M:GSF.IO.ExportDestination.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.IO.ExportDestination"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.IO.ExportDestination"/>.</returns>
        </member>
        <member name="T:GSF.IO.FilePath">
            <summary>
            Contains File and Path manipulation methods.
            </summary>
            <summary>
            Contains File and Path manipulation methods.
            </summary>
        </member>
        <member name="M:GSF.IO.FilePath.ConnectToNetworkShare(System.String,System.String,System.String,System.String)">
            <summary>
            Connects to a network share with the specified user's credentials.
            </summary>
            <param name="sharename">UNC share name to connect to.</param>
            <param name="userName">User name to use for connection.</param>
            <param name="password">Password to use for connection.</param>
            <param name="domain">Domain name to use for connection. Specify the computer name for local system accounts.</param>
        </member>
        <member name="M:GSF.IO.FilePath.DisconnectFromNetworkShare(System.String)">
            <summary>
            Disconnects the specified network share.
            </summary>
            <param name="sharename">UNC share name to disconnect from.</param>
        </member>
        <member name="M:GSF.IO.FilePath.DisconnectFromNetworkShare(System.String,System.Boolean)">
            <summary>
            Disconnects the specified network share.
            </summary>
            <param name="sharename">UNC share name to disconnect from.</param>
            <param name="force"><c>true</c> to force a disconnect; otherwise <c>false</c>.</param>
        </member>
        <member name="M:GSF.IO.FilePath.GetAvailableFreeSpace(System.String,System.Int64@,System.Int64@)">
            <summary>
            Tries to get the free space values for a given path. This path can be a network share or a mount point.
            </summary>
            <param name="pathName">The path to the location</param>
            <param name="freeSpace">The number of user space bytes</param>
            <param name="totalSize">The total number of bytes on the drive.</param>
            <returns><c>true</c> if successful; otherwise <c>false</c> if there was an error.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.InApplicationPath(System.String)">
            <summary>
            Determines if the specified <paramref name="filePath"/> is contained with the current executable path.
            </summary>
            <param name="filePath">File name or relative file path.</param>
            <returns><c>true</c> if the specified <paramref name="filePath"/> is contained with the current executable path; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetCommonApplicationDataFolder">
            <summary>
            Gets the path to the folder where data related to the current
            application can be stored as well as shared among different users.
            </summary>
            <returns>Path to the folder where data related to the current application can be stored.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetApplicationDataFolder">
            <summary>
            Gets the path to the folder where data related to the current application can be stored.
            </summary>
            <returns>Path to the folder where data related to the current application can be stored.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetAbsolutePath(System.String)">
            <summary>
            Gets the absolute file path for the specified file name or relative file path.
            </summary>
            <param name="filePath">File name or relative file path.</param>
            <returns>Absolute file path for the specified file name or relative file path.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetUniqueFilePath(System.String)">
            <summary>
            Gets a unique file path for the given file by checking for name collisions and
            adding a sequence number to the end of the file name if there is a collision.
            </summary>
            <param name="originalFilePath">The path to the original file before adding the sequence number.</param>
            <returns>The unique path to the file.</returns>
            <remarks>
            This method is designed to handle the case where the user wishes to create a file in a folder
            with a given name when there is a possibility that the name is already taken. Using this method,
            it is possible to create files with names in the following format:
            
            <ul>
                <li>File.ext</li>
                <li>File (1).ext</li>
                <li>File (2).ext</li>
                <li>...</li>
            </ul>
            
            This method uses a linear search to find a unique file name, so it is suitable for situations where
            there are a small number of collisions for each file name. This will detect and fill gaps that can
            occur when files are deleted (for instance, if "File (1).ext" were deleted from the list above).
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.GetUniqueFilePathWithBinarySearch(System.String)">
            <summary>
            Gets a unique file path for the given file by checking for name collisions and
            adding a sequence number to the end of the file name if there is a collision.
            </summary>
            <param name="originalFilePath">The path to the original file before adding the sequence number.</param>
            <returns>The unique path to the file.</returns>
            <remarks>
            This method is designed to handle the case where the user wishes to create a file in a folder
            with a given name when there is a possibility that the name is already taken. Using this method,
            it is possible to create files with names in the following format:
            
            <ul>
                <li>File.ext</li>
                <li>File (1).ext</li>
                <li>File (2).ext</li>
                <li>...</li>
            </ul>
            
            This method uses a binary search to find a unique file name, so it is suitable for situations where
            a large number of files will be created with the same file name, and the next unique file name needs
            to be found relatively quickly. It will not always detect gaps in the sequence numbers that can occur
            when files are deleted (for instance, if "File (1).ext" were deleted from the list above).
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.ResetPermissions(System.String)">
            <summary>
            Sets the permissions of the file or directory at the given
            <paramref name="path"/> to the object's inherited permissions.
            </summary>
            <param name="path">The path to the file or directory.</param>
            <exception cref="T:System.IO.FileNotFoundException">No file or directory was found at the given <paramref name="path"/>.</exception>
        </member>
        <member name="M:GSF.IO.FilePath.CopyPermissions(System.String,System.String)">
            <summary>
            Copies permissions from the object at the given <paramref name="sourcePath"/>
            to the object at the given <paramref name="targetPath"/>.
            </summary>
            <param name="sourcePath">The path to the object from which to copy permissions.</param>
            <param name="targetPath">The path to the object to which to apply permissions.</param>
            <exception cref="T:System.IO.FileNotFoundException">No file or directory was found at either the <paramref name="sourcePath"/> or <paramref name="targetPath"/>.</exception>
            <exception cref="T:System.InvalidOperationException">The type of object at <paramref name="sourcePath"/> does not match the type of object at <paramref name="targetPath"/>.</exception>
        </member>
        <member name="M:GSF.IO.FilePath.CopyDirectoryPermissions(System.String,System.String)">
            <summary>
            Copies the permissions of the directory at the given <paramref name="sourcePath"/>
            to the directory at the given <paramref name="targetPath"/>.
            </summary>
            <param name="sourcePath">The path to the directory from which to copy permissions.</param>
            <param name="targetPath">The path to the directory to which to apply permissions.</param>
        </member>
        <member name="M:GSF.IO.FilePath.CopyFilePermissions(System.String,System.String)">
            <summary>
            Copies the permissions of the file at the given <paramref name="sourcePath"/>
            to the file at the given <paramref name="targetPath"/>.
            </summary>
            <param name="sourcePath">The path to the file from which to copy permissions.</param>
            <param name="targetPath">The path to the file to which to apply permissions.</param>
        </member>
        <member name="M:GSF.IO.FilePath.ApplyInheritablePermissions(System.String,System.String)">
            <summary>
            Replaces the permissions of the directory or file at the given <paramref name="targetPath"/>
            with the inheritable permissions from the directory at the given <paramref name="sourcePath"/>.
            </summary>
            <param name="sourcePath">The path to the directory from which to derive inheritable permissions.</param>
            <param name="targetPath">The path to the directory or file to which to apply the derived permissions.</param>
            <exception cref="T:System.IO.DirectoryNotFoundException">No directory was found at the given <paramref name="sourcePath"/>.</exception>
            <exception cref="T:System.IO.FileNotFoundException">No file or directory was found at the given <paramref name="targetPath"/>.</exception>
        </member>
        <member name="M:GSF.IO.FilePath.ApplyInheritableDirectoryPermissions(System.String,System.String)">
            <summary>
            Replaces the permissions of the directory at the given <paramref name="targetPath"/>
            with the inheritable permissions from the directory at the given <paramref name="sourcePath"/>.
            </summary>
            <param name="sourcePath">The path to the directory from which to derive inheritable permissions.</param>
            <param name="targetPath">The path to the directory to which to apply the derived permissions.</param>
        </member>
        <member name="M:GSF.IO.FilePath.ApplyInheritableFilePermissions(System.String,System.String)">
            <summary>
            Replaces the permissions of the file at the given <paramref name="targetPath"/>
            with the inheritable permissions from the directory at the given <paramref name="sourcePath"/>.
            </summary>
            <param name="sourcePath">The path to the directory from which to derive inheritable permissions.</param>
            <param name="targetPath">The path to the file to which to apply the derived permissions.</param>
        </member>
        <member name="M:GSF.IO.FilePath.GetDirectories(System.String,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories.
            </summary>
            <param name="path">The relative or absolute path to the directory to search. This string is not case-sensitive.</param>
            <param name="searchPattern">The search string to match against the names of subdirectories in <paramref name="path"/>. This parameter can contain a combination of valid literal and wildcard characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory.</param>
            <param name="exceptionHandler">Handles exceptions thrown during directory enumeration.</param>
            <returns>An array of the full names (including paths) of the subdirectories that match the specified criteria, or an empty array if no directories are found.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.EnumerateDirectories(System.String,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.
            </summary>
            <param name="path">The relative or absolute path to the directory to search. This string is not case-sensitive.</param>
            <param name="searchPattern">The search string to match against the names of directories in <paramref name="path"/>. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.</param>
            <param name="exceptionHandler">Handles exceptions thrown during directory enumeration.</param>
            <returns>An enumerable collection of the full names (including paths) for the directories in the directory specified by <paramref name="path"/> and that match the specified search pattern and option.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFiles(System.String,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.
            </summary>
            <param name="path">The relative or absolute path to the directory to search. This string is not case-sensitive.</param>
            <param name="searchPattern">The search string to match against the names of files in <paramref name="path"/>. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory.</param>
            <param name="exceptionHandler">Handles exceptions thrown during file enumeration.</param>
            <returns>An array of the full names (including paths) for the files in the specified directory that match the specified search pattern and option, or an empty array if no files are found.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.EnumerateFiles(System.String,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.
            </summary>
            <param name="path">The relative or absolute path to the directory to search. This string is not case-sensitive.</param>
            <param name="searchPattern">The search string to match against the names of files in <paramref name="path"/>. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.</param>
            <param name="exceptionHandler">Handles exceptions thrown during file enumeration.</param>
            <returns>An enumerable collection of the full names (including paths) for the files in the directory specified by <paramref name="path"/> and that match the specified search pattern and option.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetDirectories(System.IO.DirectoryInfo,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns the subdirectories that match the specified search pattern in the specified directory, and optionally searches subdirectories.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="searchPattern">The search string to match against the names of subdirectories in the <paramref name="directory"/>. This parameter can contain a combination of valid literal and wildcard characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory.</param>
            <param name="exceptionHandler">Handles exceptions thrown during directory enumeration.</param>
            <returns>An array of the <see cref="T:System.IO.DirectoryInfo"/> objects representing the subdirectories that match the specified search criteria.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.EnumerateDirectories(System.IO.DirectoryInfo,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns an enumerable collection of subdirectories that match a search pattern in a specified path, and optionally searches subdirectories.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="searchPattern">The search string to match against the names of subdirectories in the <paramref name="directory"/>. This parameter can contain a combination of valid literal and wildcard characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.</param>
            <param name="exceptionHandler">Handles exceptions thrown during directory enumeration.</param>
            <returns>An enumerable collection of the <see cref="T:System.IO.DirectoryInfo"/> objects representing the subdirectories that match the specified search criteria.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFiles(System.IO.DirectoryInfo,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns the files that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="searchPattern">The search string to match against the names of files in the <paramref name="directory"/>. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include all subdirectories or only the current directory.</param>
            <param name="exceptionHandler">Handles exceptions thrown during file enumeration.</param>
            <returns>An array of the <see cref="T:System.IO.FileInfo"/> objects representing the files in the specified directory that match the specified search pattern, or an empty array if no files are found.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.EnumerateFiles(System.IO.DirectoryInfo,System.String,System.IO.SearchOption,System.Action{System.Exception})">
            <summary>
            Returns an enumerable collection of files that match a search pattern in a specified path, and optionally searches subdirectories.
            </summary>
            <param name="directory">The directory to search.</param>
            <param name="searchPattern">The search string to match against the names of files in the <paramref name="directory"/>. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but doesn't support regular expressions.</param>
            <param name="searchOption">One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.</param>
            <param name="exceptionHandler">Handles exceptions thrown during file enumeration.</param>
            <returns>An enumerable collection of the <see cref="T:System.IO.FileInfo"/> objects representing the files in the specified directory that match the specified search pattern, or an empty array if no files are found.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.ValidatePathName(System.String)">
            <summary>
            Ensures the supplied path name is valid.
            </summary>
            <param name="filePath">The file path to be validated.</param>
            <remarks>
            Throws argument exceptions if the <see param="pathName"/> is invalid.
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.IsFilePatternMatch(System.String[],System.String,System.Boolean)">
            <summary>
            Determines whether the specified file name matches any of the given file specs (wildcards are defined as '*' or '?' characters).
            </summary>
            <param name="fileSpecs">The file specs used for matching the specified file name.</param>
            <param name="filePath">The file path to be tested against the specified file specs for a match.</param>
            <param name="ignoreCase"><c>true</c> to specify a case-insensitive match; otherwise <c>false</c>.</param>
            <returns><c>true</c> if the specified file name matches any of the given file specs; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> contains one or more of the invalid characters defined in <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            The syntax for <paramref name="fileSpecs"/> adheres to the following rules:
            
            <ul>
            <li>Either '\' or '/' (as defined by <see cref="F:System.IO.Path.DirectorySeparatorChar"/> and <see cref="F:System.IO.Path.AltDirectorySeparatorChar"/>) can match the other.</li>
            <li>A single '\' or '/' at the beginning of the pattern matches any valid path root (such as "C:\" or "\\server\share").</li>
            <li>A '?' matches a single character which would be valid in a file name (as defined by <see cref="M:System.IO.Path.GetInvalidFileNameChars"/>).</li>
            <li>A '*' matches any number of characters which would be valid in a file name.</li>
            <li>A sequence of "**\" or "**/" matches any number of sequential directories.</li>
            <li>Any other character matches itself.</li>
            </ul>
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.IsFilePatternMatch(System.String,System.String,System.Boolean)">
            <summary>
            Determines whether the specified file name matches the given file spec (wildcards are defined as '*' or '?' characters).
            </summary>
            <param name="fileSpec">The file spec used for matching the specified file name.</param>
            <param name="filePath">The file path to be tested against the specified file spec for a match.</param>
            <param name="ignoreCase"><c>true</c> to specify a case-insensitive match; otherwise <c>false</c>.</param>
            <returns><c>true</c> if the specified file name matches the given file spec; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="filePath"/> contains one or more of the invalid characters defined in <see cref="M:System.IO.Path.GetInvalidPathChars"/>.</exception>
            <remarks>
            The syntax for <paramref name="fileSpec"/> adheres to the following rules:
            
            <ul>
            <li>Either '\' or '/' (as defined by <see cref="F:System.IO.Path.DirectorySeparatorChar"/> and <see cref="F:System.IO.Path.AltDirectorySeparatorChar"/>) can match the other.</li>
            <li>A single '\' or '/' at the beginning of the pattern matches any valid path root (such as "C:\" or "\\server\share").</li>
            <li>A '?' matches a single character which would be valid in a file name (as defined by <see cref="M:System.IO.Path.GetInvalidFileNameChars"/>).</li>
            <li>A '*' matches any number of characters which would be valid in a file name.</li>
            <li>A sequence of "**\" or "**/" matches any number of sequential directories.</li>
            <li>Any other character matches itself.</li>
            </ul>
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.IsValidFileName(System.String)">
            <summary>
            Determines if the specified file name and path is valid.
            </summary>
            <param name="filePath">The file name with optional path to test for validity.</param>
            <returns><c>true</c> if the specified <paramref name="filePath"/> is a valid name; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetValidFileName(System.String,System.Char)">
            <summary>
            Gets a valid file name by replacing invalid file name characters with <paramref name="replaceWithCharacter"/>.
            </summary>
            <param name="fileName">File name to validate.</param>
            <param name="replaceWithCharacter">Character to replace invalid file name characters with. Set to '\0' to remove invalid file name characters.</param>
            <returns>A valid file name with no invalid file name characters.</returns>
            <remarks>
            This function expects a file name, not a file name with a path. To properly get a valid file path, where all directory
            names and the file name are validated, use the <see cref="M:GSF.IO.FilePath.GetValidFilePath(System.String,System.Char)"/>. Calling the <see cref="M:GSF.IO.FilePath.GetValidFileName(System.String,System.Char)"/>
            function will a full path will yield all directory separators replaced with the <paramref name="replaceWithCharacter"/>.
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.GetValidFilePath(System.String,System.Char)">
            <summary>
            Gets a valid file path by replacing invalid file or directory name characters with <paramref name="replaceWithCharacter"/>.
            </summary>
            <param name="filePath">File path to validate.</param>
            <param name="replaceWithCharacter">Character to replace invalid file or directory name characters with. Set to '\0' to remove invalid file or directory name characters.</param>
            <returns>A valid file path with no invalid file or directory name characters.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFileName(System.String)">
            <summary>
            Gets the file name and extension from the specified file path.
            </summary>
            <param name="filePath">The file path from which the file name and extension is to be obtained.</param>
            <returns>File name and extension if the file path has it; otherwise empty string.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetExtension(System.String)">
            <summary>
            Gets the extension from the specified file path.
            </summary>
            <param name="filePath">The file path from which the extension is to be obtained.</param>
            <returns>File extension.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFileNameWithoutExtension(System.String)">
            <summary>
            Gets the file name without extension from the specified file path.
            </summary>
            <param name="filePath">The file path from which the file name is to be obtained.</param>
            <returns>File name without the extension if the file path has it; otherwise empty string.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFileLength(System.String)">
            <summary>
            Gets the size of the specified file.
            </summary>
            <param name="fileName">Name of file whose size is to be retrieved.</param>
            <returns>The size of the specified file.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFileList(System.String,System.Action{System.Exception})">
            <summary>
            Gets a list of files under the specified path. Search wildcard pattern (c:\Data\*.dat) can be used for 
            including only the files matching the pattern or path wildcard pattern (c:\Data\*\*.dat) to indicate the 
            inclusion of files under all subdirectories in the list.
            </summary>
            <param name="path">The path for which a list of files is to be returned.</param>
            <param name="exceptionHandler">Handles exceptions thrown during file enumeration.</param>
            <returns>A list of files under the given path.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetFilePatternRegularExpression(System.String)">
            <summary>
            Gets a regular expression pattern that simulates wildcard matching for filenames (wildcards are defined as '*' or '?' characters).
            </summary>
            <param name="fileSpec">The file spec for which the regular expression pattern if to be generated.</param>
            <returns>Regular expression pattern that simulates wildcard matching for filenames.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.GetDirectoryName(System.String)">
            <summary>
            Gets the directory information from the specified file path.
            </summary>
            <param name="filePath">The file path from which the directory information is to be obtained.</param>
            <returns>Directory information.</returns>
            <remarks>
            This differs from <see cref="M:System.IO.Path.GetDirectoryName(System.String)"/> in that it will see if last name in path is
            a directory and, if it exists, will properly treat that part of path as a directory. The .NET path
            function always assumes last entry is a file name if path is not suffixed with a slash. For example:
                Path.GetDirectoryName(@"C:\Music") will return "C:\", however, 
            FilePath.GetDirectoryName(@"C:\Music") will return "C:\Music\", so long as Music directory exists.
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.GetLastDirectoryName(System.String)">
            <summary>
            Gets the last directory name from a file path.
            </summary>
            <param name="filePath">The file path from where the last directory name is to be retrieved.</param>
            <returns>The last directory name from a file path.</returns>
            <remarks>
            <see cref="M:GSF.IO.FilePath.GetLastDirectoryName(System.String)"/> would return sub2 from c:\windows\sub2\filename.ext.
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.AddPathSuffix(System.String)">
            <summary>
            Makes sure path is suffixed with standard <see cref="F:System.IO.Path.DirectorySeparatorChar"/>.
            </summary>
            <param name="filePath">The file path to be suffixed.</param>
            <returns>Suffixed path.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.RemovePathSuffix(System.String)">
            <summary>
            Makes sure path is not suffixed with <see cref="F:System.IO.Path.DirectorySeparatorChar"/> or <see cref="F:System.IO.Path.AltDirectorySeparatorChar"/>.
            </summary>
            <param name="filePath">The file path to be unsuffixed.</param>
            <returns>Unsuffixed path.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.DropPathRoot(System.String)">
            <summary>
            Remove any path root present in the path.
            </summary>
            <param name="filePath">The file path whose root is to be removed.</param>
            <returns>The path with the root removed if it was present.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.TrimFileName(System.String,System.Int32)">
            <summary>
            Returns a file name, for display purposes, of the specified length using "..." to indicate a longer name.
            </summary>
            <param name="filePath">The file path to be trimmed.</param>
            <param name="length">The maximum length of the trimmed file path.</param>
            <returns>Trimmed file path.</returns>
            <remarks>
            Minimum value for the <paramref name="length" /> parameter is 12. 12 will be used for any value 
            specified as less than 12.
            </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.GetFileLock``1(System.String,System.Func{System.String,``0},System.Double,System.Int32)">
             <summary>
             Gets a lock on the file using the given lock function.
             </summary>
             <typeparam name="T">The return value of the lock function.</typeparam>
             <param name="fileName">The name of the on which the lock is to be obtained.</param>
             <param name="lockFunction">The function to be called in order to get the file lock.</param>
             <param name="secondsToWait">The number of seconds to wait before giving up on the file lock.</param>
             <param name="retryMilliseconds">The number of milliseconds to wait between attempts to obtain the file lock.</param>
             <returns>The return value of the lock function.</returns>
             <remarks>
             <para>
             The intent of this function is to provide a sane method for opening
             a file which may produce errors due to read/write contention.
             Usage of this class is fairly simple using the static methods
             built into the <see cref="T:System.IO.File"/> class.
             </para>
            
             <code>
             using (StreamReader reader = GetFileLock(File.OpenText))
             {
                 // Read lines from the file
             }
             </code>
            
             <code>
             using (FileStream stream = GetFileLock(File.Create))
             {
                 // Write bytes into the file
             }
             </code>
            
             <para>
             This method will only retry if an <see cref="T:System.IO.IOException"/>
             occurs while executing the <paramref name="lockFunction"/>.
             After retrying for at least <paramref name="secondsToWait"/>
             seconds, this function will throw the last IOException it encountered.
             </para>
             </remarks>
        </member>
        <member name="M:GSF.IO.FilePath.TryGetReadLock(System.String)">
            <summary>
            Attempts to get read access on a file.
            </summary>
            <param name="fileName">The file to check for read access.</param>
            <returns>True if read access is obtained; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.TryGetReadLockExclusive(System.String)">
            <summary>
            Attempts to get read access on a file.
            </summary>
            <param name="fileName">The file to check for read access.</param>
            <returns>True if read access is obtained; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.TryGetWriteLock(System.String)">
            <summary>
            Attempts to get write access on a file.
            </summary>
            <param name="fileName">The file to check for write access.</param>
            <returns>True if write access is obtained; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForReadLock(System.String)">
            <summary>
            Waits for the default duration (5 seconds) for read access on a file.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain read access.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForReadLock(System.String,System.Double)">
            <summary>
            Waits for read access on a file for the specified number of seconds.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain read access.</param>
            <param name="secondsToWait">The time to wait for in seconds to obtain read access on a file. Set to zero to wait infinitely.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForReadLockExclusive(System.String)">
            <summary>
            Waits for the default duration (5 seconds) for read access on a file.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain read access.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForReadLockExclusive(System.String,System.Double)">
            <summary>
            Waits for read access on a file for the specified number of seconds.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain read access.</param>
            <param name="secondsToWait">The time to wait for in seconds to obtain read access on a file. Set to zero to wait infinitely.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForWriteLock(System.String)">
            <summary>
            Waits for the default duration (5 seconds) for write access on a file.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain write access.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitForWriteLock(System.String,System.Double)">
            <summary>
            Waits for write access on a file for the specified number of seconds.
            </summary>
            <param name="fileName">The name of the file to wait for to obtain write access.</param>
            <param name="secondsToWait">The time to wait for in seconds to obtain write access on a file. Set to zero to wait infinitely.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitTillExists(System.String)">
            <summary>
            Waits for the default duration (5 seconds) for a file to exist.
            </summary>
            <param name="fileName">The name of the file to wait for until it is created.</param>
        </member>
        <member name="M:GSF.IO.FilePath.WaitTillExists(System.String,System.Double)">
            <summary>
            Waits for a file to exist for the specified number of seconds.
            </summary>
            <param name="fileName">The name of the file to wait for until it is created.</param>
            <param name="secondsToWait">The time to wait for in seconds for the file to be created. Set to zero to wait infinitely.</param>
        </member>
        <member name="T:GSF.IO.FileEnumerationStrategy">
            <summary>
            Defines strategies for enumerating
            files in the watch directories.
            </summary>
        </member>
        <member name="F:GSF.IO.FileEnumerationStrategy.Sequential">
            <summary>
            Enumerate all files sequentially.
            </summary>
        </member>
        <member name="F:GSF.IO.FileEnumerationStrategy.ParallelWatchDirectories">
            <summary>
            Enumerates the watch directories in parallel,
            but subdirectories are processed sequentially.
            </summary>
        </member>
        <member name="F:GSF.IO.FileEnumerationStrategy.ParallelSubdirectories">
            <summary>
            Enumerates every directory, including subdirectories, in parallel.
            </summary>
        </member>
        <member name="F:GSF.IO.FileEnumerationStrategy.None">
            <summary>
            Does not enumerate directories, relying only on
            the file watcher to handle file processing events.
            </summary>
        </member>
        <member name="T:GSF.IO.FileProcessorEventArgs">
            <summary>
            Arguments to events triggered by the <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessorEventArgs.#ctor(System.String,System.Boolean,System.Func{System.Int32})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.IO.FileProcessorEventArgs"/> class.
            </summary>
            <param name="fullPath">The full path to the file to be processed.</param>
            <param name="raisedByFileWatcher">Flag indicating whether this event was raised by the file watcher.</param>
            <param name="retryCounter">The function that provides the value for <see cref="P:GSF.IO.FileProcessorEventArgs.RetryCount"/>.</param>
        </member>
        <member name="P:GSF.IO.FileProcessorEventArgs.FullPath">
            <summary>
            Gets the full path to the file to be processed.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessorEventArgs.RaisedByFileWatcher">
            <summary>
            Gets the flag that indicates whether this event was raised by the file watcher.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessorEventArgs.RetryCount">
            <summary>
            Gets the number of file processing attempts.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessorEventArgs.Requeue">
            <summary>
            Gets or sets a flag that indicates whether the
            file should be requeued by the file processor.
            </summary>
        </member>
        <member name="T:GSF.IO.FileProcessor">
            <summary>
            Tracks files processed in a list of directories, and
            notifies when new files become available to be processed.
            </summary>
        </member>
        <member name="F:GSF.IO.FileProcessor.DefaultFilter">
            <summary>
            Default value for the <see cref="P:GSF.IO.FileProcessor.Filter"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.FileProcessor.DefaultFolderExclusion">
            <summary>
            Default value for the <see cref="P:GSF.IO.FileProcessor.FolderExclusion"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.FileProcessor.DefaultTrackChanges">
            <summary>
            Default value for the <see cref="P:GSF.IO.FileProcessor.TrackChanges"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.FileProcessor.DefaultInternalBufferSize">
            <summary>
            Default value for the <see cref="P:GSF.IO.FileProcessor.InternalBufferSize"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.FileProcessor.DefaultEnumerationStrategy">
            <summary>
            Default value for the <see cref="P:GSF.IO.FileProcessor.EnumerationStrategy"/> property.
            </summary>
        </member>
        <member name="E:GSF.IO.FileProcessor.Processing">
            <summary>
            Event triggered when a file is to be processed.
            </summary>
        </member>
        <member name="E:GSF.IO.FileProcessor.Error">
            <summary>
            Event triggered when an unexpected error occurs during
            normal operation of the <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessor.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.IO.FileProcessor"/> class.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.Filter">
            <summary>
            Gets or sets the filter used to determine whether a file should be processed.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.FolderExclusion">
            <summary>
            Gets or sets the pattern used to determine whether a folder should be excluded from enumeration.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.TrackChanges">
            <summary>
            Gets or sets a flag that determines whether files should be processed on change.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.InternalBufferSize">
            <summary>
            Gets or sets the internal buffer size of each of the
            <see cref="T:GSF.IO.SafeFileWatcher"/>s instantiated by this file processor.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.MaxThreadCount">
            <summary>
            Gets or sets the maximum number of threads
            used for file processing and enumeration.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.EnumerationStrategy">
            <summary>
            Gets or sets the strategy to use to
            enumerate files in the watch directories.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.OrderedEnumeration">
            <summary>
            Gets or sets the flag that determines whether the file enumeration process
            should sort files and directories before raising events for enumerated files.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.TrackedDirectories">
            <summary>
            Gets the list of directories currently being tracked by the <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.ActivelyEnumeratedPaths">
            <summary>
            Gets the list of paths that are being actively enumerated.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.IsEnumerating">
            <summary>
            Gets the flag indicating if the file processor is actively enumerating.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.ProcessedFileCount">
            <summary>
            Gets the number of files
            processed by the file processor.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.SkippedFileCount">
            <summary>
            Gets the number of files skipped by the file processor.
            </summary>
        </member>
        <member name="P:GSF.IO.FileProcessor.RequeuedFileCount">
            <summary>
            Gets the number of times files that are being requeued by the file processor.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessor.AddTrackedDirectory(System.String)">
            <summary>
            Adds a directory to the list of directories tracked by this <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
            <param name="path">The path to the directory to be tracked.</param>
        </member>
        <member name="M:GSF.IO.FileProcessor.RemoveTrackedDirectory(System.String)">
            <summary>
            Removes a directory from the list of directories tracked by this <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
            <param name="path">The path to the directory to stop tracking.</param>
        </member>
        <member name="M:GSF.IO.FileProcessor.EnumerateWatchDirectories">
            <summary>
            Forces enumeration of directories currently being watched.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessor.MatchesFilter(System.String)">
            <summary>
            Determines if the given file matches the filter string provided through the <see cref="P:GSF.IO.FileProcessor.Filter"/> property.
            </summary>
            <param name="filePath">The path to the file to be tested against the filter string.</param>
            <returns>True if the file matches the filter string; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.FileProcessor.MatchesFolderExclusion(System.String)">
            <summary>
            Determines if the given folder matches the exclusion string provided through the <see cref="P:GSF.IO.FileProcessor.FolderExclusion"/> property.
            </summary>
            <param name="folderPath">The path to the folder to be tested against the exclusion string.</param>
            <returns>True if the folder matches the exclusion string; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.FileProcessor.StopEnumeration">
            <summary>
            Stops all enumeration operations that are currently running.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessor.ClearTrackedDirectories">
            <summary>
            Empties the list of directories tracked by this <see cref="T:GSF.IO.FileProcessor"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.FileProcessor.ResetIndexAndStatistics">
            <summary>
            Resets the internal file index so all files can be reprocessed.
            </summary>
            <remarks>
            As an optimization, the internal file index allows the file processor to enumerate
            the folder without raising events for files that were already processed, enabling
            the file processor to process files that were missed by the file watcher. However,
            because of this optimization, it can instead be difficult to force the file processor
            to reprocess files it has already processed once before. This method clears the
            internal file index, allowing for reprocessing of files that have already been processed.
            </remarks>
        </member>
        <member name="M:GSF.IO.FileProcessor.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.FileProcessor"/> object.
            </summary>
        </member>
        <member name="T:GSF.IO.InterprocessCache">
            <summary>
            Represents a serialized data cache that can be saved or read from multiple applications using inter-process synchronization.
            </summary>
            <remarks>
            Note that all file data in this class gets serialized to and from memory, as such, the design intention for this class is for
            use with smaller data sets such as serialized lists or dictionaries that need inter-process synchronized loading and saving.
            </remarks>
        </member>
        <member name="F:GSF.IO.InterprocessCache.DefaultMaximumRetryAttempts">
            <summary>
            Default maximum retry attempts allowed for loading <see cref="T:GSF.IO.InterprocessCache"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.InterprocessCache.DefaultRetryDelayInterval">
            <summary>
            Default wait interval, in milliseconds, before retrying load of <see cref="T:GSF.IO.InterprocessCache"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.IO.InterprocessCache"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.#ctor(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.IO.InterprocessCache"/> with the specified number of <paramref name="maximumConcurrentLocks"/>.
            </summary>
            <param name="maximumConcurrentLocks">Maximum concurrent reader locks to allow.</param>
        </member>
        <member name="M:GSF.IO.InterprocessCache.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.IO.InterprocessCache"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.InterprocessCache.FileName">
            <summary>
            Path and file name for the cache needing inter-process synchronization.
            </summary>
        </member>
        <member name="P:GSF.IO.InterprocessCache.FileData">
            <summary>
            Gets or sets file data for the cache to be saved or that has been loaded.
            </summary>
            <remarks>
            Setting value to <c>null</c> will create a zero-length file.
            </remarks>
        </member>
        <member name="P:GSF.IO.InterprocessCache.AutoSave">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.IO.InterprocessCache"/> should automatically initiate a save when <see cref="P:GSF.IO.InterprocessCache.FileData"/> has been updated.
            </summary>
        </member>
        <member name="P:GSF.IO.InterprocessCache.ReloadOnChange">
            <summary>
            Gets or sets flag that enables system to monitor for changes in <see cref="P:GSF.IO.InterprocessCache.FileName"/> and automatically reload <see cref="P:GSF.IO.InterprocessCache.FileData"/>.
            </summary>
            <remarks>
            Use extreme caution when enabling this property - it will be critical to dispose of this class when this property is set to true
            since it will create a file watcher that attaches to an event referenced by this class using pinned memory, as a result, this class
            will not get garbage collected until this class is disposed thus detaching the associated event.
            </remarks>
        </member>
        <member name="P:GSF.IO.InterprocessCache.MaximumConcurrentLocks">
            <summary>
            Gets the maximum concurrent reader locks allowed.
            </summary>
        </member>
        <member name="P:GSF.IO.InterprocessCache.MaximumRetryAttempts">
            <summary>
            Maximum retry attempts allowed for loading or saving cache file data.
            </summary>
        </member>
        <member name="P:GSF.IO.InterprocessCache.RetryDelayInterval">
            <summary>
            Wait interval, in milliseconds, before retrying load or save of cache file data.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.InterprocessCache"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.InterprocessCache"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.InterprocessCache.Save">
            <summary>
            Initiates inter-process synchronized cache file save.
            </summary>
            <remarks>
            Subclasses should always call <see cref="M:GSF.IO.InterprocessCache.WaitForLoad"/> before calling this method.
            </remarks>
        </member>
        <member name="M:GSF.IO.InterprocessCache.Load">
            <summary>
            Initiates inter-process synchronized cache file load.
            </summary>
            <remarks>
            Subclasses should always call <see cref="M:GSF.IO.InterprocessCache.WaitForLoad"/> before calling this method.
            </remarks>
        </member>
        <member name="M:GSF.IO.InterprocessCache.WaitForLoad">
            <summary>
            Blocks current thread and waits for any pending load to complete; wait time is <c><see cref="P:GSF.IO.InterprocessCache.RetryDelayInterval"/> * <see cref="P:GSF.IO.InterprocessCache.MaximumRetryAttempts"/></c>.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.WaitForLoad(System.Int32)">
            <summary>
            Blocks current thread and waits for specified <paramref name="millisecondsTimeout"/> for any pending load to complete.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
        </member>
        <member name="M:GSF.IO.InterprocessCache.WaitForSave">
            <summary>
            Blocks current thread and waits for any pending save to complete; wait time is <c><see cref="P:GSF.IO.InterprocessCache.RetryDelayInterval"/> * <see cref="P:GSF.IO.InterprocessCache.MaximumRetryAttempts"/></c>.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.WaitForSave(System.Int32)">
            <summary>
            Blocks current thread and waits for specified <paramref name="millisecondsTimeout"/> for any pending save to complete.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
        </member>
        <member name="M:GSF.IO.InterprocessCache.SaveFileData(System.IO.FileStream,System.Byte[])">
            <summary>
            Handles serialization of file to disk; virtual method allows customization (e.g., pre-save encryption and/or data merge).
            </summary>
            <param name="fileStream"><see cref="T:System.IO.FileStream"/> used to serialize data.</param>
            <param name="fileData">File data to be serialized.</param>
            <remarks>
            Consumers overriding this method should not directly call <see cref="P:GSF.IO.InterprocessCache.FileData"/> property to avoid potential dead-locks.
            </remarks>
        </member>
        <member name="M:GSF.IO.InterprocessCache.LoadFileData(System.IO.FileStream)">
            <summary>
            Handles deserialization of file from disk; virtual method allows customization (e.g., pre-load decryption and/or data merge).
            </summary>
            <param name="fileStream"><see cref="T:System.IO.FileStream"/> used to deserialize data.</param>
            <returns>Deserialized file data.</returns>
            <remarks>
            Consumers overriding this method should not directly call <see cref="P:GSF.IO.InterprocessCache.FileData"/> property to avoid potential dead-locks.
            </remarks>
        </member>
        <member name="M:GSF.IO.InterprocessCache.SynchronizedWrite">
            <summary>
            Synchronously writes file data when no reads are active.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.SynchronizedRead">
            <summary>
            Synchronously reads file data when no writes are active.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.RetrySynchronizedEvent(System.Exception,System.Int32)">
            <summary>
            Initiates a retry for specified event type.
            </summary>
            <param name="ex">Exception causing retry.</param>
            <param name="eventType">Event type to retry.</param>
        </member>
        <member name="M:GSF.IO.InterprocessCache.m_retryTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs)">
            <summary>
            Retries specified serialize or deserialize event in case of file I/O failures.
            </summary>
        </member>
        <member name="M:GSF.IO.InterprocessCache.m_fileWatcher_Changed(System.Object,System.IO.FileSystemEventArgs)">
            <summary>
            Reload file upon external modification.
            </summary>
            <param name="sender">The object that triggered the event.</param>
            <param name="e">An object which provides data for directory events.</param>
        </member>
        <member name="T:GSF.IO.IsamDataFileBase`1">
            <summary>
            An abstract class that defines the read/write capabilities for ISAM (Indexed Sequential Access Method) file.
            </summary>
            <typeparam name="T">
            <see cref="T:System.Type"/> of the records the file contains. This <see cref="T:System.Type"/> must implement the <see cref="T:GSF.Parsing.ISupportBinaryImage"/> interface.
            </typeparam>
            <remarks>
            <para>
            This ISAM implementation keeps all the records in memory, so it may not be suitable for very large files. Since data is stored
            in memory using a list, the maximum number of possible supported records will be 2,147,483,647 (i.e., Int32.MaxValue).
            </para>
            <para>
            See <a href="http://en.wikipedia.org/wiki/ISAM" target="_blank">http://en.wikipedia.org/wiki/ISAM</a> for more information on ISAM files.
            </para>
            </remarks>
            <example>
            This example shows a sample implementation of <see cref="T:GSF.IO.IsamDataFileBase`1"/>:
            <code>
            using System;
            using System.Text;
            using GSF;
            using GSF.IO;
            using GSF.Parsing;
            
            class Program
            {
                static void Main(string[] args)
                {
                    // Create a few test records.
                    TestIsamFileRecord r1 = new TestIsamFileRecord(1);
                    r1.Name = "TestRecord1";
                    r1.Value = double.MinValue;
                    r1.Description = "Test record with minimum double value";
                    TestIsamFileRecord r2 = new TestIsamFileRecord(2);
                    r2.Name = "TestRecord2";
                    r2.Value = double.MaxValue;
                    r2.Description = "Test record with maximum double value";
            
                    // Open ISAM file.
                    TestIsamFile testFile = new TestIsamFile();
                    testFile.FileName = "TestIsamFile.dat";
                    testFile.Open();
            
                    // Write test records.
                    testFile.Write(r1.Index, r1);
                    testFile.Write(r2.Index, r2);
            
                    // Read test records.
                    Console.WriteLine(testFile.Read(1));
                    Console.WriteLine(testFile.Read(2));
            
                    // Close ISAM file.
                    testFile.Close();
            
                    Console.ReadLine();
                }
            }
            
            class TestIsamFile : IsamDataFileBase&lt;TestIsamFileRecord&gt;
            {
                /// <summary>
                /// Size of a single file record.
                /// </summary>
                protected override int GetRecordSize()
                {
                    return TestIsamFileRecord.RecordLength;
                }
            
                /// <summary>
                /// Creates a new empty file record.
                /// </summary>
                protected override TestIsamFileRecord CreateNewRecord(int id)
                {
                    return new TestIsamFileRecord(id);
                }
            }
            
            class TestIsamFileRecord : ISupportBinaryImage
            {
                private int m_index;
                private string m_name;                  // 20  * 1 =  20
                private double m_value;                 // 1   * 8 =   8
                private string m_description;           // 100 * 1 = 100
                
                public const int RecordLength = 128;    // Total   = 128
            
                public TestIsamFileRecord(int recordIndex)
                {
                    m_index = recordIndex;
                    
                    Name = string.Empty;
                    Value = double.NaN;
                    Description = string.Empty;
                }
            
                /// <summary>
                /// 1-based index of the record.
                /// </summary>
                public int Index
                {
                    get { return m_index; }
                }
            
                /// <summary>
                /// Name of the record.
                /// </summary>
                public string Name
                {
                    get { return m_name; }
                    set { m_name = value.TruncateRight(20).PadRight(20); }
                }
            
                /// <summary>
                /// Value of the record.
                /// </summary>
                public double Value
                {
                    get { return m_value; }
                    set { m_value = value; }
                }
            
                /// <summary>
                /// Description of the record.
                /// </summary>
                public string Description
                {
                    get { return m_description; }
                    set { m_description = value.TruncateRight(100).PadRight(100); }
                }
            
                /// <summary>
                /// Serialized record length.
                /// </summary>
                public int BinaryLength
                {
                    get { return RecordLength; }
                }
            
                /// <summary>
                /// Serialized record data.
                /// </summary>
                public byte[] BinaryImage
                {
                    get
                    {
                        // Serialize TestIsamFileRecord into byte array.
                        byte[] image = new byte[RecordLength];
                        Buffer.BlockCopy(Encoding.ASCII.GetBytes(Name), 0, image, 0, 20);
                        Buffer.BlockCopy(BitConverter.GetBytes(Value), 0, image, 20, 8);
                        Buffer.BlockCopy(Encoding.ASCII.GetBytes(Description), 0, image, 28, 100);
            
                        return image;
                    }
                }
            
                /// <summary>
                /// Deserializes the record.
                /// </summary>
                public int Initialize(byte[] binaryImage, int startIndex, int length)
                {
                    if (length &gt;= RecordLength)
                    {
                        // Deserialize byte array into TestIsamFileRecord.
                        Name = Encoding.ASCII.GetString(binaryImage, startIndex, 20);
                        Value = BitConverter.ToDouble(binaryImage, startIndex + 20);
                        Description = Encoding.ASCII.GetString(binaryImage, startIndex + 28, 100);
                    }
                    else
                        throw new InvalidOperationException("Invalid record size, not enough data to deserialize record"); 
            
                    return RecordLength;
                }
            
                /// <summary>
                /// String representation of the record.
                /// </summary>
                public override string ToString()
                {
                    return string.Format("Name: {0}, Value: {1}, Description: {2}", Name, Value, Description);
                }
            }
            </code>
            </example>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultFileName">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.FileName"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultFileAccessMode">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.FileAccessMode"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultAutoSaveInterval">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.AutoSaveInterval"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultLoadOnOpen">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.LoadOnOpen"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultSaveOnClose">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.SaveOnClose"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultReloadOnModify">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.ReloadOnModify"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.IsamDataFileBase`1.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.IsamDataFileBase`1.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.DataLoading">
            <summary>
            Occurs when data is being read from disk into memory.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.DataLoaded">
            <summary>
            Occurs when data has been read from disk into memory.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.DataSaving">
            <summary>
            Occurs when data is being saved from memory onto disk.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.DataSaved">
            <summary>
            Occurs when data has been saved from memory onto disk.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.FileModified">
            <summary>
            Occurs when file data on the disk is modified.
            </summary>
        </member>
        <member name="E:GSF.IO.IsamDataFileBase`1.Disposed">
            <summary>
            Occurs when the class has been disposed.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.IsamDataFileBase`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Finalize">
            <summary>
            Releases the unmanaged resources before the file is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.FileName">
            <summary>
            Gets or sets the name of the file.
            </summary>
            <remarks>
            Changing the <see cref="P:GSF.IO.IsamDataFileBase`1.FileName"/> when the file is open will cause the file to be re-opened.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.FileAccessMode">
            <summary>
            Gets or sets the <see cref="T:System.IO.FileAccess"/> value to use when opening the file.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.AutoSaveInterval">
            <summary>
            Gets or sets the interval in milliseconds at which the records loaded in memory are to be persisted to disk.
            </summary>
            <remarks>
            <see cref="P:GSF.IO.IsamDataFileBase`1.AutoSaveInterval"/> will be effective only if records have been loaded in memory either manually 
            by calling the <see cref="M:GSF.IO.IsamDataFileBase`1.Load"/> method or automatically by settings <see cref="P:GSF.IO.IsamDataFileBase`1.LoadOnOpen"/> to true.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.LoadOnOpen">
            <summary>
            Gets or sets a boolean value that indicates whether records are to be loaded automatically in memory when 
            the file is opened.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.SaveOnClose">
            <summary>
            Gets or sets a boolean value that indicates whether records loaded in memory are to be persisted to disk 
            when the file is closed.
            </summary>
            <remarks>
            <see cref="P:GSF.IO.IsamDataFileBase`1.SaveOnClose"/> will be effective only if records have been loaded in memory either manually 
            by calling the <see cref="M:GSF.IO.IsamDataFileBase`1.Load"/> method or automatically by settings <see cref="P:GSF.IO.IsamDataFileBase`1.LoadOnOpen"/> to true.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.ReloadOnModify">
            <summary>
            Gets or sets a boolean value that indicates whether records loaded in memory are to be re-loaded when the 
            file is modified on disk.
            </summary>
            <remarks>
            <see cref="P:GSF.IO.IsamDataFileBase`1.ReloadOnModify"/> will be effective only if records have been loaded in memory either manually 
            by calling the <see cref="M:GSF.IO.IsamDataFileBase`1.Load"/> method or automatically by settings <see cref="P:GSF.IO.IsamDataFileBase`1.LoadOnOpen"/> to true.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the file settings are to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.SettingsCategory">
            <summary>
            Gets or sets the category under which the file settings are to be saved to the config file if the 
            <see cref="P:GSF.IO.IsamDataFileBase`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the file is currently enabled.
            </summary>
            <remarks>
            Setting <see cref="P:GSF.IO.IsamDataFileBase`1.Enabled"/> to true will open the file if it is closed, setting
            to false will close the file if it is open.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.IsOpen">
            <summary>
            Gets a boolean value that indicates whether the file is open.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.IsCorrupt">
            <summary>
            Gets a boolean value that indicates whether the file data on disk is corrupt.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.MemoryUsage">
            <summary>
            Gets the approximate memory consumption (in KB) of the file.
            </summary>
            <remarks>
            <see cref="P:GSF.IO.IsamDataFileBase`1.MemoryUsage"/> will be zero (0) unless records are loaded in memory.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.RecordsOnDisk">
            <summary>
            Gets the number of file records on the disk.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.RecordsInMemory">
            <summary>
            Gets the number of file records loaded in memory.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.Name">
            <summary>
            Gets the unique identifier of the file.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.Status">
            <summary>
            Gets the descriptive status of the file.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.FileData">
            <summary>
            Gets the underlying <see cref="T:System.IO.FileStream"/> of the file.
            </summary>
            <remarks>
            Thread-safety Warning: A lock must be obtained on <see cref="P:GSF.IO.IsamDataFileBase`1.FileData"/> before accessing it.
            </remarks>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.FileDataLock">
            <summary>
            Gets the locking object for the <see cref="P:GSF.IO.IsamDataFileBase`1.FileData"/> stream.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.LoadWaitHandle">
            <summary>
            Gets wait handle for loading data.
            </summary>
        </member>
        <member name="P:GSF.IO.IsamDataFileBase`1.SaveWaitHandle">
            <summary>
            Gets wait handle for saving data.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.GetRecordSize">
            <summary>
            When overridden in a derived class, gets the size of a record (in bytes).
            </summary>
            <returns>Size of a record in bytes.</returns>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.CreateNewRecord(System.Int32)">
            <summary>
            When overridden in a derived class, returns a new empty record.
            </summary>
            <param name="recordIndex">1-based index of the new record.</param>
            <returns>New empty record.</returns>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Dispose">
            <summary>
            Releases all the resources used by the file.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Initialize">
            <summary>
            Initializes the file.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.IsamDataFileBase`1.Initialize"/> is to be called by user-code directly only if the file is not consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.SaveSettings">
            <summary>
            Saves settings of the file to the config file if the <see cref="P:GSF.IO.IsamDataFileBase`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.IsamDataFileBase`1.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.LoadSettings">
            <summary>
            Loads saved settings of the file from the config file if the <see cref="P:GSF.IO.IsamDataFileBase`1.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.IsamDataFileBase`1.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Open">
            <summary>
            Opens the file.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Close">
            <summary>
            Closes the file.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Load">
            <summary>
            Loads records from disk into memory.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Save">
            <summary>
            Saves records loaded in memory to disk.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.IsamDataFileBase`1.Save"/> is equivalent to <see cref="M:System.IO.FileStream.Flush"/> when records are not loaded in memory.
            </remarks>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Write(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Writes specified records to disk if records were not loaded in memory otherwise updates the records in memory.
            </summary>
            <param name="records">Records to be written.</param>
            <remarks>
            This operation will causes existing records to be deleted and replaced with the ones specified.
            </remarks>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Write(System.Int32,`0)">
            <summary>
            Writes specified record to disk if records were not loaded in memory otherwise updates the record in memory.
            </summary>
            <param name="recordIndex">1-based index of the record to be written.</param>
            <param name="record">Record to be written.</param>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Read">
            <summary>
            Reads file records from disk if records were not loaded in memory otherwise returns the records in memory.
            </summary>
            <returns>Records of the file.</returns>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Read(System.Int32)">
            <summary>
            Reads specified file record from disk if records were not loaded in memory otherwise returns the record in memory.
            </summary>
            <param name="recordIndex">1-based index of the record to be read.</param>
            <returns>Record with the specified ID if it exists; otherwise null.</returns>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.OnFileModified">
            <summary>
            Raises the <see cref="E:GSF.IO.IsamDataFileBase`1.FileModified"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.OnDataLoading">
            <summary>
            Raises the <see cref="E:GSF.IO.IsamDataFileBase`1.DataLoading"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.OnDataLoaded">
            <summary>
            Raises the <see cref="E:GSF.IO.IsamDataFileBase`1.DataLoaded"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.OnDataSaving">
            <summary>
            Raises the <see cref="E:GSF.IO.IsamDataFileBase`1.DataSaving"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.OnDataSaved">
            <summary>
            Raises the <see cref="E:GSF.IO.IsamDataFileBase`1.DataSaved"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the file and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.ReOpen">
            <summary>
            Re-opens the file if currently open.
            </summary>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.WriteToDisk(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Writes records to disk.
            </summary>
            <param name="records">Records to be written to disk.</param>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.WriteToDisk(System.Int32,`0)">
            <summary>
            Writes single record to disk.
            </summary>
            <param name="recordIndex">1-based index of the record to be written to disk.</param>
            <param name="record">Record to be written to disk.</param>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.ReadFromDisk">
            <summary>
            Reads all records from disk.
            </summary>
            <returns>Records from disk.</returns>
        </member>
        <member name="M:GSF.IO.IsamDataFileBase`1.ReadFromDisk(System.Int32)">
            <summary>
            Read single record from disk.
            </summary>
            <param name="recordIndex">1-based index of the record to be read.</param>
            <returns>Record from the disk.</returns>
        </member>
        <member name="T:GSF.IO.LogFileFullOperation">
            <summary>
            Specifies the operation to be performed on the <see cref="T:GSF.IO.LogFile"/> when it is full.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFileFullOperation.Truncate">
            <summary>
            Truncates the existing entries in the <see cref="T:GSF.IO.LogFile"/> to make space for new entries.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFileFullOperation.Rollover">
            <summary>
            Rolls over to a new <see cref="T:GSF.IO.LogFile"/>, and keeps the full <see cref="T:GSF.IO.LogFile"/> for reference.
            </summary>
        </member>
        <member name="T:GSF.IO.LogFile">
             <summary>
             Represents a file that can be used for logging messages in real-time.
             </summary>
             <example>
             This example shows how to use <see cref="T:GSF.IO.LogFile"/> for logging messages:
             <code>
             using System;
             using GSF.IO;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     LogFile log = new LogFile();
                     log.Initialize();                       // Initialize the log file.
                     log.Open();                             // Open the log file.
                     log.WriteTimestampedLine("Test entry"); // Write message to the log file.
                     log.Flush();                            // Flush message to the log file.
                     log.Close();                            // Close the log file.
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="F:GSF.IO.LogFile.MinFileSize">
            <summary>
            Specifies the minimum size for a <see cref="T:GSF.IO.LogFile"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.MaxFileSize">
            <summary>
            Specifies the maximum size for a <see cref="T:GSF.IO.LogFile"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultFileName">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.FileName"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultFileSize">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.FileSize"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultFileFullOperation">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.FileFullOperation"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultLogFilesDuration">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.LogFilesDuration"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultFlushTimerInterval">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.FlushTimerInterval"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.LogFile.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.LogFile.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="E:GSF.IO.LogFile.FileFull">
            <summary>
            Occurs when the <see cref="T:GSF.IO.LogFile"/> is full.
            </summary>
        </member>
        <member name="E:GSF.IO.LogFile.LogException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered while writing entries to the <see cref="T:GSF.IO.LogFile"/>.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered during writing of log entries.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.LogFile"/> class.
            </summary>
        </member>
        <member name="M:GSF.IO.LogFile.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.LogFile"/> class.
            </summary>
            <param name="container"><see cref="T:System.ComponentModel.IContainer"/> object that contains the <see cref="T:GSF.IO.LogFile"/>.</param>
        </member>
        <member name="P:GSF.IO.LogFile.FileName">
            <summary>
            Gets or sets the name of the <see cref="T:GSF.IO.LogFile"/>, including the file extension.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.IO.LogFile.FileSize">
             <summary>
             Gets or sets the size of the <see cref="T:GSF.IO.LogFile"/> in MB.
             </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value being assigned outside the <see cref="F:GSF.IO.LogFile.MinFileSize"/> and <see cref="F:GSF.IO.LogFile.MaxFileSize"/> range.</exception>
        </member>
        <member name="P:GSF.IO.LogFile.FileFullOperation">
            <summary>
            Gets or sets the type of operation to be performed when the <see cref="T:GSF.IO.LogFile"/> is full.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.LogFilesDuration">
            <summary>
            Gets or sets the time duration, in hours, to save the <see cref="T:GSF.IO.LogFile"/> .
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.FlushTimerInterval">
            <summary>
            Gets or sets the number of seconds of inactivity before the <see cref="T:GSF.IO.LogFile"/> automatically flushes the file stream.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:GSF.IO.LogFile"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:GSF.IO.LogFile"/> object are to be saved
            to the config file if the <see cref="P:GSF.IO.LogFile.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.IO.LogFile.TextEncoding">
            <summary>
            Gets or sets the <see cref="T:System.Text.Encoding"/> to be used to encode the messages being logged.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.IO.LogFile"/> object is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.IsOpen">
            <summary>
            Gets a boolean value that indicates whether the <see cref="T:GSF.IO.LogFile"/> is open.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.IO.LogFile"/> object.
            </summary>
        </member>
        <member name="P:GSF.IO.LogFile.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.IO.LogFile"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.LogFile.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.IO.LogFile"/> object.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.LogFile.Initialize"/> is to be called by user-code directly only if the <see cref="T:GSF.IO.LogFile"/> 
            object is not consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.BeginInit">
            <summary>
            Performs necessary operations before the <see cref="T:GSF.IO.LogFile"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.LogFile.BeginInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.IO.LogFile"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.EndInit">
            <summary>
            Performs necessary operations after the <see cref="T:GSF.IO.LogFile"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.LogFile.EndInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.IO.LogFile"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.SaveSettings">
            <summary>
            Saves settings for the <see cref="T:GSF.IO.LogFile"/> object to the config file if the <see cref="P:GSF.IO.LogFile.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.LogFile.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.LogFile.LoadSettings">
            <summary>
            Loads saved settings for the <see cref="T:GSF.IO.LogFile"/> object from the config file if the <see cref="P:GSF.IO.LogFile.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.LogFile.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.LogFile.Open">
            <summary>
            Opens the <see cref="T:GSF.IO.LogFile"/> for use if it is closed.
            </summary>
        </member>
        <member name="M:GSF.IO.LogFile.Close">
            <summary>
            Closes the <see cref="T:GSF.IO.LogFile"/> if it is open.
            </summary>
            <remarks>
            Forces queued log entries to be flushed to the <see cref="T:GSF.IO.LogFile"/>.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.Close(System.Boolean)">
            <summary>
            Closes the <see cref="T:GSF.IO.LogFile"/> if it is open.
            </summary>
            <param name="flushQueuedEntries">true, if queued log entries are to be written to the <see cref="T:GSF.IO.LogFile"/>; otherwise, false.</param>
        </member>
        <member name="M:GSF.IO.LogFile.Flush">
            <summary>
            Forces queued log entries to be written to the <see cref="T:GSF.IO.LogFile"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.LogFile.Write(System.String)">
            <summary>
            Queues the text for writing to the <see cref="T:GSF.IO.LogFile"/>.
            </summary>
            <param name="text">The text to be written to the <see cref="T:GSF.IO.LogFile"/>.</param>
        </member>
        <member name="M:GSF.IO.LogFile.WriteLine(System.String)">
            <summary>
            Queues the text for writing to the <see cref="T:GSF.IO.LogFile"/>.
            </summary>
            <param name="text">The text to be written to the log file.</param>
            <remarks>
            In addition to the specified text, a "newline" character will be appended to the text.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.WriteTimestampedLine(System.String)">
            <summary>
            Queues the text for writing to the log file.
            </summary>
            <param name="text">The text to be written to the log file.</param>
            <remarks>
            In addition to the specified text, a timestamp will be prepended, and a "newline" character will appended to the text.
            </remarks>
        </member>
        <member name="M:GSF.IO.LogFile.ReadText">
            <summary>
            Reads and returns the text from the <see cref="T:GSF.IO.LogFile"/>.
            </summary>
            <returns>The text read from the <see cref="T:GSF.IO.LogFile"/>.</returns>
        </member>
        <member name="M:GSF.IO.LogFile.ReadLines(System.Boolean)">
            <summary>
            Reads text from the <see cref="T:GSF.IO.LogFile"/> and returns a list of lines created by separating the text by the "newline"
            characters if and where present.
            </summary>
            <param name="removeEmptyLines"><c>true</c>, if empty lines are to be removed from the list; otherwise, <c>false</c>>.</param>
            <returns>A list of lines from the text read from the <see cref="T:GSF.IO.LogFile"/>.</returns>
        </member>
        <member name="M:GSF.IO.LogFile.OnFileFull">
            <summary>
            Raises the <see cref="E:GSF.IO.LogFile.FileFull"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.LogFile.OnLogException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.IO.LogFile.LogException"/> event.
            </summary>
            <param name="ex"><see cref="T:System.Exception"/> to send to <see cref="E:GSF.IO.LogFile.LogException"/> event.</param>
        </member>
        <member name="M:GSF.IO.LogFile.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.LogFile"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.LogFile.ReOpen">
            <summary>
            Re-opens the file if currently open.
            </summary>
        </member>
        <member name="T:GSF.IO.MultipleDestinationExporter">
             <summary>
             Handles the exporting of a file to multiple destinations that are defined in the config file.
             </summary>
             <remarks>
             This class is useful for updating the same file on multiple servers (e.g., load balanced web server).
             </remarks>
             <example>
             This example shows the use <see cref="T:GSF.IO.MultipleDestinationExporter"/> for exporting data to multiple locations:
             <code>
             using System;
             using GSF.IO;
            
             class Program
             {
                 static MultipleDestinationExporter s_exporter;
            
                 static void Main(string[] args)
                 {
                     s_exporter = new MultipleDestinationExporter();
                     s_exporter.Initialized += s_exporter_Initialized;
                     ExportDestination[] defaultDestinations = new ExportDestination[] 
                     {
                         new ExportDestination(@"\\server1\share\exportFile.txt", false, "domain", "user1", "password1"), 
                         new ExportDestination(@"\\server2\share\exportFile.txt", false, "domain", "user2", "password2")
                     };
                     // Initialize with the destinations where data is to be exported.
                     s_exporter.Initialize(defaultDestinations);
            
                     Console.ReadLine();
                 }
            
                 static void s_exporter_Initialized(object sender, EventArgs e)
                 {
                     // Export data to all defined locations after initialization.
                     s_exporter.ExportData("TEST DATA");
                 }
             }
             </code>
             This example shows the config file entry that can be used to specify the <see cref="T:GSF.IO.ExportDestination"/> 
             used by the <see cref="T:GSF.IO.MultipleDestinationExporter"/> when exporting data:
             <code>
             <![CDATA[
             <exportDestinations>
               <add name="ExportTimeout" value="-1" description="Total allowed time for all exports to execute in milliseconds."
                 encrypted="false" />
               <add name="ExportCount" value="2" description="Total number of export files to produce."
                 encrypted="false" />
               <add name="ExportDestination1" value="\\server1\share\" description="Root path for export destination. Use UNC path (\\server\share) with no trailing slash for network shares."
                 encrypted="false" />
               <add name="ExportDestination1.ConnectToShare" value="True" description="Set to True to attempt authentication to network share."
                 encrypted="false" />
               <add name="ExportDestination1.Domain" value="domain" description="Domain used for authentication to network share (computer name for local accounts)."
                 encrypted="false" />
               <add name="ExportDestination1.UserName" value="user1" description="User name used for authentication to network share."
                 encrypted="false" />
               <add name="ExportDestination1.Password" value="l2qlAwAPihJjoThH+G53BUxzYsIkTE2yNBHLtd1WA3hysDhwDB82ouJb9n35QtG8"
                 description="Encrypted password used for authentication to network share."
                 encrypted="true" />
               <add name="ExportDestination1.FileName" value="exportFile.txt" description="Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt)."
                 encrypted="false" />
               <add name="ExportDestination2" value="\\server2\share\" description="Root path for export destination. Use UNC path (\\server\share) with no trailing slash for network shares."
                 encrypted="false" />
               <add name="ExportDestination2.ConnectToShare" value="True" description="Set to True to attempt authentication to network share."
                 encrypted="false" />
               <add name="ExportDestination2.Domain" value="domain" description="Domain used for authentication to network share (computer name for local accounts)."
                 encrypted="false" />
               <add name="ExportDestination2.UserName" value="user2" description="User name used for authentication to network share."
                 encrypted="false" />
               <add name="ExportDestination2.Password" value="l2qlAwAPihJjoThH+G53BYT6BXHQr13D6Asdibl0rDmlrgRXvJmCwcP8uvkFRHr9"
                 description="Encrypted password used for authentication to network share."
                 encrypted="true" />
               <add name="ExportDestination2.FileName" value="exportFile.txt" description="Path and file name of data export (do not include drive letter or UNC share). Prefix with slash when using UNC paths (\path\filename.txt)."
                 encrypted="false" />
             </exportDestinations>
             ]]>
             </code>
             </example>
             <seealso cref="T:GSF.IO.ExportDestination"/>
        </member>
        <member name="T:GSF.IO.MultipleDestinationExporter.ExportState">
            <summary>
            Defines state information for an export.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportState.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportState.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportState.SourceFileName">
            <summary>
            Gets or sets the source file name for the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportState.DestinationFileName">
            <summary>
            Gets or sets the destination file name for the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportState.WaitHandle">
            <summary>
            Gets or sets the event wait handle for the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportState.Timeout">
            <summary>
            Gets or sets a flag that is used to determine if export process has timed out.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportState.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportState.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.MultipleDestinationExporter.ExportState"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="F:GSF.IO.MultipleDestinationExporter.DefaultExportTimeout">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.MultipleDestinationExporter.ExportTimeout"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.MultipleDestinationExporter.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.MultipleDestinationExporter.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.MultipleDestinationExporter.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.MultipleDestinationExporter.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.MultipleDestinationExporter.DefaultMaximumRetryAttempts">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.MultipleDestinationExporter.MaximumRetryAttempts"/> property.
            </summary>
        </member>
        <member name="F:GSF.IO.MultipleDestinationExporter.DefaultRetryDelayInterval">
            <summary>
            Specifies the default value for the <see cref="P:GSF.IO.MultipleDestinationExporter.RetryDelayInterval"/> property.
            </summary>
        </member>
        <member name="E:GSF.IO.MultipleDestinationExporter.Initialized">
            <summary>
            Occurs when the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object has been initialized.
            </summary>
        </member>
        <member name="E:GSF.IO.MultipleDestinationExporter.StatusMessage">
            <summary>
            Occurs when status information for the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object is being reported.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the status message being reported by the <see cref="T:GSF.IO.MultipleDestinationExporter"/>.
            </remarks>
        </member>
        <member name="E:GSF.IO.MultipleDestinationExporter.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.MultipleDestinationExporter"/> class.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.MultipleDestinationExporter"/> class.
            </summary>
            <param name="container"><see cref="T:System.ComponentModel.IContainer"/> object that contains the <see cref="T:GSF.IO.MultipleDestinationExporter"/>.</param>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.#ctor(System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.MultipleDestinationExporter"/> class.
            </summary>
            <param name="settingsCategory">The config file settings category under which the export destinations are defined.</param>
            <param name="exportTimeout">The total allowed time in milliseconds for each export to execute.</param>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportTimeout">
            <summary>
            Gets or sets the total allowed time in milliseconds for each export to execute.
            </summary>
            <remarks>
            Set to Timeout.Infinite (-1) for no timeout.
            </remarks>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.MaximumRetryAttempts">
            <summary>
            Gets or sets the maximum number of retries that will be attempted during an export if the export fails.
            </summary>
            <remarks>
            Total file export attempts = 1 + <see cref="P:GSF.IO.MultipleDestinationExporter.MaximumRetryAttempts"/>. Set to zero to only attempt export once.
            </remarks>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.RetryDelayInterval">
            <summary>
            Gets or sets the interval to wait, in milliseconds, before retrying an export if the export fails.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:GSF.IO.MultipleDestinationExporter"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:GSF.IO.MultipleDestinationExporter"/> object are to be saved
            to the config file if the <see cref="P:GSF.IO.MultipleDestinationExporter.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.TextEncoding">
            <summary>
            Gets or sets the <see cref="T:System.Text.Encoding"/> to be used to encode text data being exported.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.TotalExports">
            <summary>
            Gets the total number exports performed successfully.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.ExportDestinations">
            <summary>
            Gets a list of currently defined <see cref="T:GSF.IO.ExportDestination"/>.
            </summary>
            <remarks>
            Use the <see cref="M:GSF.IO.MultipleDestinationExporter.Initialize(System.Collections.Generic.IEnumerable{GSF.IO.ExportDestination})"/> method to change the export destination collection.
            </remarks>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object.
            </summary>
        </member>
        <member name="P:GSF.IO.MultipleDestinationExporter.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.BeginInit">
            <summary>
            Performs necessary operations before the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.MultipleDestinationExporter.BeginInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.EndInit">
            <summary>
            Performs necessary operations after the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.IO.MultipleDestinationExporter.EndInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.SaveSettings">
            <summary>
            Saves settings for the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object to the config file if the <see cref="P:GSF.IO.MultipleDestinationExporter.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.MultipleDestinationExporter.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.LoadSettings">
            <summary>
            Loads saved settings for the <see cref="T:GSF.IO.MultipleDestinationExporter"/> object from the config file if the <see cref="P:GSF.IO.MultipleDestinationExporter.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.IO.MultipleDestinationExporter.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.Initialize">
            <summary>
            Initializes (or reinitializes) <see cref="T:GSF.IO.MultipleDestinationExporter"/> from configuration settings.
            </summary>
            <remarks>
            If not being used as a component (i.e., user creates their own instance of this class), this method
            must be called in order to initialize exports.  Event if used as a component this method can be
            called at anytime to reinitialize the exports with new configuration information.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.Initialize(System.Collections.Generic.IEnumerable{GSF.IO.ExportDestination})">
            <summary>
            Initializes (or reinitializes) <see cref="T:GSF.IO.MultipleDestinationExporter"/> from configuration settings.
            </summary>
            <param name="defaultDestinations">Provides a default set of export destinations if none exist in configuration settings.</param>
            <remarks>
            If not being used as a component (i.e., user creates their own instance of this class), this method
            must be called in order to initialize exports.  Even if used as a component this method can be
            called at anytime to reinitialize the exports with new configuration information.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.OnInitialized">
            <summary>
            Raises the <see cref="E:GSF.IO.MultipleDestinationExporter.Initialized"/> event.
            </summary>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.IO.MultipleDestinationExporter.StatusMessage"/> event.
            </summary>
            <param name="status">Status message to report.</param>
            <param name="args"><see cref="M:System.String.Format(System.String,System.Object[])"/> parameters used for status message.</param>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:GSF.IO.MultipleDestinationExporter.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportData(System.String)">
            <summary>
            Start multiple file export.
            </summary>
            <param name="fileData">Text based data to export to each destination.</param>
            <remarks>
            This is assumed to be the full content of the file to export. This class does not queue data since
            the export is not intended to append to an existing file but rather replace an existing one.
            </remarks>
        </member>
        <member name="M:GSF.IO.MultipleDestinationExporter.ExportData(System.Byte[])">
            <summary>
            Start multiple file export.
            </summary>
            <param name="fileData">Binary data to export to each destination.</param>
            <remarks>
            This is assumed to be the full content of the file to export. This class does not queue data since
            the export is not intended to append to an existing file but rather replace an existing one.
            </remarks>
        </member>
        <member name="T:GSF.IO.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to simplify and standardize operations related to files and streams.
            </summary>
        </member>
        <member name="T:GSF.IO.Outage">
            <summary>
            Represents an outage as a start time and an end time.
            </summary>
        </member>
        <member name="M:GSF.IO.Outage.#ctor(GSF.Range{System.DateTimeOffset})">
            <summary>
            Creates a new <see cref="T:GSF.IO.Outage"/> with the same start and end time as the given range.
            </summary>
        </member>
        <member name="M:GSF.IO.Outage.#ctor(System.DateTimeOffset,System.DateTimeOffset)">
            <summary>
            Creates a new <see cref="T:GSF.IO.Outage"/> with the specified start and end time.
            </summary>
            <param name="startTime">Start time for outage.</param>
            <param name="endTime">End time for outage.</param>
        </member>
        <member name="M:GSF.IO.Outage.Equals(System.Object)">
            <summary>
            Determines if this <see cref="T:GSF.IO.Outage"/> equals another object.
            </summary>
            <param name="obj">The object to be compared.</param>
            <returns>True if the objects are equal; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.Outage.Equals(GSF.IO.Outage)">
            <summary>
            Determines if this <see cref="T:GSF.IO.Outage"/> equals another outage.
            </summary>
            <param name="other">The outage to be compared.</param>
            <returns>True if the outages are equal; false otherwise.</returns>
        </member>
        <member name="M:GSF.IO.Outage.GetHashCode">
            <summary>
            Gets the hash code for this <see cref="T:GSF.IO.Outage"/>.
            </summary>
            <returns>The hash code for the outage.</returns>
        </member>
        <member name="M:GSF.IO.Outage.MergeOverlapping(System.Collections.Generic.IEnumerable{GSF.IO.Outage})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of outages.
            </summary>
            <param name="outages">The collection of outages.</param>
            <returns>The collection of merged outages.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="T:GSF.IO.OutageLog">
            <summary>
            Represents a persisted log of outages as a list of start and stop times.
            </summary>
            <remarks>
            <para>
            This class serializes a list of outages (e.g., a connection outage or data loss) where each outage
            consists of a start and end time. The outages are persisted in a log file so that the log can be
            operated on even through host application restarts until the outages are processed.
            </para>
            <para>
            All members in the <see cref="T:GSF.IO.OutageLog"/> are guaranteed to be thread safe. File locks are used to
            provide synchronization so that the file can stay up-to-date with changes made in the application.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.IO.OutageLog.DateTimeFormat">
            <summary>
            Date-time format used by <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
        </member>
        <member name="E:GSF.IO.OutageLog.LogModified">
            <summary>
            Event is raised when the outage log is modified.
            </summary>
        </member>
        <member name="E:GSF.IO.OutageLog.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing outage log.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:GSF.IO.OutageLog.Disposed">
            <summary>
            Raised after the outage log has been properly disposed.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLog.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLog.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.IO.OutageLog"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLog.FileName">
            <summary>
            Gets or sets the file name for the outage log; file name can be set with a relative path.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLog.Outages">
            <summary>
            Gets the full list of outages in the log.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLog.Count">
            <summary>
            Gets the number of outages in the log.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLog.Status">
            <summary>
            Gets the current status details about <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLog.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLog.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.OutageLog"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLog.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.OutageLog"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.OutageLog.Initialize">
            <summary>
            Initialize the outage log.
            </summary>
            <remarks>
            <para>
            Initialization performs initial outage log read.
            </para>
            <para>
            It is important to separate initialization from construction such that consumer can attach to events before class
            is initialized in case initialization causes events to be raised.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.IO.OutageLog.Add(System.DateTimeOffset,System.DateTimeOffset)">
            <summary>
            Adds an outage to the <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
            <param name="startTime">Start time of outage.</param>
            <param name="endTime">End time of outage.</param>
        </member>
        <member name="M:GSF.IO.OutageLog.Add(GSF.IO.Outage)">
            <summary>
            Adds an outage to the <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
            <param name="outage">Outage to be added.</param>
        </member>
        <member name="M:GSF.IO.OutageLog.First">
            <summary>
            Gets the first outage in the list of outages.
            </summary>
            <returns>The first outage, or null if there are no outages.</returns>
        </member>
        <member name="M:GSF.IO.OutageLog.Remove(GSF.IO.Outage)">
            <summary>
            Removes the given outage from the outage log.
            </summary>
            <param name="outage">The outage to be removed from the outage log.</param>
            <returns>True if the outage was removed; false otherwise.</returns>
        </member>
        <member name="T:GSF.IO.OutageLogProcessor">
            <summary>
            Represents a thread-safe <see cref="T:GSF.IO.OutageLog"/> processor that will operate on each <see cref="T:GSF.IO.Outage"/> with a consumer provided function on independent threads.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLogProcessor.#ctor(GSF.IO.OutageLog,System.Action{GSF.IO.Outage},System.Func{GSF.IO.Outage,System.Boolean},System.Action{System.Exception},System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.IO.OutageLogProcessor"/> using a pre-initialized <see cref="T:GSF.IO.OutageLog"/>.
            </summary>
            <param name="outageLog">Pre-initialized <see cref="T:GSF.IO.OutageLog"/> to process.</param>
            <param name="processOutageFunction">A delegate that defines a processing function for an <see cref="T:GSF.IO.Outage"/>.</param>
            <param name="canProcessOutageFunction">A delegate that determines if an <see cref="T:GSF.IO.Outage"/> can currently be processed.</param>
            <param name="processExceptionHandler">Delegate to handle any exceptions encountered while processing as <see cref="T:GSF.IO.Outage"/>.</param>
            <param name="processingInterval">Processing interval, in milliseconds.</param>
        </member>
        <member name="M:GSF.IO.OutageLogProcessor.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.IO.OutageLogProcessor"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.OutageLogProcessor.Enabled">
            <summary>
            Enables or disables the <see cref="T:GSF.IO.OutageLogProcessor"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLogProcessor.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.OutageLogProcessor"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.OutageLogProcessor.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.OutageLogProcessor"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.IO.RunTimeLog">
            <summary>
            Represents a persisted run-time log that tracks last start, stop and running times.
            </summary>
        </member>
        <member name="F:GSF.IO.RunTimeLog.DateTimeFormat">
            <summary>
            Date-time format used by <see cref="T:GSF.IO.RunTimeLog"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.RunTimeLog.LastStartTimeKey">
            <summary>
            Log file key name for last start time used by <see cref="T:GSF.IO.RunTimeLog"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.RunTimeLog.LastStopTimeKey">
            <summary>
            Log file key name for last stop time used by <see cref="T:GSF.IO.RunTimeLog"/>.
            </summary>
        </member>
        <member name="F:GSF.IO.RunTimeLog.LastRunningTimeKey">
            <summary>
            Log file key name for last running time used by <see cref="T:GSF.IO.RunTimeLog"/>.
            </summary>
        </member>
        <member name="E:GSF.IO.RunTimeLog.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing run-time log.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:GSF.IO.RunTimeLog.Disposed">
            <summary>
            Raised after the run-time log has been properly disposed.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.#ctor">
            <summary>
            Creates a new run-time log.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.IO.RunTimeLog"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.FileName">
            <summary>
            Gets or sets the file name for the run-time log; file name can be set with a relative path.
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.StartTime">
            <summary>
            Gets last known start-time.
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.StopTime">
            <summary>
            Gets last known stop-time.
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.RunningTime">
            <summary>
            Gets last known running-time (10-second resolution).
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.UpTime">
            <summary>
            Gets the up-time calculation for run-time log, i.e., <see cref="P:GSF.IO.RunTimeLog.RunningTime"/> - <see cref="P:GSF.IO.RunTimeLog.StartTime"/> (10-second resolution).
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.Enabled">
            <summary>        
            Gets or sets a boolean value that indicates whether the run-time log is enabled.
            </summary>
            <remarks>
            This property controls the automatic write log timer.
            </remarks>
        </member>
        <member name="P:GSF.IO.RunTimeLog.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.IO.RunTimeLog.Status">
            <summary>
            Gets the current status details about <see cref="T:GSF.IO.RunTimeLog"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.RunTimeLog"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.RunTimeLog"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.RunTimeLog.Initialize">
            <summary>
            Initialize the run-time log.
            </summary>
            <remarks>
            <para>
            Initialization performs initial run-time log read, establishes new start time and enables automatic write log timer.
            </para>
            <para>
            Last logged stop time will be validated against last logged running time. If the last logged running time is later
            than the last logged stop time, the stop time will be set to the running time with the assumption that the log file
            was not properly shut down (e.g., due to abnormal host termination).
            </para>
            <para>
            It is important to separate initialization from construction such that consumer can attach to events before class
            is initialized in case initialization causes events to be raised.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.IO.RunTimeLog.ReadLog">
            <summary>
            Reads the run-time log.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.WriteLog">
            <summary>
            Writes the run-time log - times are in a human readable format.
            </summary>
        </member>
        <member name="M:GSF.IO.RunTimeLog.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:GSF.IO.RunTimeLog.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="T:GSF.IO.SafeFileWatcher">
            <summary>
            Represents a wrapper around the native .NET <see cref="T:System.IO.FileSystemWatcher"/> that avoids problems with
            dangling references when using a file watcher instance as a class member that never gets disposed.
            </summary>
            <remarks>
            <para>
            The design goal of the SafeFileWatcher is to avoid accidental memory leaks caused by use of .NET's native
            file system watcher when used as a member of a class that consumers fail to properly dispose. If a class
            has a reference to a file watcher as a member variable and attaches to the file watcher's events, the
            file watcher will maintain a reference the parent class so it can call its event handler. If the parent
            class is not disposed properly, the file watcher will thusly not be disposed and will maintain the
            reference to the parent class - the garbage collector will never collect the parent because it has a
            valid reference and no collection means the parent finalizer will never get called and the file system
            watcher will never get disposed. Creating multiple instances of parent class and not disposing of them
            will cause a memory leak even with a properly designed disposable pattern. Using the SafeFileWatcher
            instead of directly using the FileSystemWatcher will resolve this potential issue.
            </para>
            <para>
            Note that component model implementation is not fully replicated - if you are using a file system watcher
            on a design surface, this safety wrapper will usually not be needed. This class has benefit when a class
            will dynamically use a file watcher and needs to make sure any unmanaged resources get properly released
            even if a consumer neglects to call the dispose function.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.IO.SafeFileWatcher.Changed">
            <summary>
            Occurs when a file or directory in the specified <see cref="P:GSF.IO.SafeFileWatcher.Path"/> is changed.
            </summary>
        </member>
        <member name="E:GSF.IO.SafeFileWatcher.Created">
            <summary>
            Occurs when a file or directory in the specified <see cref="P:GSF.IO.SafeFileWatcher.Path"/> is created.
            </summary>
        </member>
        <member name="E:GSF.IO.SafeFileWatcher.Deleted">
            <summary>
            Occurs when a file or directory in the specified <see cref="P:GSF.IO.SafeFileWatcher.Path"/> is deleted.
            </summary>
        </member>
        <member name="E:GSF.IO.SafeFileWatcher.Renamed">
            <summary>
            Occurs when a file or directory in the specified <see cref="P:GSF.IO.SafeFileWatcher.Path"/> is renamed.
            </summary>
        </member>
        <member name="E:GSF.IO.SafeFileWatcher.Error">
            <summary>
            Occurs when the internal buffer overflows.
            </summary>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.SafeFileWatcher"/> class.
            </summary>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.SafeFileWatcher"/> class, given the specified directory to monitor.
            </summary>
            <param name="path">The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
            </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="path"/> parameter is null.</exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="path"/> parameter is an empty string (""). -or-
            The path specified through the <paramref name="path"/> parameter does not exist.
            </exception>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.IO.SafeFileWatcher"/> class, given the specified directory and type of files to monitor.
            </summary>
            <param name="path">The directory to monitor, in standard or Universal Naming Convention (UNC) notation.</param>
            <param name="filter">The type of files to watch. For example, "*.txt" watches for changes to all text files.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="path"/> parameter is null. -or-
            The <paramref name="filter"/> parameter is null.
            </exception>
            <exception cref="T:System.ArgumentException">
            The <paramref name="path"/> parameter is an empty string (""). -or-
            The path specified through the <paramref name="path"/> parameter does not exist.
            </exception>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.Finalize">
            <summary>
            Terminates <see cref="T:GSF.IO.SafeFileWatcher"/> instance making sure to release unmanaged resources.
            </summary>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.Path">
            <summary>
            Gets or sets the path of the directory to watch.
            </summary>
            <returns>
            The path to monitor. The default is an empty string ("").
            </returns>
            <exception cref="T:System.ArgumentException">
            The specified path does not exist or could not be found. -or-
            The specified path contains wildcard characters. -or-
            The specified path contains invalid path characters.
            </exception>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.Filter">
            <summary>
            Gets or sets the filter string used to determine what files are monitored in a directory.
            </summary>
            <returns>
            The filter string. The default is "*.*" (Watches all files.) 
            </returns>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.NotifyFilter">
            <summary>
            Gets or sets the type of changes to watch for.
            </summary>
            <returns>
            One of the <see cref="T:System.IO.NotifyFilters"/> values. The default is the bitwise OR combination of LastWrite, FileName, and DirectoryName.</returns>
            <exception cref="T:System.ArgumentException">The value is not a valid bitwise OR combination of the <see cref="T:System.IO.NotifyFilters"/> values.</exception>
            <exception cref="T:System.ComponentModel.InvalidEnumArgumentException">The value that is being set is not valid.</exception>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.EnableRaisingEvents">
            <summary>
            Gets or sets a value indicating whether the component is enabled.
            </summary>
            <returns>
            true if the component is enabled; otherwise, false. The default is false. If you are using the component on a designer in Visual Studio 2005, the default is true.</returns>
            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.IO.FileSystemWatcher"/> object has been disposed.</exception>
            <exception cref="T:System.PlatformNotSupportedException">The current operating system is not Microsoft Windows NT or later.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The directory specified in <see cref="P:GSF.IO.SafeFileWatcher.Path"/> could not be found.</exception>
            <exception cref="T:System.ArgumentException"><see cref="P:GSF.IO.SafeFileWatcher.Path"/> has not been set or is invalid.</exception>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.IncludeSubdirectories">
            <summary>
            Gets or sets a value indicating whether subdirectories within the specified path should be monitored.
            </summary>
            <returns>
            true if you want to monitor subdirectories; otherwise, false. The default is false.
            </returns>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.InternalBufferSize">
            <summary>
            Gets or sets the size of the internal buffer.
            </summary>
            <returns>
            The internal buffer size. The default is 8192 (8K).
            </returns>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.SynchronizingObject">
            <summary>
            Gets or sets the object used to marshal the event handler calls issued as a result of a directory change.
            </summary>
            <returns>
            The <see cref="T:System.ComponentModel.ISynchronizeInvoke"/> that represents the object used to marshal the event handler calls issued as a result of a directory change. The default is null.
            </returns>
        </member>
        <member name="P:GSF.IO.SafeFileWatcher.Site">
            <summary>
            Gets or sets an <see cref="T:System.ComponentModel.ISite"/> for the <see cref="T:GSF.IO.SafeFileWatcher"/>.
            </summary>
            <returns>
            An <see cref="T:System.ComponentModel.ISite"/> for the <see cref="T:GSF.IO.SafeFileWatcher"/>.
            </returns>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.IO.SafeFileWatcher"/> object.
            </summary>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.SafeFileWatcher"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.WaitForChanged(System.IO.WatcherChangeTypes)">
            <summary>
            A synchronous method that returns a structure that contains specific information on the change that occurred, given the type of change you want to monitor.
            </summary>
            <returns>A <see cref="T:System.IO.WaitForChangedResult"/> that contains specific information on the change that occurred.</returns>
            <param name="changeType">The <see cref="T:System.IO.WatcherChangeTypes"/> to watch for.</param>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.WaitForChanged(System.IO.WatcherChangeTypes,System.Int32)">
            <summary>
            A synchronous method that returns a structure that contains specific information on the change that occurred, given the type of change you want to monitor and the time (in milliseconds) to wait before timing out.
            </summary>
            <returns>A <see cref="T:System.IO.WaitForChangedResult"/> that contains specific information on the change that occurred.</returns>
            <param name="changeType">The <see cref="T:System.IO.WatcherChangeTypes"/> to watch for.</param>
            <param name="timeout">The time (in milliseconds) to wait before timing out.</param>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.BeginInit">
            <summary>
            Begins the initialization of a <see cref="T:GSF.IO.SafeFileWatcher"/> used on a form or used by another component. The initialization occurs at run time.
            </summary>
        </member>
        <member name="M:GSF.IO.SafeFileWatcher.EndInit">
            <summary>
            Ends the initialization of a <see cref="T:GSF.IO.SafeFileWatcher"/> used on a form or used by another component. The initialization occurs at run time.
            </summary>
        </member>
        <member name="T:GSF.IO.BlockAllocatedMemoryStream">
            <summary>
            Defines a stream whose backing store is memory. Externally this class operates similar to a <see cref="T:System.IO.MemoryStream"/>,
            internally it uses dynamically allocated buffer blocks instead of one large contiguous array of data.
            </summary>
            <remarks>
            <para>
            The <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> has two primary benefits over a normal <see cref="T:System.IO.MemoryStream"/>, first, the
            allocation of a large contiguous array of data in <see cref="T:System.IO.MemoryStream"/> can fail when the requested amount of contiguous
            memory is unavailable - the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> prevents this; second, a <see cref="T:System.IO.MemoryStream"/> will
            constantly reallocate the buffer size as the stream grows and shrinks and then copy all the data from the old buffer to the
            new - the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> maintains its blocks over its life cycle, unless manually cleared, thus
            eliminating unnecessary allocations and garbage collections when growing and reusing a stream.
            </para>
            <para>
            Important: Unlike <see cref="T:System.IO.MemoryStream"/>, the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> will not use a user provided buffer
            as its backing buffer. Any user provided buffers used to instantiate the class will be copied into internally managed reusable
            memory buffers. Subsequently, the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> does not support the notion of a non-expandable
            stream. If you are using a <see cref="T:System.IO.MemoryStream"/> with your own buffer, the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> will
            not provide any immediate benefit.
            </para>
            <para>
            Note that the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> will maintain all allocated blocks for stream use until the
            <see cref="M:GSF.IO.BlockAllocatedMemoryStream.Clear"/> method is called or the class is disposed.
            </para>
            <para>
            No members in the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> are guaranteed to be thread safe. Make sure any calls are
            synchronized when simultaneously accessed from different threads.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/>.
            </summary>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.#ctor(System.Byte[])">
            <summary>
            Initializes a new instance of <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> from specified <paramref name="buffer"/>.
            </summary>
            <param name="buffer">Initial buffer to copy into stream.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <remarks>
            Unlike <see cref="T:System.IO.MemoryStream"/>, the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> will not use the provided
            <paramref name="buffer"/> as its backing buffer. The buffer will be copied into internally managed reusable
            memory buffers. Subsequently, the notion of a non-expandable stream is not supported.
            </remarks>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.#ctor(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> from specified region of <paramref name="buffer"/>.
            </summary>
            <param name="buffer">Initial buffer to copy into stream.</param>
            <param name="startIndex">0-based start index into the <paramref name="buffer"/>.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <remarks>
            Unlike <see cref="T:System.IO.MemoryStream"/>, the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> will not use the provided
            <paramref name="buffer"/> as its backing buffer. The buffer will be copied into internally managed reusable
            memory buffers. Subsequently, the notion of a non-expandable stream is not supported.
            </remarks>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> for specified <paramref name="capacity"/>.
            </summary>
            <param name="capacity">Initial length of the stream.</param>
        </member>
        <member name="P:GSF.IO.BlockAllocatedMemoryStream.CanRead">
            <summary>
            Gets a value that indicates whether the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> object supports reading.
            </summary>
            <remarks>
            This is always <c>true</c>.
            </remarks>
        </member>
        <member name="P:GSF.IO.BlockAllocatedMemoryStream.CanSeek">
            <summary>
            Gets a value that indicates whether the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> object supports seeking.
            </summary>
            <remarks>
            This is always <c>true</c>.
            </remarks>
        </member>
        <member name="P:GSF.IO.BlockAllocatedMemoryStream.CanWrite">
            <summary>
            Gets a value that indicates whether the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> object supports writing.
            </summary>
            <remarks>
            This is always <c>true</c>.
            </remarks>
        </member>
        <member name="P:GSF.IO.BlockAllocatedMemoryStream.Length">
            <summary>
            Gets current stream length for this <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> instance.
            </summary>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="P:GSF.IO.BlockAllocatedMemoryStream.Position">
            <summary>
            Gets current stream position for this <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> instance.
            </summary>
            <exception cref="T:System.IO.IOException">Seeking was attempted before the beginning of the stream.</exception>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; otherwise, <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Clear">
            <summary>
            Clears the entire <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> contents and releases any allocated memory blocks.
            </summary>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Sets the <see cref="P:GSF.IO.BlockAllocatedMemoryStream.Position"/> within the current stream to the specified value relative the <paramref name="origin"/>.
            </summary>
            <returns>
            The new position within the stream, calculated by combining the initial reference point and the offset.
            </returns>
            <param name="offset">The new position within the stream. This is relative to the <paramref name="origin"/> parameter, and can be positive or negative.</param>
            <param name="origin">A value of type <see cref="T:System.IO.SeekOrigin"/>, which acts as the seek reference point.</param>
            <exception cref="T:System.IO.IOException">Seeking was attempted before the beginning of the stream.</exception>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.SetLength(System.Int64)">
            <summary>
            Sets the length of the current stream to the specified value.
            </summary>
            <param name="value">The value at which to set the length.</param>
            <remarks>
            If this length is larger than the previous length, the data is initialized to 0's between the previous length and the current length.
            </remarks>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads a block of bytes from the current stream and writes the data to <paramref name="buffer"/>.
            </summary>
            <param name="buffer">When this method returns, contains the specified byte array with the values between <paramref name="startIndex"/> and (<paramref name="startIndex"/> + <paramref name="length"/> - 1) replaced by the characters read from the current stream.</param>
            <param name="startIndex">The byte offset in <paramref name="buffer"/> at which to begin reading.</param>
            <param name="length">The maximum number of bytes to read.</param>
            <returns>
            The total number of bytes written into the buffer. This can be less than the number of bytes requested if that number of bytes are not currently available, or zero if the end of the stream is reached before any bytes are read.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.ReadByte">
            <summary>
            Reads a byte from the current stream.
            </summary>
            <returns>
            The current byte cast to an <see cref="T:System.Int32"/>, or -1 if the end of the stream has been reached.
            </returns>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes a block of bytes to the current stream using data read from <paramref name="buffer"/>.
            </summary>
            <param name="buffer">The buffer to write data from.</param>
            <param name="startIndex">The byte offset in <paramref name="buffer"/> at which to begin writing from.</param>
            <param name="length">The maximum number of bytes to write.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.WriteByte(System.Byte)">
            <summary>
            Writes a byte to the current stream at the current position.
            </summary>
            <param name="value">The byte to write.</param>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.ToArray">
            <summary>
            Writes the stream contents to a byte array, regardless of the <see cref="P:GSF.IO.BlockAllocatedMemoryStream.Position"/> property.
            </summary>
            <returns>A <see cref="T:System.Byte"/>[] containing the current data in the stream</returns>
            <remarks>
            This may fail if there is not enough contiguous memory available to hold current size of stream.
            When possible use methods which operate on streams directly instead.
            </remarks>
            <exception cref="T:System.InvalidOperationException">Cannot create a byte array with more than 2,147,483,591 elements.</exception>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.ReadFrom(System.IO.Stream,System.Int64)">
            <summary>
            Reads specified number of bytes from source stream into this <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/>
            starting at the current position.
            </summary>
            <param name="source">The stream containing the data to copy</param>
            <param name="length">The number of bytes to copy</param>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.WriteTo(System.IO.Stream)">
            <summary>
            Writes the entire stream into destination, regardless of <see cref="P:GSF.IO.BlockAllocatedMemoryStream.Position"/>, which remains unchanged.
            </summary>
            <param name="destination">The stream onto which to write the current contents.</param>
            <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.Flush">
            <summary>
            Overrides the <see cref="M:System.IO.Stream.Flush"/> method so that no action is performed.
            </summary>
            <remarks>
            <para>
            This method overrides the <see cref="M:System.IO.Stream.Flush"/> method.
            </para>
            <para>
            Because any data written to a <see cref="T:GSF.IO.BlockAllocatedMemoryStream"/> object is
            written into RAM, this method is superfluous.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.EnsureCapacity(System.Int64)">
            <summary>
            Makes sure desired <paramref name="length"/> can be accommodated by future data accesses.
            </summary>
            <param name="length">Minimum desired stream capacity.</param>
        </member>
        <member name="M:GSF.IO.BlockAllocatedMemoryStream.InitializeToPosition(System.Int64)">
            <summary>
            Initializes all of the bytes to zero.
            </summary>
        </member>
        <member name="T:GSF.IO.Checksums.Adler32">
            <summary>
            Generates an Adler-32 checksum calculation.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Adler32.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.IO.Checksums.Adler32"/> class.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Adler32.Value">
            <summary>
            Returns the Adler-32 data checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Adler32.Reset">
            <summary>
            Resets the Adler-32 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Adler32.Update(System.Byte)">
            <summary>
            Updates the checksum with the byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Adler32.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:GSF.IO.Checksums.Adler32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the checksum with.</param>
        </member>
        <member name="T:GSF.IO.Checksums.ChecksumExtensions">
            <summary>Defines extension functions related to computing checksums.</summary>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Adler32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the Adler-32 checksum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform checksum on.</param>
            <param name="startIndex">Starts index in data buffer to begin checksum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform checksum over.</param>
            <returns>Computed Adler-32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Crc16Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC16 check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC16 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.CrcCCITTChecksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC-CCITT check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC-CCITT checksum over the specified portion of the buffer.</returns>
            <remarks>
            The CRC-CCITT is a table based 16-bit CRC popular for modem protocols defined for use by the
            Consultative Committee on International Telegraphy and Telephony (CCITT) 
            </remarks>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.ModBusCrcChecksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC-ModBus check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC-ModBus checksum over the specified portion of the buffer.</returns>		
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Crc32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC32 check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Xor8Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates byte length (8-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Byte length XOR check-sum.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Xor16Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates word length (16-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum overs</param>
            <returns>Word length XOR check-sum.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Xor32Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates double-word length (32-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Double-word length XOR check-sum.</returns>
        </member>
        <member name="M:GSF.IO.Checksums.ChecksumExtensions.Xor64Checksum(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates quad-word length (64-bit) XOR-based check-sum on specified portion of a buffer.</summary>
            <param name="data">Data buffer to perform XOR check-sum on.</param>
            <param name="startIndex">Starts index in data buffer to begin XOR check-sum.</param>
            <param name="length">Total number of bytes from <paramref name="startIndex">startIndex</paramref> to
            perform XOR check-sum over.</param>
            <returns>Quad-word length XOR check-sum.</returns>
        </member>
        <member name="T:GSF.IO.Checksums.ChecksumType">
            <summary>
            Indicates type of CRC-16 calculation performed.
            </summary>
        </member>
        <member name="F:GSF.IO.Checksums.ChecksumType.Crc16">
            <summary>
            Regular CRC-16 calculation.
            </summary>
        </member>
        <member name="F:GSF.IO.Checksums.ChecksumType.ModBus">
            <summary>
            ModBus CRC-16 calculation.
            </summary>
        </member>
        <member name="T:GSF.IO.Checksums.Crc16">
            <summary>
            Generates a byte-wise 16-bit CRC calculation.
            </summary>
            <remarks>
            <para>2-byte (16-bit) CRC: The generating polynomial is</para>
            <para>        16   15   2    1</para>
            <para>G(X) = X  + X  + X  + X</para>
            </remarks>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.#ctor">
            <summary>
            Creates a new instance of the Crc16 class.
            The checksum starts off with a value of 0x0000.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.#ctor(GSF.IO.Checksums.ChecksumType)">
            <summary>
            Creates a new instance of the Crc16 class.
            </summary>
            <param name="checksumType">
            Type of calculation to perform, CRC-16 or ModBus.
            </param>
        </member>
        <member name="P:GSF.IO.Checksums.Crc16.Value">
            <summary>
            Returns the CRC-16 data checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.Reset">
            <summary>
            Resets the CRC-16 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.Reset(GSF.IO.Checksums.ChecksumType)">
            <summary>
            Resets the CRC-16 data checksum as if no update was ever called.
            </summary>
            <param name="checksumType">Type of CRC calculation. CRC-16 resets to 0x0000, ModBus resets to 0xFFFF</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.Update(System.Byte)">
            <summary>
            Updates the checksum with the byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc16.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="T:GSF.IO.Checksums.Crc32">
            <summary>
            Generates a byte-wise 32-bit CRC calculation.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Crc32.Value">
            <summary>
            Returns the CRC-32 data checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Crc32.Reset">
            <summary>
            Resets the CRC-32 data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Crc32.Update(System.Int32)">
            <summary>
            Updates the checksum with the integer value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc32.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name="buffer">The buffer which contains the data</param>
            <param name="offset">The offset in the buffer where the data starts</param>
            <param name="count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Crc32.Compute(System.Byte[],System.Int32,System.Int32)">
            <summary>Calculates the CRC32 check-sum on specified portion of a buffer.</summary>
            <param name="buffer">Data buffer to perform check-sum on.</param>
            <param name="offset">Starts index in data buffer to begin check-sum.</param>
            <param name="count">Total number of bytes from <paramref name="offset">offset</paramref> to
            perform check-sum over.</param>
            <returns>Computed CRC32 checksum over the specified portion of the buffer.</returns>
        </member>
        <member name="T:GSF.IO.Checksums.CrcCCITT">
            <summary>Generates a 16-bit CRC-CCITT checksum.</summary>
            <remarks>
            This is a table based 16-bit CRC popular for modem protocols defined for use by the
            Consultative Committee on International Telegraphy and Telephony (CCITT) 
            </remarks>
        </member>
        <member name="M:GSF.IO.Checksums.CrcCCITT.#ctor">
            <summary>
            Creates a new instance of the CrcCCITT class.
            The checksum starts off with a value of 0xFFFF.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.CrcCCITT.Value">
            <summary>
            Returns the CRCCCITT data checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.CrcCCITT.Reset">
            <summary>
            Resets the CRC-CCITT data checksum as if no update was ever called.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.CrcCCITT.Update(System.Byte)">
            <summary>
            Updates the checksum with the int bval.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.CrcCCITT.Update(System.Byte[])">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">buffer an array of bytes</param>
        </member>
        <member name="M:GSF.IO.Checksums.CrcCCITT.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Adds the byte array to the data checksum.
            </summary>
            <param name = "buffer">The buffer which contains the data</param>
            <param name = "offset">The offset in the buffer where the data starts</param>
            <param name = "count">The number of data bytes to update the CRC with.</param>
        </member>
        <member name="T:GSF.IO.Checksums.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to calculate standard checksums and CRC’s.
            </summary>
        </member>
        <member name="T:GSF.IO.Checksums.Xor16">
            <summary>Calculates word length (16-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor16.#ctor">
            <summary>
            Creates a new instance of the Xor16Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Xor16.Value">
            <summary>
            Returns the Xor 16-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor16.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor16.Update(System.UInt16)">
            <summary>
            Updates the checksum with a ushort value.
            </summary>
            <param name="value">The <see cref="T:System.UInt16"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor16.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor16.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:GSF.IO.Checksums.Xor32">
            <summary>Calculates double-word length (32-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor32.#ctor">
            <summary>
            Creates a new instance of the Xor32Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Xor32.Value">
            <summary>
            Returns the Xor 32-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor32.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor32.Update(System.UInt32)">
            <summary>
            Updates the checksum with a uint value.
            </summary>
            <param name="value">The <see cref="T:System.UInt32"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor32.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor32.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:GSF.IO.Checksums.Xor64">
            <summary>Calculates quad-word length (64-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor64.#ctor">
            <summary>
            Creates a new instance of the Xor64Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Xor64.Value">
            <summary>
            Returns the Xor 64-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor64.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor64.Update(System.UInt64)">
            <summary>
            Updates the checksum with a ulong value.
            </summary>
            <param name="value">The <see cref="T:System.UInt64"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor64.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor64.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:GSF.IO.Checksums.Xor8">
            <summary>Calculates byte length (8-bit) XOR-based check-sum on specified portion of a buffer.</summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor8.#ctor">
            <summary>
            Creates a new instance of the Xor8Bit class.
            The checksum starts off with a value of 0.
            </summary>
        </member>
        <member name="P:GSF.IO.Checksums.Xor8.Value">
            <summary>
            Returns the Xor 8-bit checksum computed so far.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor8.Reset">
            <summary>
            Resets the checksum to the initial value.
            </summary>
        </member>
        <member name="M:GSF.IO.Checksums.Xor8.Update(System.Byte)">
            <summary>
            Updates the checksum with a byte value.
            </summary>
            <param name="value">The <see cref="T:System.Byte"/> value to use for the update.</param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor8.Update(System.Byte[])">
            <summary>
            Updates the checksum with an array of bytes.
            </summary>
            <param name="buffer">
            The source of the data to update with.
            </param>
        </member>
        <member name="M:GSF.IO.Checksums.Xor8.Update(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Updates the checksum with the bytes taken from the array.
            </summary>
            <param name="buffer">
            an array of bytes
            </param>
            <param name="offset">
            the start of the data used for this update
            </param>
            <param name="count">
            the number of bytes to use for this update
            </param>
        </member>
        <member name="T:GSF.IO.StreamExtensions">
            <summary>
            Defines extension functions related to <see cref="T:System.IO.Stream"/> manipulation.
            </summary>
        </member>
        <member name="M:GSF.IO.StreamExtensions.CopyTo(System.IO.Stream,System.IO.Stream,System.Int64,System.Byte[])">
            <summary>
            Writes the contents of a stream to the provided stream.
            </summary>
            <param name="destination">the destination stream.</param>
            <param name="source">the source stream</param>
            <param name="length">the number of bytes to copy. If the source is not long enough,
            and end of stream exception will be thrown.</param>
            <param name="buffer">A buffer to use to copy the data from one stream to another. 
            This keeps the function from always allocating a new buffer for the copy</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.CopyStream(System.IO.Stream,System.IO.Stream)">
            <summary>
            Copies input <see cref="T:System.IO.Stream"/> onto output <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="source">The input <see cref="T:System.IO.Stream"/>.</param>
            <param name="destination">The output <see cref="T:System.IO.Stream"/>.</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadStream(System.IO.Stream)">
            <summary>
            Reads entire <see cref="T:System.IO.Stream"/> contents, and returns <see cref="T:System.Byte"/> array of data.
            </summary>
            <param name="source">The <see cref="T:System.IO.Stream"/> to be converted to <see cref="T:System.Byte"/> array.</param>
            <returns>An array of <see cref="T:System.Byte"/>.</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.WriteObject(System.IO.Stream,System.Object)">
            <summary>
            Encodes an object on a stream.
            </summary>
            <param name="stream">Destination stream.</param>
            <param name="value">Object to encode.</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadObject(System.IO.Stream)">
            <summary>
            Reads an object from a stream.
            </summary>
            <param name="stream">Source stream.</param>
            <returns>Decoded object.</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Byte)">
            <summary>
            Writes the supplied <paramref name="value"/> to
            <pararef name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadNextByte(System.IO.Stream)">
            <summary>
            Read a byte from the stream. 
            Will throw an exception if the end of the stream has been reached.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>the value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadBoolean(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Boolean)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.SByte)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadSByte(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Int16)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.UInt16)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Char)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadInt16(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadUInt16(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadChar(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Int32)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.UInt32)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Single)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadInt32(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadUInt32(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadSingle(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Int64)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.UInt64)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Double)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.DateTime)">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> in little endian format.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadInt64(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadDouble(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadUInt64(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadDateTime(System.IO.Stream)">
            <summary>
            Reads the value from the stream in little endian format.
            </summary>
            <param name="stream">the stream to read from.</param>
            <returns>The value read</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Decimal)">
            <summary>
            Writes the supplied string to a <see cref="T:System.IO.Stream"/> in UTF8 encoding.
            </summary>
            <param name="stream"></param>
            <param name="value"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Guid)">
            <summary>
            Writes a guid in little endian bytes to the stream
            </summary>
            <param name="stream"></param>
            <param name="value"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadDecimal(System.IO.Stream)">
            <summary>
            Reads a decimal from the stream in Little Endian bytes.
            </summary>
            <param name="stream">the stream to read the decimal from.</param>
            <returns>the decimal value</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadGuid(System.IO.Stream)">
            <summary>
            Reads a Guid from the stream in Little Endian bytes.
            </summary>
            <param name="stream">the stream to read the guid from.</param>
            <returns>the guid value</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.Byte[])">
            <summary>
            Writes the entire buffer to the <paramref name="stream"/>
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.WriteWithLength(System.IO.Stream,System.Byte[])">
            <summary>
            Writes the supplied <paramref name="value"/> to 
            <paramref name="stream"/> along with prefixing the length 
            so it can be properly read as a unit.
            </summary>
            <param name="stream">the stream to write to</param>
            <param name="value">the value to write</param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadBytes(System.IO.Stream)">
            <summary>
            Reads a byte array from a <see cref="T:System.IO.Stream"/>. 
            The number of bytes should be prefixed in the stream.
            </summary>
            <param name="stream">the stream to read from</param>
            <returns>A new array containing the bytes.</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadBytes(System.IO.Stream,System.Int32)">
            <summary>
            Reads a byte array from a <see cref="T:System.IO.Stream"/>. 
            The number of bytes should be prefixed in the stream.
            </summary>
            <param name="stream">the stream to read from</param>
            <param name="length">gets the number of bytes to read.</param>
            <returns>A new array containing the bytes.</returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadAll(System.IO.Stream,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Reads all of the provided bytes. Will not return prematurely, 
            but continue to execute a <see cref="M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32)"/> command until the entire
            <paramref name="length"/> has been read.
            </summary>
            <param name="stream">The stream to read from</param>
            <param name="buffer">The buffer to write to</param>
            <param name="position">the start position in the <paramref name="buffer"/></param>
            <param name="length">the number of bytes to read</param>
            <exception cref="T:System.IO.EndOfStreamException">occurs if the end of the stream has been reached.</exception>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Write(System.IO.Stream,System.String)">
            <summary>
            Writes the supplied string to a <see cref="T:System.IO.Stream"/> in UTF8 encoding.
            </summary>
            <param name="stream"></param>
            <param name="value"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.WriteCollection(System.IO.Stream,System.Collections.Generic.ICollection{System.String})">
            <summary>
            Writes the supplied Collection to a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream"></param>
            <param name="collection"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.WriteCollection(System.IO.Stream,System.Collections.Generic.ICollection{System.Int32})">
            <summary>
            Writes the supplied Collection to a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="stream"></param>
            <param name="collection"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.WriteNullable(System.IO.Stream,System.String)">
            <summary>
            Writes the supplied string to a <see cref="T:System.IO.Stream"/> 
            in UTF8 encoding with a prefix if the value is null
            </summary>
            <param name="stream"></param>
            <param name="value"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.Read7BitUInt32(System.IO.Stream)">
            <summary>
            Reads the 7-bit encoded value from the stream.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadString(System.IO.Stream)">
            <summary>
            Reads a string from a <see cref="T:System.IO.Stream"/> that was encoded in UTF8.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadNullableString(System.IO.Stream)">
            <summary>
            Reads a string from a <see cref="T:System.IO.Stream"/> that was encoded in UTF8. 
            Value can be null and is prefixed with a boolean.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadStringCollection(System.IO.Stream)">
            <summary>
            Writes the supplied string to a <see cref="T:System.IO.Stream"/> in UTF8 encoding.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:GSF.IO.StreamExtensions.ReadInt32Collection(System.IO.Stream)">
            <summary>
            Writes the supplied string to a <see cref="T:System.IO.Stream"/> in UTF8 encoding.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="T:GSF.IProvideStatus">
            <summary>
            Defines an interface for any object to allow it to provide a name and status
            that can be displayed for informational purposes.
            </summary>
        </member>
        <member name="P:GSF.IProvideStatus.Name">
            <summary>
            Gets the name of the object providing status information.
            </summary>
        </member>
        <member name="P:GSF.IProvideStatus.Status">
            <summary>
            Gets the current status details about object providing status information.
            </summary>
        </member>
        <member name="T:GSF.ISupportLifecycle">
            <summary>
            Specifies that this object provides support for performing tasks during the key stages of object lifecycle.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Lifecycle Stage</term>
                    <description>Equivalent Member</description>
                </listheader>
                <item>
                    <term>Birth</term>
                    <description><see cref="M:GSF.ISupportLifecycle.Initialize"/></description>
                </item>
                <item>
                    <term>Life (Work/Sleep)</term>
                    <description><see cref="P:GSF.ISupportLifecycle.Enabled"/></description>
                </item>
                <item>
                    <term>Death</term>
                    <description><see cref="M:System.IDisposable.Dispose"/></description>
                </item>
            </list>
            </remarks>
        </member>
        <member name="E:GSF.ISupportLifecycle.Disposed">
            <summary>
            Raised after the source object has been properly disposed.
            </summary>
        </member>
        <member name="M:GSF.ISupportLifecycle.Initialize">
            <summary>
            Initializes the state of the object.
            </summary>
            <remarks>
            <para>
            Typical implementation of <see cref="M:GSF.ISupportLifecycle.Initialize"/> should allow the object state to be initialized only 
            once. <see cref="M:GSF.ISupportLifecycle.Initialize"/> should be called automatically from one or more key entry points of the 
            object. For example, if the object is a <see cref="T:System.ComponentModel.Component"/> and it implements 
            the <see cref="T:System.ComponentModel.ISupportInitialize"/> interface then <see cref="M:GSF.ISupportLifecycle.Initialize"/> should 
            be called from the <see cref="M:System.ComponentModel.ISupportInitialize.EndInit"/> method so that the object 
            gets initialized automatically when consumed through the IDE designer surface. In addition to this 
            <see cref="M:GSF.ISupportLifecycle.Initialize"/> should also be called from key or mandatory methods of the object, like 'Start()'
            or 'Connect()', so that the object gets initialized even when not consumed through the IDE designer surface.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.ISupportLifecycle.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the object is enabled.
            </summary>
            <remarks>
            Typical implementation of <see cref="P:GSF.ISupportLifecycle.Enabled"/> should suspend the internal processing when the object is 
            disabled and resume processing when the object is enabled.
            </remarks>
        </member>
        <member name="P:GSF.ISupportLifecycle.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="T:GSF.ITrackable">
            <summary>
            Represents the change history for a property.
            </summary>
        </member>
        <member name="P:GSF.ITrackable.PropertyName">
            <summary>
            Gets the name of the property being tracked.
            </summary>
        </member>
        <member name="P:GSF.ITrackable.OriginalValue">
            <summary>
            Gets the original value before the first change was made to the property.
            </summary>
        </member>
        <member name="P:GSF.ITrackable.CurrentValue">
            <summary>
            Gets the current value after all changes have been applied to the property.
            </summary>
        </member>
        <member name="M:GSF.ITrackable.Revert">
            <summary>
            Erases all change history and reverts to the
            original value before any changes were made.
            </summary>
        </member>
        <member name="M:GSF.ITrackable.Reset">
            <summary>
            Erases all change history and sets the
            original value back to its initial value.
            </summary>
        </member>
        <member name="T:GSF.LittleBinaryValue">
            <summary>
            Represents a little-endian ordered binary data sample stored as a byte array, 
            but implicitly castable to most common native types.
            </summary>
        </member>
        <member name="M:GSF.LittleBinaryValue.#ctor(System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new little-endian ordered binary value from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.LittleBinaryValue.#ctor(System.Byte[])">
            <summary>Creates a new little-endian ordered binary value from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.LittleBinaryValue.#ctor(System.TypeCode,System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new little-endian ordered binary value from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
        </member>
        <member name="M:GSF.LittleBinaryValue.#ctor(System.TypeCode,System.Byte[])">
            <summary>Creates a new little-endian ordered binary value from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
        </member>
        <member name="M:GSF.LittleBinaryValue.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.ConvertToType(System.TypeCode)">
            <summary>
            Returns a <see cref="T:GSF.LittleBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.
            </summary>
            <param name="typeCode">Desired <see cref="T:System.TypeCode"/> for destination value.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Unable to convert binary value to specified type.</exception>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Byte">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Byte"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Byte"/>.</param>
            <returns>A <see cref="T:System.Byte"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Byte)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Byte"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Byte"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Byte"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Int16">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Int16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Int16"/>.</param>
            <returns>A <see cref="T:System.Int16"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Int16)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int16"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int16"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Int16"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.UInt16">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.UInt16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.UInt16"/>.</param>
            <returns>A <see cref="T:System.UInt16"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.UInt16)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt16"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt16"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.UInt16"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~GSF.Int24">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:GSF.Int24"/>.</param>
            <returns>A <see cref="T:GSF.Int24"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.Int24)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:GSF.Int24"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~GSF.UInt24">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:GSF.UInt24"/>.</param>
            <returns>A <see cref="T:GSF.UInt24"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.UInt24)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:GSF.UInt24"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Int32">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Int32"/>.</param>
            <returns>A <see cref="T:System.Int32"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Int32)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int32"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int32"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Int32"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.UInt32">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.UInt32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.UInt32"/>.</param>
            <returns>A <see cref="T:System.UInt32"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.UInt32)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt32"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt32"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.UInt32"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Int64"/>.</param>
            <returns>A <see cref="T:System.Int64"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Int64)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int64"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int64"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Int64"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.UInt64">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.UInt64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.UInt64"/>.</param>
            <returns>A <see cref="T:System.UInt64"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.UInt64)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt64"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt64"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.UInt64"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Single">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Single"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Single"/>.</param>
            <returns>A <see cref="T:System.Single"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Single)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Single"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Single"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Single"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(GSF.LittleBinaryValue)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.LittleBinaryValue"/> to <see cref="T:System.Double"/>.
            </summary>
            <param name="value"><see cref="T:GSF.LittleBinaryValue"/> to convert to <see cref="T:System.Double"/>.</param>
            <returns>A <see cref="T:System.Double"/> representation of <see cref="T:GSF.LittleBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.LittleBinaryValue.op_Implicit(System.Double)~GSF.LittleBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Double"/> to <see cref="T:GSF.LittleBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Double"/> to convert to <see cref="T:GSF.LittleBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.LittleBinaryValue"/> representation of <see cref="T:System.Double"/>.</returns>
        </member>
        <member name="T:GSF.NamespaceDoc">
            <summary>
            Contains fundamental classes that define commonly-used value and reference data types, interfaces, and basic type extension functions.
            </summary>
        </member>
        <member name="T:GSF.NativeBinaryValue">
            <summary>
            Represents a binary data sample stored as a byte array ordered in the
            endianness of the OS, but implicitly castable to most common native types.
            </summary>
        </member>
        <member name="M:GSF.NativeBinaryValue.#ctor(System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new binary value, ordered in the endianness of the OS, from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.NativeBinaryValue.#ctor(System.Byte[])">
            <summary>Creates a new binary value, ordered in the endianness of the OS, from the given byte array.</summary>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <remarks>This constructor assumes a type code of Empty to represent "undefined".</remarks>
        </member>
        <member name="M:GSF.NativeBinaryValue.#ctor(System.TypeCode,System.Byte[],System.Int32,System.Int32)">
            <summary>Creates a new binary value, ordered in the endianness of the OS, from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
            <param name="startIndex">The offset in the buffer where the data starts.</param>
            <param name="length">The number of data bytes that make up the binary value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of the <paramref name="buffer"/> -or-
            <paramref name="length"/> is less than 0 -or-
            <paramref name="startIndex"/> and <paramref name="length"/> do not specify a valid region in the <paramref name="buffer"/>
            </exception>
        </member>
        <member name="M:GSF.NativeBinaryValue.#ctor(System.TypeCode,System.Byte[])">
            <summary>Creates a new binary value, ordered in the endianness of the OS, from the given byte array.</summary>
            <param name="typeCode">The type code of the native value that the binary value represents.</param>
            <param name="buffer">The buffer which contains the binary representation of the value.</param>
        </member>
        <member name="M:GSF.NativeBinaryValue.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.ConvertToType(System.TypeCode)">
            <summary>
            Returns a <see cref="T:GSF.NativeBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.
            </summary>
            <param name="typeCode">Desired <see cref="T:System.TypeCode"/> for destination value.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of source value converted to specified <see cref="T:System.TypeCode"/>.</returns>
            <exception cref="T:System.InvalidOperationException">Unable to convert binary value to specified type.</exception>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Byte">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Byte"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Byte"/>.</param>
            <returns>A <see cref="T:System.Byte"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Byte)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Byte"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Byte"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Byte"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Int16">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Int16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Int16"/>.</param>
            <returns>A <see cref="T:System.Int16"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Int16)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int16"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int16"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Int16"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.UInt16">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.UInt16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.UInt16"/>.</param>
            <returns>A <see cref="T:System.UInt16"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.UInt16)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt16"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt16"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.UInt16"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~GSF.Int24">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:GSF.Int24"/>.</param>
            <returns>A <see cref="T:GSF.Int24"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.Int24)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:GSF.Int24"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~GSF.UInt24">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:GSF.UInt24"/>.</param>
            <returns>A <see cref="T:GSF.UInt24"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.UInt24)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:GSF.UInt24"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Int32">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Int32"/>.</param>
            <returns>A <see cref="T:System.Int32"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Int32)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int32"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int32"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Int32"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.UInt32">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.UInt32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.UInt32"/>.</param>
            <returns>A <see cref="T:System.UInt32"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.UInt32)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt32"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt32"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.UInt32"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Int64"/>.</param>
            <returns>A <see cref="T:System.Int64"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Int64)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Int64"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Int64"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Int64"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.UInt64">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.UInt64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.UInt64"/>.</param>
            <returns>A <see cref="T:System.UInt64"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.UInt64)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.UInt64"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt64"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.UInt64"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Single">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Single"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Single"/>.</param>
            <returns>A <see cref="T:System.Single"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Single)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Single"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Single"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Single"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(GSF.NativeBinaryValue)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.NativeBinaryValue"/> to <see cref="T:System.Double"/>.
            </summary>
            <param name="value"><see cref="T:GSF.NativeBinaryValue"/> to convert to <see cref="T:System.Double"/>.</param>
            <returns>A <see cref="T:System.Double"/> representation of <see cref="T:GSF.NativeBinaryValue"/>.</returns>
        </member>
        <member name="M:GSF.NativeBinaryValue.op_Implicit(System.Double)~GSF.NativeBinaryValue">
            <summary>
            Implicitly converts <see cref="T:System.Double"/> to <see cref="T:GSF.NativeBinaryValue"/>.
            </summary>
            <param name="value"><see cref="T:System.Double"/> to convert to <see cref="T:GSF.NativeBinaryValue"/>.</param>
            <returns>A <see cref="T:GSF.NativeBinaryValue"/> representation of <see cref="T:System.Double"/>.</returns>
        </member>
        <member name="T:GSF.Net.Security.CertificateGenerator">
            <summary>
            The CertificateGenerator searches certificate stores for existing certificates and creates
            self-signed certificates if no matching certificate exists in any accessible store.
            It then generates a certificate file at the specified certificate path.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificateGenerator.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Net.Security.CertificateGenerator"/> class.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificateGenerator.Issuer">
            <summary>
            Gets or sets the name of the entity issuing the certificate.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificateGenerator.SubjectNames">
            <summary>
            Gets or sets the subject names (common names)
            of the entity that this certificate identifies.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificateGenerator.CertificatePath">
            <summary>
            Gets or sets the path to the certificate file
            that is generated by this certificate generator.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificateGenerator.ValidYears">
            <summary>
            Gets or sets the number of years self-signed generated
            certificates should be valid.
            </summary>
            <remarks>
            Defaults to 1.
            </remarks>
        </member>
        <member name="P:GSF.Net.Security.CertificateGenerator.DebugLog">
            <summary>
            Gets a list of detailed log messages
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificateGenerator.GenerateCertificate">
            <summary>
            Generates the certificate.
            </summary>
            <returns>The certificate that was generated by this certificate generator.</returns>
        </member>
        <member name="M:GSF.Net.Security.CertificateGenerator.ExportCertificateWithPrivateKey(System.String,System.Security.SecureString)">
            <summary>
            Exports the private key of the certificate that is currently in use to the given path,
            encrypting the file with the given password.
            </summary>
            <param name="exportPath">The path to which the certificate will be exported.</param>
            <param name="password">The password used to encrypt the certificate file.</param>
        </member>
        <member name="M:GSF.Net.Security.CertificateGenerator.ImportCertificateWithPrivateKey(System.String,System.Security.SecureString)">
            <summary>
            Imports the given certificate into the current user store and then exports the public key.
            </summary>
            <param name="importPath">The file with the certificate and private key to be imported.</param>
            <param name="password">The password used to encrypt the certificate file with the private key.</param>
        </member>
        <member name="T:GSF.Net.Security.CertificatePolicy">
            <summary>
            Represents a set of flags to be checked when validating remote certificates.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicy.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Net.Security.CertificatePolicy"/> class.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificatePolicy.ValidPolicyErrors">
            <summary>
            Gets or sets the set of valid policy errors used when
            validating remote certificates using this policy.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificatePolicy.ValidChainFlags">
            <summary>
            Gets or sets the set of valid chain flags used when
            validating remote certificates using this policy.
            </summary>
        </member>
        <member name="T:GSF.Net.Security.CertificatePolicyChecker">
            <summary>
            Certificate checker that validates remote certificates based
            on certificate policies associated with each certificate.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Net.Security.CertificatePolicyChecker"/> class.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificatePolicyChecker.DefaultCertificatePolicy">
            <summary>
            Gets the default certificate policy used to validate
            certificates that do not have their own certificate policy.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.CertificatePolicyChecker.ReasonForFailure">
            <summary>
            Gets the reason why the remote certificate validation
            failed, or null if certificate validation did not fail.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.Trust(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Trusts the given certificate, using the default policy for validation.
            </summary>
            <param name="certificate">The certificate to be trusted.</param>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.Trust(System.Security.Cryptography.X509Certificates.X509Certificate,GSF.Net.Security.CertificatePolicy)">
            <summary>
            Trusts the given certificate, using the given policy for validation.
            </summary>
            <param name="certificate">The certificate to be trusted.</param>
            <param name="policy">The policy by which to evaluate the certificate.</param>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.Distrust(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Removes the given certificate from the list of trusted certificates.
            </summary>
            <param name="certificate">The certificate to be distrusted.</param>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.DistrustAll">
            <summary>
            Removes all certificates from the list of trusted certificates.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.ValidateRemoteCertificate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Verifies the remote certificate used for authentication.
            </summary>
            <param name="sender">An object that contains state information for this validation.</param>
            <param name="remoteCertificate">The certificate used to authenticate the remote party.</param>
            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
            <param name="errors">One or more errors associated with the remote certificate.</param>
            <returns>A flag that determines whether the specified certificate is accepted for authentication.</returns>
        </member>
        <member name="M:GSF.Net.Security.CertificatePolicyChecker.GetTrustedCertificate(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Searches the list of trusted certificates for a certificate that matches the given remote certificate. 
            </summary>
            <param name="remoteCertificate">Remote certificate to search for.</param>
            <returns>Trusted X509 certificate, if found; otherwise, <c>null</c>.</returns>
        </member>
        <member name="T:GSF.Net.Security.ICertificateChecker">
            <summary>
            Defines the interface for a generic X.509 certificate checker.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.ICertificateChecker.ReasonForFailure">
            <summary>
            Gets the reason why the remote certificate validation
            failed, or null if certificate validation did not fail.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.ICertificateChecker.ValidateRemoteCertificate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Verifies the remote certificate used for authentication.
            </summary>
            <param name="sender">An object that contains state information for this validation.</param>
            <param name="remoteCertificate">The certificate used to authenticate the remote party.</param>
            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
            <param name="errors">One or more errors associated with the remote certificate.</param>
            <returns>A flag that determines whether the specified certificate is accepted for authentication.</returns>
        </member>
        <member name="T:GSF.Net.Security.SimpleCertificateChecker">
            <summary>
            Simple implementation of <see cref="T:GSF.Net.Security.ICertificateChecker"/>.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.SimpleCertificateChecker.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Net.Security.SimpleCertificateChecker"/> class.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimpleCertificateChecker.TrustedCertificates">
            <summary>
            Gets the list of certificates on the system which are
            considered trusted when validating remote certificates.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimpleCertificateChecker.ValidPolicyErrors">
            <summary>
            Gets or sets the set of invalid policy errors.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimpleCertificateChecker.ValidChainFlags">
            <summary>
            Gets or sets the set of invalid chain flags.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimpleCertificateChecker.ReasonForFailure">
            <summary>
            Gets the reason why the remote certificate validation
            failed, or null if certificate validation did not fail.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.SimpleCertificateChecker.ValidateRemoteCertificate(System.Security.Cryptography.X509Certificates.X509Certificate)">
            <summary>
            Validates the given remote certificate to determine if the host is trusted.
            </summary>
            <param name="remoteCertificate">Certificate of the remote host.</param>
            <returns>True if the remote certificate is trusted; false otherwise.</returns>
        </member>
        <member name="M:GSF.Net.Security.SimpleCertificateChecker.ValidateRemoteCertificate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Verifies the remote certificate used for authentication.
            </summary>
            <param name="sender">An object that contains state information for this validation.</param>
            <param name="remoteCertificate">The certificate used to authenticate the remote party.</param>
            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
            <param name="errors">One or more errors associated with the remote certificate.</param>
            <returns>A flag that determines whether the specified certificate is accepted for authentication.</returns>
        </member>
        <member name="T:GSF.Net.Security.SimplePolicyChecker">
            <summary>
            Simple implementation of <see cref="T:GSF.Net.Security.ICertificateChecker"/>.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.SimplePolicyChecker.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Net.Security.SimplePolicyChecker"/> class.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimplePolicyChecker.ValidPolicyErrors">
            <summary>
            Gets or sets the set of invalid policy errors.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimplePolicyChecker.ValidChainFlags">
            <summary>
            Gets or sets the set of invalid chain flags.
            </summary>
        </member>
        <member name="P:GSF.Net.Security.SimplePolicyChecker.ReasonForFailure">
            <summary>
            Gets the reason why the remote certificate validation
            failed, or null if certificate validation did not fail.
            </summary>
        </member>
        <member name="M:GSF.Net.Security.SimplePolicyChecker.ValidateRemoteCertificate(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Verifies the remote certificate used for authentication.
            </summary>
            <param name="sender">An object that contains state information for this validation.</param>
            <param name="remoteCertificate">The certificate used to authenticate the remote party.</param>
            <param name="chain">The chain of certificate authorities associated with the remote certificate.</param>
            <param name="errors">One or more errors associated with the remote certificate.</param>
            <returns>A flag that determines whether the specified certificate is accepted for authentication.</returns>
        </member>
        <member name="T:GSF.Net.Smtp.Mail">
             <summary>
             A wrapper class to the <see cref="T:System.Net.Mail.MailMessage"/> class that simplifies sending mail messages.
             </summary>
             <example>
             This example shows how to send an email message with attachment:
             <code>
             using System;
             using GSF.Net.Smtp;
            
             class Program
             {
                 static void Main(string[] args)
                 {
                     Mail email = new Mail("sender@email.com", "recipient@email.com", "smtp.email.com");
                     email.Subject = "Test Message";
                     email.Body = "This is a test message.";
                     email.IsBodyHtml = true;
                     email.Attachments = @"c:\attachment.txt";
                     email.Send();
                     email.Dispose();
            
                     Console.ReadLine();
                 }
             }
             </code>
             </example>
        </member>
        <member name="F:GSF.Net.Smtp.Mail.DefaultSmtpServer">
            <summary>
            Default <see cref="P:GSF.Net.Smtp.Mail.SmtpServer"/> to be used if one is not specified.
            </summary>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Net.Smtp.Mail"/> class.
            </summary>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Net.Smtp.Mail"/> class.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Net.Smtp.Mail"/> class.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Net.Smtp.Mail"/> class.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Net.Smtp.Mail"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.From">
            <summary>
            Gets or sets the e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.
            </summary>
            <exception cref="T:System.ArgumentNullException">Value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.ToRecipients">
            <summary>
            Gets or sets the comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.
            </summary>
            <exception cref="T:System.ArgumentNullException">Value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.CcRecipients">
            <summary>
            Gets or sets the comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message carbon copy (CC) recipients.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.BccRecipients">
            <summary>
            Gets or sets the comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message blank carbon copy (BCC) recipients.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Subject">
            <summary>
            Gets or sets the subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Body">
            <summary>
            Gets or sets the body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.SmtpServer">
            <summary>
            Gets or sets the name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <exception cref="T:System.ArgumentNullException">Value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Attachments">
            <summary>
            Gets or sets the comma-separated or semicolon-separated list of file names to be attached to the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.IsBodyHtml">
            <summary>
            Gets or sets a boolean value that indicating whether the <see cref="T:GSF.Net.Smtp.Mail"/> message <see cref="P:GSF.Net.Smtp.Mail.Body"/> is to be formatted as HTML.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Username">
            <summary>
            Gets or sets the username used to authenticate to the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Password">
            <summary>
            Gets or sets the password used to authenticate to the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.SecurePassword">
            <summary>
            Gets or sets the password used to authenticate to the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.EnableSSL">
            <summary>
            Gets or sets the flag that determines whether
            to use SSL when communicating with the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.Net.Smtp.Mail.Client">
            <summary>
            Gets the <see cref="T:System.Net.Mail.SmtpClient"/> object used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Net.Smtp.Mail"/> object.
            </summary>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Net.Smtp.Mail"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send">
            <summary>
            Send the <see cref="T:GSF.Net.Smtp.Mail"/> message with <see cref="P:GSF.Net.Smtp.Mail.Attachments"/> to the <see cref="P:GSF.Net.Smtp.Mail.ToRecipients"/>, 
            <see cref="P:GSF.Net.Smtp.Mail.CcRecipients"/> and <see cref="P:GSF.Net.Smtp.Mail.BccRecipients"/> using the specified <see cref="P:GSF.Net.Smtp.Mail.SmtpServer"/>.
            </summary>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String)">
            <summary>
            Sends a <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String)">
            <summary>
            Sends a <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="ccRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message carbon copy (CC) recipients.</param>
            <param name="bccRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message blank carbon copy (BCC) recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String)">
            <summary>
            Sends a <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="attachments">A comma-separated or semicolon-separated list of file names to be attached to the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String)">
            <summary>
            Sends a <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="ccRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message carbon copy (CC) recipients.</param>
            <param name="bccRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message blank carbon copy (BCC) recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="attachments">A comma-separated or semicolon-separated list of file names to be attached to the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.String)">
            <summary>
            Sends a secure <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="username">The username of the account used to authenticate to the SMTP server.</param>
            <param name="password">The password of the account used to authenticate to the SMTP server.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Security.SecureString)">
            <summary>
            Sends a secure <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="username">The username of the account used to authenticate to the SMTP server.</param>
            <param name="password">The password of the account used to authenticate to the SMTP server.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.String,System.Boolean)">
            <summary>
            Sends a secure <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="username">The username of the account used to authenticate to the SMTP server.</param>
            <param name="password">The password of the account used to authenticate to the SMTP server.</param>
            <param name="enableSSL">The flag that determines whether to use SSL when communicating with the SMTP server.</param>
        </member>
        <member name="M:GSF.Net.Smtp.Mail.Send(System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Security.SecureString,System.Boolean)">
            <summary>
            Sends a secure <see cref="T:GSF.Net.Smtp.Mail"/> message.
            </summary>
            <param name="from">The e-mail address of the <see cref="T:GSF.Net.Smtp.Mail"/> message sender.</param>
            <param name="toRecipients">A comma-separated or semicolon-separated e-mail address list of the <see cref="T:GSF.Net.Smtp.Mail"/> message recipients.</param>
            <param name="subject">The subject of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="body">The body of the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="isBodyHtml">true if the <see cref="T:GSF.Net.Smtp.Mail"/> message body is to be formated as HTML; otherwise false.</param>
            <param name="smtpServer">The name or IP address of the SMTP server to be used for sending the <see cref="T:GSF.Net.Smtp.Mail"/> message.</param>
            <param name="username">The username of the account used to authenticate to the SMTP server.</param>
            <param name="password">The password of the account used to authenticate to the SMTP server.</param>
            <param name="enableSSL">The flag that determines whether to use SSL when communicating with the SMTP server.</param>
        </member>
        <member name="T:GSF.Net.Smtp.NamespaceDoc">
            <summary>
            Contains classes used to simplify and standardize operations related to sending e-mail messages.
            </summary>
        </member>
        <member name="T:GSF.NumericalAnalysis.CurveFit">
            <summary>
            Linear regression algorithm.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.CurveFit.Compute(System.Int32,System.Collections.Generic.IEnumerable{System.Windows.Point})">
            <summary>
            Computes linear regression over given values.
            </summary>
            <param name="polynomialOrder">An <see cref="T:System.Int32"/> for the polynomial order.</param>
            <param name="values">A list of values.</param>
            <returns>An array of <see cref="T:System.Double"/> values.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.CurveFit.Compute(System.Int32,System.Collections.Generic.IList{System.Double},System.Collections.Generic.IList{System.Double})">
            <summary>
            Computes linear regression over given values.
            </summary>
            <param name="polynomialOrder">An <see cref="T:System.Int32"/> for the polynomial order.</param>
            <param name="xValues">A list of <see cref="T:System.Double"/> x-values.</param>
            <param name="yValues">A list of <see cref="T:System.Double"/> y-values.</param>
            <returns>An array of <see cref="T:System.Double"/> values.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.CurveFit.LeastSquares(System.Double[],System.Double[],System.Double[],System.Double@,System.Double@,System.Double@)">
            <summary>
            Uses least squares linear regression to estimate the coefficients a, b, and c
            from the given (x,y,z) data points for the equation z = a + bx + cy.
            </summary>
            <param name="zValues">z-value array</param>
            <param name="xValues">x-value array</param>
            <param name="yValues">y-value array</param>
            <param name="a">the out a coefficient</param>
            <param name="b">the out b coefficient</param>
            <param name="c">the out c coefficient</param>
        </member>
        <member name="T:GSF.NumericalAnalysis.KalmanFilter">
            <summary>
            Predicts the next state based on the current estimate.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.KalmanFilter.DefaultProcessNoise">
            <summary>
            Default process noise covariance.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.KalmanFilter.DefaultMeasurementNoise">
            <summary>
            Default measurement noise covariance.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.KalmanFilter.DefaultEstimateError">
            <summary>
            Default estimate error.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.KalmanFilter.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Creates a new Kalman filter.
            </summary>
            <param name="processNoise">
            <para>
            Determines how much the system state is expected to change between measurements.
            </para>
            <para>
            Start with a very small value (e.g., 1e-5) and gradually increase it. Too small a value can
            make the filter slow to adapt to changes, while too large can make it over-responsive to noise.
            </para>
            </param>
            <param name="measurementNoise">
            <para>
            Reflects the confidence in the measurements. A lower value gives more weight to the measurements.
            </para>
            <para>
            If your measurements are accurate, set R to a small value (e.g., 1e-3). Increase it if the
            measurements are noisy.
            </para>
            </param>
            <param name="estimatedError">
            <para>
            Represents the initial guess about the error in the state estimate.
            </para>
            <para>
            </para>
            Start with a value that reflects the expected variability in the initial state.
            </param>
        </member>
        <member name="M:GSF.NumericalAnalysis.KalmanFilter.Update(System.Double)">
            <summary>
            Updates the filter with a new measurement.
            </summary>
            <param name="measurement">New measurement value.</param>
            <returns>Predicted next state.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.KalmanFilter.Filter(System.Collections.Generic.IReadOnlyList{System.Double})">
            <summary>
            Filters a set of measurements.
            </summary>
            <param name="measurements">Signals to filter.</param>
            <returns>Measurements with Kalman filter applied.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.RealTimeSlope">
            <summary>Calculates slope for a real-time continuous data stream.</summary>
        </member>
        <member name="E:GSF.NumericalAnalysis.RealTimeSlope.Status">
            <summary>
            Raised when new status messages come from the <see cref="T:GSF.NumericalAnalysis.RealTimeSlope"/>.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is status message from the <see cref="T:GSF.NumericalAnalysis.RealTimeSlope"/>.
            </remarks>
        </member>
        <member name="E:GSF.NumericalAnalysis.RealTimeSlope.Recalculated">
            <summary>
            Raised when new real-time <see cref="P:GSF.NumericalAnalysis.RealTimeSlope.Slope"/> has been calculated and is available.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.RealTimeSlope.#ctor">
            <summary>
            Creates a default instance of the real-time slope calculation class. Must call Initialize before using.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.RealTimeSlope.#ctor(System.Int32,System.Double)">
            <summary>Creates a new instance of the real-time slope calculation class.</summary>
            <param name="regressionInterval">Time span over which to calculate slope.</param>
            <param name="estimatedRefreshInterval">Estimated data points per second.</param>
        </member>
        <member name="P:GSF.NumericalAnalysis.RealTimeSlope.Slope">
            <summary>Gets current calculated slope for data set.</summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.RealTimeSlope.RunTime">
            <summary>Gets run-time, in seconds, for which slope has maintained a continuous positive or negative
            trend.</summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.RealTimeSlope.Calculate(System.Double,System.Double)">
            <summary>Adds a new x, y data pair to continuous data set.</summary>
            <param name="x">New x-axis value.</param>
            <param name="y">New y-axis value.</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.RealTimeSlope.Initialize(System.Int32,System.Double)">
            <summary>
            Initializes real-time slope calculation.
            </summary>
            <param name="regressionInterval">Time span over which to calculate slope.</param>
            <param name="estimatedRefreshInterval">Estimated data points per second.</param>
        </member>
        <member name="T:GSF.NumericalAnalysis.Spline">
            <summary>
            One piece of a piecewise polynomial function.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Spline.XValue">
            <summary>
            The starting value for the dependent
            variable at which the spline was computed.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Spline.Coefficients">
            <summary>
            The coefficients of each term in the polynomial.
            </summary>
            <remarks>
            <para>The array index matches the exponent to which the x-value is raised.</para>
            
            <code>term[i] = Coefficients[i] * Math.Pow(x - XValue, i);</code>
            </remarks>
        </member>
        <member name="M:GSF.NumericalAnalysis.Spline.#ctor(System.Double,System.Double[])">
            <summary>
            Creates a new instance of the <see cref="T:GSF.NumericalAnalysis.Spline"/> class.
            </summary>
            <param name="xValue">The starting value for the dependent variable at which the spline was computed.</param>
            <param name="coefficients">The coefficients of each term in the polynomial.</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.Spline.CalculateY(System.Double)">
            <summary>
            Calculates the y-value of the polynomial at the given x-value.
            </summary>
            <param name="x">The x-value at which the polynomial should be used to calculate a y-value.</param>
            <returns>The y-value of the polynomial at the given x-value.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.SplineFit">
            <summary>
            A collection of splines computed through spline interpolation.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.SplineFit.Splines">
            <summary>
            The collection of splines used to interpolate a curve.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.SplineFit.#ctor(GSF.NumericalAnalysis.Spline[])">
            <summary>
            Creates a new instance of the <see cref="T:GSF.NumericalAnalysis.SplineFit"/> class.
            </summary>
            <param name="splines">The collection of splines.</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.SplineFit.CalculateY(System.Double)">
            <summary>
            Calculates the interpolated y-value at the given x-value using the appropriate spline.
            </summary>
            <param name="x">The x-value from which to calculate the interpolated y-value.</param>
            <returns>The interpolated y-value at the given x-value.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.SplineFit.ComputeCubicSplines(System.Collections.Generic.IList{System.Double},System.Collections.Generic.IList{System.Double})">
            <summary>
            Computes a cubic spline for interpolating values from the given data set.
            </summary>
            <param name="xValues">The x-values of each sampled data point.</param>
            <param name="yValues">The y-values of each sampled data point.</param>
            <returns>A <see cref="T:GSF.NumericalAnalysis.SplineFit"/> representing the collection of splines to be used for interpolation.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.SineWave">
            <summary>
            Represents a sine wave of the form <c>y=A*sin(ω*t+Φ)+δ</c>.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.SineWave.TwoPi">
            <summary>
            2 * pi
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.SineWave.Amplitude">
            <summary>
            Amplitude (A) of the sine wave.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.SineWave.Frequency">
            <summary>
            Frequency (ω) of the sine wave, in Hz.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.SineWave.Phase">
            <summary>
            Phase (Φ) shift of the sine wave.
            </summary>
        </member>
        <member name="F:GSF.NumericalAnalysis.SineWave.Bias">
            <summary>
            Vertical offset (δ) of the sine wave.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.SineWave.CalculateY(System.Double)">
            <summary>
            Calculates the y-value for the given time.
            </summary>
            <param name="t">The time, in seconds.</param>
            <returns><c>A*sin(ω*t+Φ)+δ</c></returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.WaveFit">
            <summary>
            Linear regression algorithm for sine waves.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.WaveFit.SineFit(System.Double[],System.Double[],System.Double)">
            <summary>
            Uses least squares linear regression to calculate the best fit sine wave for the given data.
            </summary>
            <param name="yValues">The y values of the data points.</param>
            <param name="tValues">The time values of the data points, in seconds.</param>
            <param name="frequency">The frequency of the sine wave, in Hz.</param>
            <returns>A <see cref="T:GSF.NumericalAnalysis.SineWave"/> approximated from the given data points.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.FFT">
            <summary>
            Contains implementation of a Fast Fourier Transform (FFT)
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.FFT.ComplexMagnitude">
            <summary>
            The complex result of the FFT.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.FFT.Frequency">
            <summary>
            The Center of the Frequency Bins used by the FFT.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.FFT.FrequencyBinWidth">
            <summary>
            The width of the Frequency bins used by the FFT.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.FFT.#ctor(System.Collections.Generic.IReadOnlyList{System.Double})">
            <summary>
            Creates a new <see cref="T:GSF.NumericalAnalysis.FFT"/>.
            </summary>
            <remarks>
            https://en.wikipedia.org/wiki/Cooley%E2%80%93Tukey_FFT_algorithm
            </remarks>
        </member>
        <member name="T:GSF.NumericalAnalysis.AnalogFilter">
            <summary>
            Contains an implementation of an analog LTI Filter.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.AnalogFilter.InputCoefficients">
            <summary>
            The Input coefficients used to multiply the input signal and it's derivatives.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.AnalogFilter.OutputCoefficients">
            <summary>
            The output coefficients used to multiply the output signal and it's derivatives.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.AnalogFilter.Order">
            <summary>
            The order of the filter.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.#ctor(System.Numerics.Complex[],System.Numerics.Complex[],System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/> based on continuous design.
            </summary>
            <param name="poles">The continuous poles</param>
            <param name="zeros"> The continuous zeros</param>
            <param name="gain">The continuous gain</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.ContinuousToDiscrete(System.Double,System.Double)">
            <summary>
            Transforms continuous poles and zeros into discrete poles and zeros.
            this uses the biLinear transformation/ Tustin Approximation
            If necessary Prewarping is supported via fp.
            </summary>
            <param name="fs"> Sampling Frequency </param>
            <param name="fp"> pre-warp frequency</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.Filter(System.Double,System.Double,GSF.NumericalAnalysis.FilterState,GSF.NumericalAnalysis.FilterState@)">
            <summary>
            Computes the output of the filter for the given single input and <see cref="T:GSF.NumericalAnalysis.FilterState"/>.
            </summary>
            <param name="value"> The input value </param>
            <param name="fs"> The sampling Frequency of the signal</param>
            <param name="initialState">The initial state of the filter </param>
            <param name="finalState"> The final State of the Filter</param>
            <returns> the value of the filtered signal</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.Filter(System.Double[],System.Double)">
            <summary>
            applies this filter to an evenly sampled signal f(t).
            </summary>
            <param name="signal"> f(t) for the signal</param>
            <param name="fs"> sampling frquency of the signal </param>
            <returns>The output of the filter y(t)</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.PolesToPolynomial(System.Numerics.Complex[])">
            <summary>
            Turns poles into Polynomial coefficients.
            </summary>
            <param name="poles">The complex poles</param>
            <returns> the polynomial coeffcients for the given poles</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.LP2HP">
            <summary>
            Turns the <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/> from Low Pass Filter into an High Pass Filter.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.Scale(System.Double)">
            <summary>
            Scale the <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/> such that Gain at Corner frequency is -3dB.
            </summary>
            <param name="fc"> Corner Frequency</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.NormalButter(System.Int32)">
            <summary>
            Generates a normal Butterworth Filter of Nth order.
            </summary>
            <param name="order"> order of the Filter</param>
            <returns> the <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/></returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.HPButterworth(System.Double,System.Int32)">
            <summary>
            Generates a High Pass Butterworth Filter.
            </summary>
            <param name="fc"> corner frequency in Hz</param>
            <param name="order"> Order of the Filter </param>
            <returns> the <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/></returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.AnalogFilter.LPButterworth(System.Double,System.Int32)">
            <summary>
            Generates a Low Pass Butterworth Filter.
            </summary>
            <param name="fc"> corner frequency in Hz</param>
            <param name="order"> Order of the Filter </param>
            <returns> the <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/></returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.FilterState">
            <summary>
            Represents the internal state of a <see cref="T:GSF.NumericalAnalysis.DigitalFilter"/> or <see cref="T:GSF.NumericalAnalysis.AnalogFilter"/>.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.FilterState.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.NumericalAnalysis.FilterState"/> with all internal states set to 0.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.FilterState.StateValue">
            <summary>
            Gets or sets state value for the filter.
            </summary>
        </member>
        <member name="T:GSF.NumericalAnalysis.DigitalFilter">
            <summary>
            Contains an implementation of a digital LTI Filter.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.DigitalFilter.InputCoefficients">
            <summary>
            The input coefficients used to multiply the input signal.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.DigitalFilter.OutputCoefficients">
            <summary>
            The output coefficients used to multiply the output signal.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.DigitalFilter.Order">
            <summary>
            The order of the filter.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.DigitalFilter.#ctor(System.Double[],System.Double[])">
            <summary>
            Creates a new <see cref="T:GSF.NumericalAnalysis.DigitalFilter"/> based on the coefficients of
            a[0] y[k] + a[1] y[k-1].... = b[0] x[k] + b[1] x[k-1]... b[n] x[k-n]
            </summary>
            <param name="a"> the output coefficients (a[0] through a[n])</param>
            <param name="b"> the input coefficients (b[0] through b[n])</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.DigitalFilter.#ctor(System.Double[],System.Double[],System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.NumericalAnalysis.DigitalFilter"/> based on coeficents and gain
            a[0] y[k] + a[1] y[k-1].... = K * (b[0] x[k] + b[1] x[k-1]... b[n] x[k-n]).
            </summary>
            <param name="a">The output coefficients (a[0] through a[n])</param>
            <param name="b">The input coefficients (b[0] through b[n])</param>
            <param name="k">The gain of the filter</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.DigitalFilter.Filter(System.Double[])">
            <summary>
            Applies this filter to an evenly sampled signal f(t).
            </summary>
            <param name="signal"> f(t) for the signal</param>
            <returns>The output of the filter y(t)</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.DigitalFilter.Filter(System.Double,GSF.NumericalAnalysis.FilterState,GSF.NumericalAnalysis.FilterState@)">
            <summary>
            Computes the output of the filter for the given single input and <see cref="T:GSF.NumericalAnalysis.FilterState"/>.
            </summary>
            <param name="value"> The input value </param>
            <param name="initialState">The initial state of the filter </param>
            <param name="finalState"> The final State of the Filter</param>
            <returns> the value of the filtered signal</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.DigitalFilter.FiltFilt(System.Double[])">
            <summary>
            Applies the filter to a signal and reverse signal to remove any Phasor shift
            </summary>
            <param name="signal"> f(t) for the signal</param>
            <returns>The output of the filter y(t)</returns>
            <remarks>This is the equivalent of MatLab <c>FiltFilt</c>.</remarks>
        </member>
        <member name="T:GSF.NumericalAnalysis.Euclidean">
            <summary>
            Contains an implementation of greatest common denominator
            and least common multiple using the Euclidean algorithm.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.Mod(System.Double,System.Double)">
            <summary>
            Implementation of the modulo operator using Euclidean division.
            </summary>
            <param name="numerator">The number to be divided.</param>
            <param name="denominator">The number to divide by.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.Wrap(System.Double,System.Double,System.Double)">
            <summary>
            Wraps a value to a range of values defined
            by the given minimum value and range.
            </summary>
            <param name="value">The value to be wrapped.</param>
            <param name="minimum">The minimum value of the range.</param>
            <param name="range">The size of the range.</param>
            <returns>The given value wrapped to the given range.</returns>
            <remarks>
            This method wraps the given value based on the assumption that
            for every pair of values x and y where x-y=range, the values are
            equivalent. This is probably most widely understood in terms of
            angles, where 0, 360, 720, etc. are all equivalent angles. If
            you wanted to wrap an angle such that it is between 120 and 480,
            for instance, you could call Euclidean.Wrap(angle, 120, 360).
            </remarks>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>
            Gets the greatest common denominator of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Int32[])">
            <summary>
            Gets the greatest common denominator of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Int32,System.Int32)">
            <summary>
            Gets the greatest common denominator of the given integers.
            </summary>
            <param name="a">The first of the given integers.</param>
            <param name="b">The second of the given integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Collections.Generic.IEnumerable{System.Int64})">
            <summary>
            Gets the greatest common denominator of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Int64[])">
            <summary>
            Gets the greatest common denominator of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.GreatestCommonDenominator(System.Int64,System.Int64)">
            <summary>
            Gets the greatest common denominator of the given integers.
            </summary>
            <param name="a">The first of the given integers.</param>
            <param name="b">The second of the given integers.</param>
            <returns>The greatest common denominator.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>
            Gets the least common multiple of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Int32[])">
            <summary>
            Gets the least common multiple of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Int32,System.Int32)">
            <summary>
            Gets the least common multiple of the given integers.
            </summary>
            <param name="a">The first of the given integers.</param>
            <param name="b">The second of the given integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Collections.Generic.IEnumerable{System.Int64})">
            <summary>
            Gets the least common multiple of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Int64[])">
            <summary>
            Gets the least common multiple of all the integers in the source collection.
            </summary>
            <param name="source">The collection of integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Euclidean.LeastCommonMultiple(System.Int64,System.Int64)">
            <summary>
            Gets the least common multiple of the given integers.
            </summary>
            <param name="a">The first of the given integers.</param>
            <param name="b">The second of the given integers.</param>
            <returns>The least common multiple.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.GaussianDistribution">
            <summary>
            Implements a BoxMuller method for generating statistically normal random numbers.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.GaussianDistribution.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.NumericalAnalysis.GaussianDistribution"/>
            </summary>
            <param name="mean">the mean of the distribution</param>
            <param name="standardDeviation">the standard deviation</param>
            <param name="min">a clipping boundary</param>
            <param name="max">a clipping boundary</param>
        </member>
        <member name="M:GSF.NumericalAnalysis.GaussianDistribution.Next">
            <summary>
            Gets the next random value.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.Interpolation.IDWFunc">
            <summary>
            Function definition for the inverse distance weighting algorithm.
            </summary>
            <param name="x">The x-coordinate of the point at which the value is to be calculated.</param>
            <param name="y">The y-coordinate of the point at which the value is to be calculated.</param>
            <returns>The calculated value at the given location.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.Interpolation.DistanceFunc">
            <summary>
            Function defintion for calculating the distance between two points.
            </summary>
            <param name="x1">The x-coordinate of the first point.</param>
            <param name="y1">The y-coordinate of the first point.</param>
            <param name="x2">The x-coordinate of the second point.</param>
            <param name="y2">The y-coordinate of the second point.</param>
            <returns>The distance between the two given points.</returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction">
            <summary>
            Represents a function for calculating values
            at given coordinates based on sparse data sets.
            </summary>
            <remarks>
            Usage is similar to the <see cref="T:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction"/> class.
            </remarks>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction"/> class.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.XCoordinates">
            <summary>
            Gets the collection of x-coordinates of points at which the values are known.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.YCoordinates">
            <summary>
            Gets the collection of y-coordinates of points at which the values are known.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.Values">
            <summary>
            Gets the collection of values of points at which the values are known.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.Power">
            <summary>
            Gets the power applied to the inverse distance to control the speed of value's decay.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.DistanceFunction">
            <summary>
            Gets the function to be used to calculate the distance between two points.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.SetXCoordinates(System.Double[])">
            <summary>
            Sets the collection of x-coordinates of points at which the values are known.
            </summary>
            <param name="xCoordinates">The x-coordinates of points at which the values are known.</param>
            <returns>A reference to the inverse distance weighting function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.SetYCoordinates(System.Double[])">
            <summary>
            Sets the collection of y-coordinates of points at which the values are known.
            </summary>
            <param name="yCoordinates">The y-coordinates of points at which the values are known.</param>
            <returns>A reference to the inverse distance weighting function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.SetValues(System.Double[])">
            <summary>
            Sets the collection of values of points at which the values are known.
            </summary>
            <param name="values">The values of points at which the values are known.</param>
            <returns>A reference to the inverse distance weighting function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.SetPower(System.Double)">
            <summary>
            Sets the power applied to the inverse distance to control the speed of value's decay.
            </summary>
            <param name="power">The power applied to the inverse of the distance.</param>
            <returns>A reference to the inverse distance weighting function.</returns>
            <remarks>Larger values increase the speed of decay such that a known value affects a smaller area.</remarks>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.SetDistanceFunction(GSF.NumericalAnalysis.Interpolation.DistanceFunc)">
            <summary>
            Sets the function to be used to calculate the distance between two points.
            </summary>
            <param name="distanceFunction">The function used to calculate distance between two points.</param>
            <returns>A reference to the inverse distance weighting function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.op_Implicit(GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction)~GSF.NumericalAnalysis.Interpolation.IDWFunc">
            <summary>
            Converts the <see cref="T:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction"/>
            object to an <see cref="T:GSF.NumericalAnalysis.Interpolation.IDWFunc"/> to start converting values.
            </summary>
            <param name="idwFunction">The inverse distance wieghting function to be converted.</param>
            <exception cref="T:System.InvalidOperationException">
            <para>the number of x-coordinates does not equal the number of y-coordinates</para>
            <para>- or -</para>
            <para>the number of coordinates does not equal the number of values</para>
            </exception>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.InverseDistanceWeightingFunction.DefaultDistanceFunction(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Calculates the distance between two points.
            </summary>
            <param name="x1">The x-coordinate of the first point.</param>
            <param name="y1">The y-coordinate of the first point.</param>
            <param name="x2">The x-coordinate of the second point.</param>
            <param name="y2">The y-coordinate of the second point.</param>
            <returns></returns>
        </member>
        <member name="T:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction">
            <summary>
            Represents a piecewise linear function for
            calculating values between pivot points.
            </summary>
            <remarks>
            <para>
            The conversion function returned by this class uses a
            binary search algorithm to find the appropriate line segment
            to use for the calculation. Therefore, the domain must
            be specified either in increasing or decreasing order.
            </para>
            
            <para>
            Here is an example of how to use this class.
            </para>
            
            <code>
            Func&lt;double, double&gt; piecewiseLinearFunc = new PiecewiseLinearFunction()
                .SetDomain(-1, 0, 1)
                .SetRange(0, 1, 0);
                
            Console.WriteLine(piecewiseLinearFunc(-10));   // -9
            Console.WriteLine(piecewiseLinearFunc(-1));    // 0 
            Console.WriteLine(piecewiseLinearFunc(-0.5));  // 0.5
            Console.WriteLine(piecewiseLinearFunc(0));     // 1
            Console.WriteLine(piecewiseLinearFunc(0.5));   // 0.5
            Console.WriteLine(piecewiseLinearFunc(1));     // 0
            Console.WriteLine(piecewiseLinearFunc(10));    // -9
            </code>
            </remarks>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction.Domain">
            <summary>
            Gets the x-values of the pivot points in the piecewise linear function.
            </summary>
        </member>
        <member name="P:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction.Range">
            <summary>
            Gets the y-values of the pivot points in the piecewise linear function.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction.SetDomain(System.Double[])">
            <summary>
            Sets the x-values of the pivot points in the piecewise linear function.
            </summary>
            <param name="domain">The x-values of the pivot points.</param>
            <returns>A reference to the piecewise linear function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction.SetRange(System.Double[])">
            <summary>
            Sets the y-values of the pivot points in the piecewise linear function.
            </summary>
            <param name="range">The y-values of the pivot points.</param>
            <returns>A refernce to the picewise linear function.</returns>
        </member>
        <member name="M:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction.op_Implicit(GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction)~System.Func{System.Double,System.Double}">
            <summary>
            Converts the <see cref="T:GSF.NumericalAnalysis.Interpolation.PiecewiseLinearFunction"/> object to a
            <see cref="T:System.Func`2"/> to start converting values.
            </summary>
            <param name="func">The piecewise linear function to be converted.</param>
            <exception cref="T:System.InvalidOperationException">
            <para>the size of the domain does not equal the size of the range</para>
            <para>- or -</para>
            <para>less than two pivot points are defined</para>
            </exception>
        </member>
        <member name="T:GSF.NumericalAnalysis.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to calculate common numerical operations such as curve fits and standard deviations.
            </summary>
        </member>
        <member name="T:GSF.NumericalAnalysis.NumericalAnalysisExtensions">
            <summary>
            Defines extension functions related to numerical analysis over a sequence of data.
            </summary>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation(System.Collections.Generic.IEnumerable{System.Double},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Double"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Double},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Double"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="selector">Used to map value from enumerable of <typeparamref name="T"/> to enumerable of <see cref="T:System.Double"/>.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
            <typeparam name="T">Type of source used to extract double.</typeparam>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation(System.Collections.Generic.IEnumerable{System.Decimal},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Decimal"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Decimal},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Decimal"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="selector">Used to map value from enumerable of <typeparamref name="T"/> to enumerable of <see cref="T:System.Decimal"/>.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
            <typeparam name="T">Type of source used to extract decimal.</typeparam>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation(System.Collections.Generic.IEnumerable{System.Single},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Single"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
        </member>
        <member name="M:GSF.NumericalAnalysis.NumericalAnalysisExtensions.StandardDeviation``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Single},System.Boolean)">
            <summary>
            Computes the standard deviation over a sequence of <see cref="T:System.Single"/> values.
            </summary>
            <param name="source">Source data sample.</param>
            <param name="selector">Used to map value from enumerable of <typeparamref name="T"/> to enumerable of <see cref="T:System.Single"/>.</param>
            <param name="calculateForSample">Set to <c>true</c> to calculate for estimated population size, or <c>false</c> for full population.</param>
            <returns>The standard deviation of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="source"/> does not contain enough values to produce a result.</exception>
            <typeparam name="T">Type of source used to extract float.</typeparam>
        </member>
        <member name="T:GSF.NumericExtensions">
            <summary>Defines extension functions related to numbers.</summary>
        </member>
        <member name="M:GSF.NumericExtensions.NotZero``1(``0)">
            <summary>Ensures parameter passed to function is not zero. Returns -1
            if <paramref name="source">source</paramref> is zero.</summary>
            <param name="source">Value to test for zero.</param>
            <typeparam name="T">Return type used for immediate expression</typeparam>
            <returns>A non-zero value.</returns>
        </member>
        <member name="M:GSF.NumericExtensions.NotZero``1(``0,``0)">
            <summary>Ensures parameter passed to function is not zero.</summary>
            <param name="source">Value to test for zero.</param>
            <param name="nonZeroReturnValue">Value to return if <paramref name="source">source</paramref> is
            zero.</param>
            <typeparam name="T">Return type used for immediate expression</typeparam>
            <returns>A non-zero value.</returns>
            <remarks>To optimize performance, this function does not validate that the notZeroReturnValue is not
            zero.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotEqualTo``1(``0,``0,``0)">
            <summary>Ensures test parameter passed to function is not equal to the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notEqualToValue">Value that represents the undesired value (e.g., zero).</param>
            <param name="alternateValue">Value to return if <paramref name="source">source</paramref> is equal
            to the undesired value.</param>
            <typeparam name="T">Structure or class that implements IEquatable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not equal to notEqualToValue.</returns>
            <remarks>To optimize performance, this function does not validate that the notEqualToValue is not equal
            to the alternateValue.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotLessThan``1(``0,``0)">
            <summary>Ensures test parameter passed to function is not less than the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notLessThanValue">Value that represents the lower limit for the source. This value
            is returned if source is less than notLessThanValue.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not less than notLessThanValue.</returns>
            <remarks>If source is less than notLessThanValue, then notLessThanValue is returned.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotLessThan``1(``0,``0,``0)">
            <summary>Ensures test parameter passed to function is not less than the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notLessThanValue">Value that represents the lower limit for the source.</param>
            <param name="alternateValue">Value to return if <paramref name="source">source</paramref> is
            less than <paramref name="notLessThanValue">notLessThanValue</paramref>.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not less than notLessThanValue.</returns>
            <remarks>To optimize performance, this function does not validate that the notLessThanValue is not
            less than the alternateValue.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotLessThanOrEqualTo``1(``0,``0,``0)">
            <summary>Ensures test parameter passed to function is not less than or equal to the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notLessThanOrEqualToValue">Value that represents the lower limit for the source.</param>
            <param name="alternateValue">Value to return if <paramref name="source">source</paramref> is
            less than or equal to <paramref name="notLessThanOrEqualToValue">notLessThanOrEqualToValue</paramref>.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not less than or equal to notLessThanOrEqualToValue.</returns>
            <remarks>To optimize performance, this function does not validate that the notLessThanOrEqualToValue is
            not less than or equal to the alternateValue.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotGreaterThan``1(``0,``0)">
            <summary>Ensures test parameter passed to function is not greater than the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notGreaterThanValue">Value that represents the upper limit for the source. This
            value is returned if source is greater than notGreaterThanValue.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not greater than notGreaterThanValue.</returns>
            <remarks>If source is greater than notGreaterThanValue, then notGreaterThanValue is returned.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotGreaterThan``1(``0,``0,``0)">
            <summary>Ensures test parameter passed to function is not greater than the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notGreaterThanValue">Value that represents the upper limit for the source.</param>
            <param name="alternateValue">Value to return if <paramref name="source">source</paramref> is
            greater than <paramref name="notGreaterThanValue">notGreaterThanValue</paramref>.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not greater than notGreaterThanValue.</returns>
            <remarks>To optimize performance, this function does not validate that the notGreaterThanValue is
            not greater than the alternateValue</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.NotGreaterThanOrEqualTo``1(``0,``0,``0)">
            <summary>Ensures test parameter passed to function is not greater than or equal to the specified value.</summary>
            <param name="source">Value to test.</param>
            <param name="notGreaterThanOrEqualToValue">Value that represents the upper limit for the source.</param>
            <param name="alternateValue">Value to return if <paramref name="source">source</paramref> is
            greater than or equal to <paramref name="notGreaterThanOrEqualToValue">notGreaterThanOrEqualToValue</paramref>.</param>
            <typeparam name="T">Structure or class that implements IComparable(Of T) (e.g., Double, Single,
            Integer, etc.).</typeparam>
            <returns>A value not greater than or equal to notGreaterThanOrEqualToValue.</returns>
            <remarks>To optimize performance, this function does not validate that the notGreaterThanOrEqualToValue
            is not greater than or equal to the alternateValue.</remarks>
        </member>
        <member name="M:GSF.NumericExtensions.Normalize(System.Decimal)">
            <summary>
            Removes trailing zeros from the given decimal <paramref name="value"/>.
            </summary>
            <param name="value">The value to be normalized.</param>
            <returns>The normalized decimal value.</returns>
        </member>
        <member name="T:GSF.ObjectState`1">
            <summary>
            A serializable class that can be used to track the current and previous state of an object.
            </summary>
            <typeparam name="TState">Type of the state to track.</typeparam>
        </member>
        <member name="M:GSF.ObjectState`1.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ObjectState`1"/> class.
            </summary>
            <param name="objectName">The text label for the object whose state is being tracked.</param>
        </member>
        <member name="M:GSF.ObjectState`1.#ctor(System.String,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ObjectState`1"/> class.
            </summary>
            <param name="objectName">The text label for the object whose state is being tracked.</param>
            <param name="currentState">The current state of the object.</param>
        </member>
        <member name="M:GSF.ObjectState`1.#ctor(System.String,`0,`0)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.ObjectState`1"/> class.
            </summary>
            <param name="objectName">The text label for the object whose state is being tracked.</param>
            <param name="currentState">The current state of the object.</param>
            <param name="previousState">The previous state of the object.</param>
        </member>
        <member name="P:GSF.ObjectState`1.ObjectName">
            <summary>
            Gets or sets a text label for the object whose state is being tracked.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:GSF.ObjectState`1.CurrentState">
            <summary>
            Gets or sets the current state of the object.
            </summary>
        </member>
        <member name="P:GSF.ObjectState`1.PreviousState">
            <summary>
            Gets or sets the previous state of the object.
            </summary>
        </member>
        <member name="T:GSF.OptimizationOptions">
            <summary>
            This class will contain various optimizations that can be enabled in certain circumstances 
            through the SystemSettings. Since this framework is used in many settings, for stability
            reasons, tradeoffs are made. This gives the users opportunities to enable/disable certain
            optimizations if for some reason they cause adverse effects on their system.
            </summary>
        </member>
        <member name="T:GSF.OptimizationOptions.RoutingMethod">
            <summary>
            The routing method to use.
            </summary>
        </member>
        <member name="F:GSF.OptimizationOptions.RoutingMethod.Default">
            <summary>
            The default method of routing
            </summary>
        </member>
        <member name="F:GSF.OptimizationOptions.RoutingMethod.HighLatencyLowCpu">
            <summary>
            A custom implementation that sacrifices overall latency for lower CPU utilization.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.DisableAsyncQueueInProtocolParsing">
            <summary>
            Eliminates certain async queues in the phasor protocol parsing. 
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.PreferDedicatedThreads">
            <summary>
            Uses dedicated threads instead of LongSynchronizedOperations in certain cases.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.DefaultRoutingMethod">
            <summary>
            Specifies the desired routing method.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.RoutingLatency">
            <summary>
            Specifies a routing latency if the routing method recgonizes this.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.RoutingBatchSize">
            <summary>
            Specifies the target number of measurements per batch operation.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.EnableThreadPoolMonitoring">
            <summary>
            Specifies that threadpool monitoring will be enabled.
            </summary>
        </member>
        <member name="P:GSF.OptimizationOptions.EnableThreadStackDumping">
            <summary>
            Specifies that the threadpool monitor should also dump the stack trace of all thread.
            </summary>
        </member>
        <member name="T:GSF.Parsing.BinaryImageBase">
            <summary>
            Defines a base class that represents binary images for parsing or generation in terms of a header, body and footer.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageBase.BinaryLength">
            <summary>
            Gets the length of the <see cref="T:GSF.Parsing.BinaryImageBase"/> object.
            </summary>
            <remarks>
            This property is not typically overridden since it is the sum of the header, body and footer lengths.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageBase.HeaderLength">
            <summary>
            Gets the length of the header portion of the <see cref="T:GSF.Parsing.BinaryImageBase"/> object.
            </summary>
            <remarks>
            This property is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageBase.BodyLength">
            <summary>
            Gets the length of the body portion of the <see cref="T:GSF.Parsing.BinaryImageBase"/> object.
            </summary>
            <remarks>
            This property is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageBase.FooterLength">
            <summary>
            Gets the length of the footer portion of the <see cref="T:GSF.Parsing.BinaryImageBase"/> object.
            </summary>
            <remarks>
            This property is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes object by parsing the specified <paramref name="buffer"/> containing a binary image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <remarks>
            This method is not typically overridden since it is parses the header, body and footer images in sequence.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.ParseHeaderImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Parses the binary header image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.ParseBodyImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Parses the binary body image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.ParseFooterImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Parses the binary footer image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the object and copies it into the given buffer, for <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <remarks>
            This property is not typically overridden since it is the generates the combination of the header, body and footer images.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.GenerateHeaderImage(System.Byte[],System.Int32)">
            <summary>
            Generates the binary header image and copies it into the given buffer, for <see cref="P:GSF.Parsing.BinaryImageBase.HeaderLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.GenerateBodyImage(System.Byte[],System.Int32)">
            <summary>
            Generates the binary body image and copies it into the given buffer, for <see cref="P:GSF.Parsing.BinaryImageBase.BodyLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageBase.GenerateFooterImage(System.Byte[],System.Int32)">
            <summary>
            Generates the binary footer image and copies it into the given buffer, for <see cref="P:GSF.Parsing.BinaryImageBase.FooterLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <remarks>
            This method is typically overridden by a specific protocol implementation.
            </remarks>
        </member>
        <member name="T:GSF.Parsing.BinaryImageParserBase">
            <summary>
            This class defines the fundamental functionality for parsing any stream of binary data.
            </summary>
            <remarks>
            This parser is designed as a write-only stream such that data can come from any source.
            </remarks>
        </member>
        <member name="F:GSF.Parsing.BinaryImageParserBase.DefaultProtocolSyncBytes">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Parsing.BinaryImageParserBase.ProtocolSyncBytes"/> property.
            </summary>
        </member>
        <member name="E:GSF.Parsing.BinaryImageParserBase.DataDiscarded">
            <summary>
            Occurs when data image fails deserialized due to an exception.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the remaining portion of the binary image that failed to parse.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.BinaryImageParserBase.ParsingException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered while attempting to parse data.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered while parsing data.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.BinaryImageParserBase.BufferParsed">
            <summary>
            Occurs when buffer parsing has completed.
            </summary>
        </member>
        <member name="F:GSF.Parsing.BinaryImageParserBase.StreamInitialized">
            <summary>
            Tracks if data stream has been initialized.
            </summary>
            <remarks>
            Only relevant if <see cref="P:GSF.Parsing.BinaryImageParserBase.ProtocolUsesSyncBytes"/> is true.
            </remarks>
        </member>
        <member name="F:GSF.Parsing.BinaryImageParserBase.UnparsedBuffer">
            <summary>
            Remaining unparsed buffer from last parsing execution, if any.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> class.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the data parser is currently enabled.
            </summary>
            <remarks>
            Setting <see cref="P:GSF.Parsing.BinaryImageParserBase.Enabled"/> to true will start the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> if it is not started,
            setting to false will stop the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> if it is started.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.ProtocolUsesSyncBytes">
            <summary>
            Gets flag that determines if this protocol parsing implementation uses synchronization bytes.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.ProtocolSyncBytes">
            <summary>
            Gets or sets synchronization bytes for this parsing implementation, if used.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> has been active.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.TotalProcessedBuffers">
            <summary>
            Gets the total number of buffer images processed so far.
            </summary>
            <returns>Total number of buffer images processed so far.</returns>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.CanRead">
            <summary>
            Gets a value indicating whether the current stream supports reading.
            </summary>
            <remarks>
            The <see cref="T:GSF.Parsing.BinaryImageParserBase"/> is implemented as a WriteOnly stream, so this defaults to false.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.CanSeek">
            <summary>
            Gets a value indicating whether the current stream supports seeking.
            </summary>
            <remarks>
            The <see cref="T:GSF.Parsing.BinaryImageParserBase"/> is implemented as a WriteOnly stream, so this defaults to false.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.CanWrite">
            <summary>
            Gets a value indicating whether the current stream supports writing.
            </summary>
            <remarks>
            The <see cref="T:GSF.Parsing.BinaryImageParserBase"/> is implemented as a WriteOnly stream, so this defaults to true.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.Status">
            <summary>
            Gets current status of <see cref="T:GSF.Parsing.BinaryImageParserBase"/>.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.Name">
            <summary>
            Gets the name of <see cref="T:GSF.Parsing.BinaryImageParserBase"/>.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Start">
            <summary>
            Start the streaming data parser.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Stop">
            <summary>
            Stops the streaming data parser.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Parse(GSF.Parsing.ISupportBinaryImage)">
            <summary>
            Parses the object implementing the <see cref="T:GSF.Parsing.ISupportBinaryImage"/> interface.
            </summary>
            <param name="image">Object to be parsed that implements the <see cref="T:GSF.Parsing.ISupportBinaryImage"/> interface.</param>
            <remarks>
            This function takes the binary image from <see cref="T:GSF.Parsing.ISupportBinaryImage"/> and writes the buffer to the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> stream for parsing.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes a sequence of bytes onto the stream for parsing.
            </summary>
            <param name="buffer">An array of bytes. This method copies count bytes from buffer to the current stream.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Flush">
            <summary>
            When overridden in a derived class, clears all buffers for this stream and causes any buffered data
            to be written to the underlying device.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            The parser is designed as a write only stream, so this method is not implemented.
            </summary>
            <exception cref="T:System.NotImplementedException">Cannot read from WriteOnly stream.</exception>
            <param name="buffer">Array of <see cref="T:System.Byte"/>s.</param>
            <param name="count">An <see cref="T:System.Int32"/> value for the offset.</param>
            <param name="offset">An <see cref="T:System.Int32"/> value for the count.</param>
            <returns>An <see cref="T:System.Int32"/> as the number of bytes read. Well. It would, if implemented.</returns>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            The parser is designed as a write only stream, so this method is not implemented.
            </summary>
            <exception cref="T:System.NotImplementedException">WriteOnly stream has no position.</exception>
            <param name="offset">A <see cref="T:System.Int64"/> value for the offset.</param>
            <param name="origin">A <see cref="T:System.IO.SeekOrigin"/>.</param>
            <returns>Returns a <see cref="T:System.Int64"/> value indicating the point that was sought.</returns>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.SetLength(System.Int64)">
            <summary>
            The parser is designed as a write only stream, so this method is not implemented.
            </summary>
            <exception cref="T:System.NotImplementedException">WriteOnly stream has no length.</exception>
            <param name="value">A <see cref="T:System.Int64"/> value.</param>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.Length">
            <summary>
            The parser is designed as a write only stream, so this method is not implemented.
            </summary>
            <remarks>
            WriteOnly stream has no length. Returned value will always be -1.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.BinaryImageParserBase.Position">
            <summary>
            The parser is designed as a write only stream, so this method is not implemented.
            </summary>
            <remarks>
            WriteOnly stream has no position. Returned value will always be -1 and any assigned value will be ignored.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.ParseFrame(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Protocol specific frame parsing algorithm.
            </summary>
            <param name="buffer">Buffer containing data to parse.</param>
            <param name="offset">Offset index into buffer that represents where to start parsing.</param>
            <param name="length">Maximum length of valid data from offset.</param>
            <returns>The length of the data that was parsed.</returns>
            <remarks>
            <para>
            Implementers can choose to focus on parsing a single frame in the buffer even if there are other frames available in the buffer.
            Base class will continue to move through buffer on behalf of derived class until all the buffer has been processed.  Just return
            the total amount of data was parsed and the remaining unparsed will be prepended to next received buffer.
            </para>
            <para>
            Derived implementations should return an integer value that represents the length of the data that was parsed, and zero if not
            enough data was able to be parsed. Note that exceptions are expensive when parsing fast moving streaming data and a good coding
            practice for implementations of this method will be to not throw an exception when there is not enough data to parse the data,
            instead check the <paramref name="length"/> property to verify there is enough buffer data to represent the desired image. If
            there is not enough data to represent the image return zero and base class will prepend buffer onto next incoming set of data.
            </para>
            <para>
            Because of the expense incurred when an exception is thrown, any exceptions encountered in the derived implementations of this method
            will cause the current data buffer to be discarded and a <see cref="E:GSF.Parsing.BinaryImageParserBase.ParsingException"/> event to be raised.  Doing this prevents
            exceptions from being thrown repeatedly for the same data. If your code implementation recognizes a malformed image, you can raise
            a custom event to indicate this instead of throwing as exception and keep moving through the buffer as an optimization.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.OnDataDiscarded(System.Byte[])">
            <summary>
            Raises the <see cref="E:GSF.Parsing.BinaryImageParserBase.DataDiscarded"/> event.
            </summary>
            <param name="buffer">Source buffer that contains output that failed to parse.</param>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.OnParsingException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Parsing.BinaryImageParserBase.ParsingException"/> event.
            </summary>
            <param name="ex">The <see cref="T:System.Exception"/> that was encountered during parsing.</param>
        </member>
        <member name="M:GSF.Parsing.BinaryImageParserBase.OnBufferParsed">
            <summary>
            Raises the <see cref="E:GSF.Parsing.BinaryImageParserBase.BufferParsed"/> event.
            </summary>
        </member>
        <member name="T:GSF.Parsing.BooleanExpression">
            <summary>
            Represents a boolean expression that can be parsed and executed at runtime.
            </summary>
            <remarks>
            Binary operators have the same level of precedence and are evaluated from right to left.
            </remarks>
        </member>
        <member name="T:GSF.Parsing.BooleanExpression.Variable">
            <summary>
            Represents a variable that can be tweaked at runtime.
            </summary>
        </member>
        <member name="F:GSF.Parsing.BooleanExpression.Variable.Identifier">
            <summary>
            The identifier used to refer to the variable.
            </summary>
        </member>
        <member name="F:GSF.Parsing.BooleanExpression.Variable.Value">
            <summary>
            The value of the variable.
            </summary>
        </member>
        <member name="M:GSF.Parsing.BooleanExpression.Variable.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.BooleanExpression.Variable"/> class.
            </summary>
            <param name="identifier">The identifier used to refer to the variable.</param>
        </member>
        <member name="M:GSF.Parsing.BooleanExpression.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.BooleanExpression"/> class.
            </summary>
            <param name="expressionText">The expression text to be parsed as a boolean expression.</param>
            <remarks>
            The default comparer for identifiers is <see cref="P:System.StringComparer.OrdinalIgnoreCase"/>.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.BooleanExpression.#ctor(System.String,System.Collections.Generic.IEqualityComparer{System.String})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.BooleanExpression"/> class.
            </summary>
            <param name="expressionText">The expression text to be parsed as a boolean expression.</param>
            <param name="identifierComparer">Comparer used to compare identifiers.</param>
        </member>
        <member name="P:GSF.Parsing.BooleanExpression.Variables">
            <summary>
            Gets the list of variables found while parsing the boolean expression.
            </summary>
        </member>
        <member name="P:GSF.Parsing.BooleanExpression.Item(System.String)">
            <summary>
            Gets the variable identified by the given identifier.
            </summary>
            <param name="identifier">The identifier used to refer to the variable.</param>
            <returns>The variable identified by the given identifier.</returns>
        </member>
        <member name="M:GSF.Parsing.BooleanExpression.Evaluate">
            <summary>
            Evaluates the expression using the
            current values of the variables.
            </summary>
            <returns>The result of the evalulation.</returns>
        </member>
        <member name="M:GSF.Parsing.BooleanExpression.TryGetVariable(System.String,GSF.Parsing.BooleanExpression.Variable@)">
            <summary>
            Attempts to get the variable identified by the given identifier.
            </summary>
            <param name="identifier">The identifier used to refer to the variable.</param>
            <param name="variable">The variable identified by the given identifier.</param>
            <returns>True if the variable is present in the expression; false otherwise.</returns>
        </member>
        <member name="T:GSF.Parsing.CommonHeaderBase`1">
            <summary>
            Represents the base class for a common binary image header implementation.
            </summary>
            <remarks>
            Here is an example of a possible derived class constructor that has an integer TypeID as the
            first 4 bytes in the image:
            <code>
            public CommonHeader(object state, byte[] binaryImage, int startIndex, int length)
            {
                if (length > 3)
                {
                    TypeID = LittleEndian.ToInt32(binaryImage, startIndex);
                    State = state;
                }
                else
                    throw new InvalidOperationException("Malformed image");
            }
            </code>
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
        </member>
        <member name="P:GSF.Parsing.CommonHeaderBase`1.TypeID">
            <summary>
            Gets or sets the identifier used for identifying the <see cref="T:System.Type"/> to be parsed.
            </summary>
        </member>
        <member name="P:GSF.Parsing.CommonHeaderBase`1.State">
            <summary>
            Gets or sets any additional state information that might be needed for parsing.
            </summary>
        </member>
        <member name="T:GSF.Parsing.FrameImageParserBase`2">
            <summary>
            This class defines a basic implementation of parsing functionality suitable for automating the parsing of
            a binary data stream represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <remarks>
            <para>
            This parser is designed as a write-only stream such that data can come from any source.
            </para>
            <para>
            This class is more specific than the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> in that it can automate the parsing of
            a particular protocol that is formatted as a series of frames that have a common method of identification.
            Automation of type creation occurs by loading implementations of common types that implement the
            <see cref="T:GSF.Parsing.ISupportFrameImage`1"/> interface. The common method of identification is handled by
            creating a class derived from the <see cref="T:GSF.Parsing.ICommonHeader`1"/> which primarily includes a
            TypeID property, but also should include any state information needed to parse a particular frame if
            necessary. Derived classes simply override the <see cref="M:GSF.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)"/> function in order to parse
            the <see cref="T:GSF.Parsing.ICommonHeader`1"/> from a provided binary image.
            </para>
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="E:GSF.Parsing.FrameImageParserBase`2.DataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one of the output types that the data
            image represents.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the object that was deserialized from the binary image.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.FrameImageParserBase`2.OutputTypeNotFound">
            <summary>
            Occurs when matching an output type for deserializing the data image could not be found.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the ID of the output type that could not be found.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.FrameImageParserBase`2.DuplicateTypeHandlerEncountered">
            <summary>
            Occurs when more than one type has been defined that can deserialize the specified output type.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the <see cref="T:System.Type"/> that defines a type ID that has already been defined.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the ID of the output type that was defined more than once.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.FrameImageParserBase`2"/> class.
            </summary>
        </member>
        <member name="P:GSF.Parsing.FrameImageParserBase`2.QueuedOutputs">
            <summary>
            Gets the total number of parsed outputs that are currently queued for publication, if any.
            </summary>
        </member>
        <member name="P:GSF.Parsing.FrameImageParserBase`2.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the frame image parser is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.Parsing.FrameImageParserBase`2.Status">
            <summary>
            Gets current status of <see cref="T:GSF.Parsing.FrameImageParserBase`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Parsing.FrameImageParserBase`2"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.Start">
            <summary>
            Start the data parser.
            </summary>
            <remarks>
            This overload loads public types from assemblies in the application binaries directory that implement the parser's output type.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.Start(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Starts the data parser given the specified type implementations.
            </summary>
            <param name="implementations">Output type implementations to establish for the parser.</param>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.ParseFrame(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Output type specific frame parsing algorithm.
            </summary>
            <param name="buffer">Buffer containing data to parse.</param>
            <param name="offset">Offset index into buffer that represents where to start parsing.</param>
            <param name="length">Maximum length of valid data from offset.</param>
            <returns>The length of the data that was parsed.</returns>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Parses a common header instance that implements <see cref="T:GSF.Parsing.ICommonHeader`1"/> for the output type represented
            in the binary image.
            </summary>
            <param name="buffer">Buffer containing data to parse.</param>
            <param name="offset">Offset index into buffer that represents where to start parsing.</param>
            <param name="length">Maximum length of valid data from offset.</param>
            <returns>The <see cref="T:GSF.Parsing.ICommonHeader`1"/> which includes a type ID for the <see cref="T:System.Type"/> to be parsed.</returns>
            <remarks>
            <para>
            Derived classes need to provide a common header instance (i.e., class that implements <see cref="T:GSF.Parsing.ICommonHeader`1"/>)
            for the output types; this will primarily include an ID of the <see cref="T:System.Type"/> that the data image represents.  This parsing is
            only for common header information, actual parsing will be handled by output type via its <see cref="M:GSF.Parsing.ISupportBinaryImage.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)"/>
            method. This header image should also be used to add needed complex state information about the output type being parsed if needed.
            </para>
            <para>
            If there is not enough buffer available to parse common header (as determined by <paramref name="length"/>), return null.  Also, if
            the protocol allows frame length to be determined at the time common header is being parsed and there is not enough buffer to parse
            the entire frame, it will be optimal to prevent further parsing by returning null.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.OnDataParsed(`1)">
            <summary>
            Raises the <see cref="E:GSF.Parsing.FrameImageParserBase`2.DataParsed"/> event.
            </summary>
            <param name="output">The object that was deserialized from binary image.</param>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.PublishParsedOutput(GSF.EventArgs{`1})">
            <summary>
            <see cref="T:GSF.Collections.AsyncQueue`1"/> handler used to publish queued outputs.
            </summary>
            <param name="outputArgs">Event args containing new output to publish.</param>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.OnOutputTypeNotFound(`0)">
            <summary>
            Raises the <see cref="E:GSF.Parsing.FrameImageParserBase`2.OutputTypeNotFound"/> event.
            </summary>
            <param name="id">The ID of the output type that was not found.</param>
        </member>
        <member name="M:GSF.Parsing.FrameImageParserBase`2.OnDuplicateTypeHandlerEncountered(System.Type,`0)">
            <summary>
            Raises the <see cref="E:GSF.Parsing.FrameImageParserBase`2.DuplicateTypeHandlerEncountered"/> event.
            </summary>
            <param name="duplicateType">The <see cref="T:System.Type"/> that defines a type ID that has already been defined.</param>
            <param name="id">The ID of the output type that was defined more than once.</param>
        </member>
        <member name="T:GSF.Parsing.IBinaryImageParser">
            <summary>
            This interface represents the protocol independent representation of a streaming data parser.
            </summary>
        </member>
        <member name="E:GSF.Parsing.IBinaryImageParser.DataDiscarded">
            <summary>
            Occurs when data image fails deserialization due to an exception.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the remaining portion of the binary image that failed to parse.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.IBinaryImageParser.ParsingException">
            <summary>
            Occurs when an <see cref="T:System.Exception"/> is encountered while attempting to parse data.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered while parsing data.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.IBinaryImageParser.Start">
            <summary>
            Start the streaming data parser.
            </summary>
        </member>
        <member name="M:GSF.Parsing.IBinaryImageParser.Stop">
            <summary>
            Stops the streaming data parser.
            </summary>
        </member>
        <member name="P:GSF.Parsing.IBinaryImageParser.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the data parser is currently enabled.
            </summary>
        </member>
        <member name="P:GSF.Parsing.IBinaryImageParser.TotalProcessedBuffers">
            <summary>
            Gets the total number of buffer images processed so far.
            </summary>
        </member>
        <member name="M:GSF.Parsing.IBinaryImageParser.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Writes a sequence of bytes onto the <see cref="T:GSF.Parsing.IBinaryImageParser"/> stream for parsing.
            </summary>
            <param name="buffer">An array of bytes. This method copies count bytes from buffer to the current stream.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
        </member>
        <member name="T:GSF.Parsing.ICommonHeader`1">
            <summary>
            Defines the common header of a frame image for a set of parsed types, consisting at least of a type ID.
            </summary>
            <remarks>
            Header implementations can extend this interface as necessary to accomodate protocol specific header images.
            </remarks>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
        </member>
        <member name="P:GSF.Parsing.ICommonHeader`1.TypeID">
            <summary>
            Gets or sets the identifier used for identifying the <see cref="T:System.Type"/> to be parsed.
            </summary>
        </member>
        <member name="P:GSF.Parsing.ICommonHeader`1.State">
            <summary>
            Gets or sets any additional state information that might be needed for parsing.
            </summary>
        </member>
        <member name="T:GSF.Parsing.IFrameImageParser`2">
            <summary>
            This interface represents a basic implementation of parsing functionality suitable for automating the parsing of
            a binary data stream represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="E:GSF.Parsing.IFrameImageParser`2.DataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one of the output types that the data
            image represents.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the object that was deserialized from the binary image.
            </remarks>
        </member>
        <member name="E:GSF.Parsing.IFrameImageParser`2.OutputTypeNotFound">
            <summary>
            Occurs when matching a output type for deserializing the data image cound not be found.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the ID of the output type that could not be found.
            </remarks>
        </member>
        <member name="T:GSF.Parsing.ISupportBinaryImage">
            <summary>
            Specifies that an object can support production or consumption of a binary image that represents the object.
            </summary>
        </member>
        <member name="P:GSF.Parsing.ISupportBinaryImage.BinaryLength">
            <summary>
            Gets the length of the binary image.
            </summary>
        </member>
        <member name="M:GSF.Parsing.ISupportBinaryImage.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes object by parsing the specified <paramref name="buffer"/> containing a binary image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> to read from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <remarks>
            Implementers should validate <paramref name="startIndex"/> and <paramref name="length"/> against <paramref name="buffer"/> length.
            The <see cref="M:GSF.ArrayExtensions.ValidateParameters``1(``0[],System.Int32,System.Int32)"/> method can be used to perform this validation.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.ISupportBinaryImage.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the object and copies it into the given buffer, for <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <remarks>
            Implementers should validate <paramref name="startIndex"/> and <see cref="P:GSF.Parsing.ISupportBinaryImage.BinaryLength"/> against <paramref name="buffer"/> length.
            The <see cref="M:GSF.ArrayExtensions.ValidateParameters``1(``0[],System.Int32,System.Int32)"/> method can be used to perform this validation.
            </remarks>
        </member>
        <member name="T:GSF.Parsing.ISupportBinaryImageExtensions">
            <summary>
            Defines extension functions related to <see cref="T:GSF.Parsing.ISupportBinaryImage"/> implementations.
            </summary>
        </member>
        <member name="M:GSF.Parsing.ISupportBinaryImageExtensions.BinaryImage(GSF.Parsing.ISupportBinaryImage)">
            <summary>
            Returns a binary image of an object that implements <see cref="T:GSF.Parsing.ISupportBinaryImage"/>.
            </summary>
            <param name="imageSource"><see cref="T:GSF.Parsing.ISupportBinaryImage"/> source.</param>
            <returns>A binary image of an object that implements <see cref="T:GSF.Parsing.ISupportBinaryImage"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="imageSource"/> cannot be null.</exception>
            <remarks>
            This is a convenience method. It is often optimal to use <see cref="M:GSF.Parsing.ISupportBinaryImage.GenerateBinaryImage(System.Byte[],System.Int32)"/>
            directly using a common buffer instead of always allocating new buffers.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.ISupportBinaryImageExtensions.CopyBinaryImageToStream(GSF.Parsing.ISupportBinaryImage,System.IO.Stream)">
            <summary>
            Copies binary image of object that implements <see cref="T:GSF.Parsing.ISupportBinaryImage"/> to a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="imageSource"><see cref="T:GSF.Parsing.ISupportBinaryImage"/> source.</param>
            <param name="stream">Destination <see cref="T:System.IO.Stream"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="imageSource"/> cannot be null.</exception>
        </member>
        <member name="M:GSF.Parsing.ISupportBinaryImageExtensions.ParseBinaryImageFromStream(GSF.Parsing.ISupportBinaryImage,System.IO.Stream)">
            <summary>
            Parses binary image of object that implements <see cref="T:GSF.Parsing.ISupportBinaryImage"/> from a <see cref="T:System.IO.Stream"/>.
            </summary>
            <param name="imageSource"><see cref="T:GSF.Parsing.ISupportBinaryImage"/> source.</param>
            <param name="stream">Source <see cref="T:System.IO.Stream"/>.</param>
            <returns>The number of bytes parsed from the <paramref name="stream"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="imageSource"/> cannot be null.</exception>
        </member>
        <member name="T:GSF.Parsing.ISupportFrameImage`1">
            <summary>
            Specifies that this <see cref="T:System.Type"/> can produce or consume a frame of data represented as a binary image.
            </summary>
            <remarks>
            Related types of protocol data that occur as frames in a stream can implement this interface for automated parsing
            via the <see cref="T:GSF.Parsing.FrameImageParserBase`2"/> class.
            </remarks>
            <typeparam name="TTypeIdentifier">Type of the frame identifier.</typeparam>
        </member>
        <member name="P:GSF.Parsing.ISupportFrameImage`1.CommonHeader">
            <summary>
            Gets or sets current <see cref="T:GSF.Parsing.ICommonHeader`1"/>.
            </summary>
            <remarks>
            If used, this will need to be set before call to <see cref="M:GSF.Parsing.ISupportBinaryImage.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)"/>.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.ISupportFrameImage`1.TypeID">
            <summary>
            Gets the identifier that can be used for identifying the <see cref="T:System.Type"/>.
            </summary>
            <remarks>
            <para>
            <see cref="P:GSF.Parsing.ISupportFrameImage`1.TypeID"/> must be unique across all siblings implementing a common <see cref="T:System.Type"/> or interface.
            </para>
            <para>
            Output types implement this class so they have a consistently addressable identification property.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.Parsing.ISupportFrameImage`1.AllowQueuedPublication">
            <summary>
            Gets flag that determines if frame image can queued for publication or should be processed immediately.
            </summary>
            <remarks>
            Some frames, e.g., a configuration or key frame, may be critical to processing of other frames. In this
            case, these types of frames should be published immediately so that subsequent frame parsing can have
            access to needed critical information.
            </remarks>
        </member>
        <member name="T:GSF.Parsing.ISupportSourceIdentifiableFrameImage`2">
            <summary>
            Specifies that this <see cref="T:System.Type"/> can produce or consume a frame of data represented as a binary image
            that can be identified by its data source.
            </summary>
            <remarks>
            Related types of protocol data that occur as frames in a stream can implement this interface for automated parsing
            via the <see cref="T:GSF.Parsing.MultiSourceFrameImageParserBase`3"/> class.
            </remarks>
            <typeparam name="TSourceIdentifier">Type of identifier for the data source.</typeparam>
            <typeparam name="TTypeIdentifier">Type of the frame identifier.</typeparam>
        </member>
        <member name="P:GSF.Parsing.ISupportSourceIdentifiableFrameImage`2.Source">
            <summary>
            Gets or sets the data source identifier of the frame image.
            </summary>
        </member>
        <member name="T:GSF.Parsing.MultiSourceFrameImageParserBase`3">
            <summary>
            This class defines a basic implementation of parsing functionality suitable for automating the parsing of multiple
            binary data streams, each represented as frames with common headers and returning the parsed data via an event.
            </summary>
            <remarks>
            <para>
            This parser is designed as a write-only stream such that data can come from any source.
            </para>
            <para>
            This class is more specific than the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> in that it can automate the parsing of a
            particular protocol that is formatted as a series of frames that have a common method of identification.
            Automation of type creation occurs by loading implementations of common types that implement the
            <see cref="T:GSF.Parsing.ISupportSourceIdentifiableFrameImage`2"/> interface. The common method of
            identification is handled by creating a class derived from the <see cref="T:GSF.Parsing.ICommonHeader`1"/> which primarily
            includes a TypeID property, but also should include any state information needed to parse a particular frame if necessary.
            Derived classes override the <see cref="M:GSF.Parsing.FrameImageParserBase`2.ParseCommonHeader(System.Byte[],System.Int32,System.Int32)"/>
            method in order to parse the <see cref="T:GSF.Parsing.ICommonHeader`1"/> from a provided binary image.
            </para>
            </remarks>
            <typeparam name="TSourceIdentifier">Type of identifier for the data source.</typeparam>
            <typeparam name="TTypeIdentifier">Type of identifier used to distinguish output types.</typeparam>
            <typeparam name="TOutputType">Type of the interface or class used to represent outputs.</typeparam>
        </member>
        <member name="T:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer">
            <summary>
            Represents a source identifiable buffer.
            </summary>
            <remarks>
            This class implements <see cref="T:GSF.ISupportLifecycle"/> such that it will support
            automatic object pool handling, e.g., returning object to pool when disposed.
            </remarks>
        </member>
        <member name="F:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Source">
            <summary>
            Defines the source identifier of the <see cref="F:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer"/>.
            </summary>
        </member>
        <member name="F:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer">
            <summary>
            Defines the buffer which is identifiable by its associated <see cref="F:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Source"/>.
            </summary>
        </member>
        <member name="P:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Enabled">
            <summary>
            Gets or sets enabled state of <see cref="T:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer"/>.
            </summary>
        </member>
        <member name="P:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Count">
            <summary>
            Gets or sets valid number of bytes within the <see cref="F:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceIdentifiableBuffer.Buffer"/>.
            </summary>
            <remarks>   
            This property will automatically initialize buffer. Set to zero to release buffer. 
            </remarks>
        </member>
        <member name="E:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceDataParsed">
            <summary>
            Occurs when a data image is deserialized successfully to one or more of the output types that the data image represents.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the ID of the source for the data image.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is a list of objects deserialized from the data image.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Parsing.MultiSourceFrameImageParserBase`3"/> class.
            </summary>
        </member>
        <member name="P:GSF.Parsing.MultiSourceFrameImageParserBase`3.QueuedBuffers">
            <summary>
            Gets the total number of buffers that are currently queued for processing, if any.
            </summary>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Start">
            <summary>
            Start the streaming data parser.
            </summary>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Start(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Starts the data parser given the specified type implementations.
            </summary>
            <param name="implementations">Output type implementations to establish for the parser.</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[])">
            <summary>
            Queues a sequence of bytes, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="buffer">An array of bytes to queue for parsing</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Queues a sequence of bytes, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="buffer">An array of bytes. This method copies count bytes from buffer to the queue.</param>
            <param name="offset">The zero-based byte offset in buffer at which to begin copying bytes to the current stream.</param>
            <param name="count">The number of bytes to be written to the current stream.</param>
            <remarks>
            This method associates a buffer with its data source identifier.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,GSF.Parsing.ISupportBinaryImage)">
            <summary>
            Queues the object implementing the <see cref="T:GSF.Parsing.ISupportBinaryImage"/> interface, from the specified data source, onto the stream for parsing.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <param name="image">Object to be parsed that implements the <see cref="T:GSF.Parsing.ISupportBinaryImage"/> interface.</param>
            <remarks>
            This method takes the binary image from <see cref="T:GSF.Parsing.ISupportBinaryImage"/> and writes the buffer to the <see cref="T:GSF.Parsing.BinaryImageParserBase"/> stream for parsing.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.PurgeBuffer(`0)">
            <summary>
            Clears the internal buffer of unparsed data received from the specified <paramref name="source"/>.
            </summary>
            <param name="source">Identifier of the data source.</param>
            <remarks>
            This method can be used to ensure that partial data received from the <paramref name="source"/> is not kept in memory indefinitely.
            </remarks>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(GSF.Parsing.ISupportBinaryImage)">
            <summary>
            Not implemented. Consumers should call the <see cref="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,GSF.Parsing.ISupportBinaryImage)"/> method instead to make sure data source source ID gets tracked with data buffer.
            </summary>
            <exception cref="T:System.NotImplementedException">This method should not be called directly.</exception>
            <param name="image">A <see cref="T:GSF.Parsing.ISupportBinaryImage"/>.</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Not implemented. Consumers should call the <see cref="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.Parse(`0,System.Byte[],System.Int32,System.Int32)"/> method instead to make sure data source source ID gets tracked with data buffer.
            </summary>
            <exception cref="T:System.NotImplementedException">This method should not be called directly.</exception>
            <param name="buffer">A <see cref="T:System.Byte"/> array.</param>
            <param name="count">An <see cref="T:System.Int32"/> for the offset.</param>
            <param name="offset">An <see cref="T:System.Int32"/> for the count.</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.OnDataParsed(`2)">
            <summary>
            Raises the <see cref="E:GSF.Parsing.FrameImageParserBase`2.DataParsed"/> event.
            </summary>
            <param name="output">The object that was deserialized from binary image.</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.OnSourceDataParsed(`0,System.Collections.Generic.IList{`2})">
            <summary>
            Raises the <see cref="E:GSF.Parsing.MultiSourceFrameImageParserBase`3.SourceDataParsed"/> event.
            </summary>
            <param name="source">Identifier for the data source.</param>
            <param name="output">The objects that were deserialized from binary images from the <paramref name="source"/> data stream.</param>
        </member>
        <member name="M:GSF.Parsing.MultiSourceFrameImageParserBase`3.OnDataDiscarded(System.Byte[])">
            <summary>
            Raises the <see cref="E:GSF.Parsing.BinaryImageParserBase.DataDiscarded"/> event.
            </summary>
            <param name="buffer">Source buffer that contains output that failed to parse.</param>
        </member>
        <member name="T:GSF.Parsing.NamespaceDoc">
            <summary>
            Contains classes used to simplify, standardize and automate any kind of stream based parsing operation.
            </summary>
        </member>
        <member name="T:GSF.Parsing.StringParser">
            <summary>
            Like the Excel CSV Parser, only better.
            </summary>
        </member>
        <member name="M:GSF.Parsing.StringParser.GetBetweenDelimiters(System.String,System.Int32@,System.Char,System.Char,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Returns the string that is between two delimiter strings beginning the first startDelimiter found.
            ALSO, returns the index of the payload (the index of the first char past the startDelimiter)
            </summary>
            <param name="inString">The input string</param>
            <param name="startToken">The beginning token or delimiter</param>
            <param name="endToken">The ending token or delimiter</param>
            <param name="startIndex">The index on which to begin searching inString</param>
            <param name="matchCase">set to FALSE for case insensitive test for delimiters</param>
            <param name="includeTokensInReturn">set to TRUE for the return string to include the opening and closing tokens.</param>
            <param name="payloadIndex"></param>
            <returns>A string, and the string starting index (payload Index)</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndicesOfToken(System.String,System.Char,System.Int32,System.Boolean)">
            <summary>
            Returns an array indices where the token char was found.  Null for no tokens found.
            </summary>
            <param name="inString">The string to process</param>
            <param name="token">The token string sought</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndicesOfToken(System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            Returns an array of indices where the token string was found
            </summary>
            <param name="inString">The string to process</param>
            <param name="token">The token string sought</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>null for no tokens found</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndicesOfTokens(System.String,System.Char[],System.Int32,System.Boolean)">
            <summary>
            Returns an array of the indices where the token chars were found.  Null for no tokens found.
            </summary>
            <param name="inString">The string to process</param>
            <param name="tokens">The char array of the tokens</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfNextToken(System.String,System.Char,System.Int32,System.Int32,System.Boolean)">
            <summary>
             Finds the index of the "n" occurrence of a character (a token) within a string
            </summary>
            <param name="inString">The string to process.</param>
            <param name="token">The token character sought</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="occurrenceCount">The occurrence sought</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>Returns the starting index of the nth occurrence of a character.
             Returns -1 if nth occurrence does not exist.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfNextToken(System.String,System.String,System.Int32,System.Int32,System.Boolean)">
            <summary>
             Finds the index of the "n" occurrence of one string (a token) within another
            </summary>
            <param name="inString">The string to process.</param>
            <param name="token">The string to find</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="occurrenceCount">The occurrence of the token sought</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>Returns the starting index of the nth occurrence of a string. 
            Returns -1 if nth occurrence does not exist.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfNextTokens(System.String,System.Char[],System.Int32,System.Boolean)">
            <summary>
             Finds the index of the "n" occurrence any one of the chars in the token array within a string
            </summary>
            <param name="inString">The string to process.</param>
            <param name="tokens">The token characters sought</param>
            <param name="startIndex">The index from which to begin searching inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>Returns the starting index of the nth occurrence of a character.
             Returns -1 if nth occurrence does not exist.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfPreviousToken(System.String,System.Char,System.Int32,System.Int32,System.Boolean)">
            <summary>
             Processing from RIGHT to LEFT, finds the index of the "n" occurrence of a character (a token) within a string
            </summary>
            <param name="inString">The string to process.</param>
            <param name="token">The token character sought</param>
            <param name="startIndex">Default of zero (0) begins testing end of inString, otherwise
            The index from with to begin processing inString from RIGHT to LEFT</param>
            <param name="occurrenceCount">The occurrence sought</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>Returns the starting index of the nth occurrence of a character.
            Returns -1 if nth occurrence does not exist.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfPreviousToken(System.String,System.String,System.Int32,System.Int32,System.Boolean)">
            <summary>
             Processing from RIGHT to LEFT, finds the index of the "n"occurrence of one string (a token) within a string
            </summary>
            <param name="inString">The string to process.</param>
            <param name="token">The token string sought</param>
            <param name="startIndex">Default of zero (0) begins testing end of inString, otherwise
            The index from with to begin processing inString from RIGHT to LEFT</param>
            <param name="occurrenceCount">The occurrence sought</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns>Returns the starting index of the nth occurrence of a string.
            Returns -1 if nth occurrence does not exist.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfMatchingCloseToken(System.String,System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            Looks to the RIGHT for the first open token and returns the matching close token
            </summary>
            <param name="inString">The string to process</param>
            <param name="openToken"></param>
            <param name="closeToken"></param>
            <param name="startIndex">The index from with to begin processing inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.IndexOfMatchingCloseToken(System.String,System.Char,System.Char,System.Int32,System.Boolean)">
            <summary>
            Looks to the RIGHT for the first open token and returns the matching close token
            </summary>
            <param name="inString">The string to process</param>
            <param name="openToken"></param>
            <param name="closeToken"></param>
            <param name="startIndex">The index from with to begin processing inString</param>
            <param name="matchCase">Set to FALSE for case insensitive search</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.ParseStandardCSV(System.String,System.Int32,System.Boolean)">
            <summary>
            Parses a line based on a comma as the separator.  Commas wrapped in matched double quotes are not separators.  
            Matched double quotes are normally removed prior to field return.  Fields are NOT trimmed of white spaces prior to return.
            </summary>
            <param name="inString">The string to parse.</param>
            <param name="startIndex">The index in the line from which to start parsing.</param>
            <param name="removeResultQuotes">Set to TRUE to unwrap quotes in returned array vis-a-vis Excel.</param>
            <returns>An array of the parsed strings (the fields within the line)</returns>
            <remarks>The string.split method is about 4 times faster.</remarks>
        </member>
        <member name="M:GSF.Parsing.StringParser.ParseLine(System.String,System.Char[],System.Char[],System.Int32,System.Boolean)">
            <summary>
            Parses a line based on a collection of quote and delimiter characters,
            </summary>
            <param name="inString">The string to parse</param>
            <param name="quoteChars">
                          An array of characters to be used as the framing within fields or the "quote" characters.  Quotes must matched. 
                          Set to null to disable (split line at delimiter regardless of quotes).</param>
            <param name="delimiters">An array of characters to be used as delimiter characters.  These characters have equal weight in breaking up the line.</param>
            <param name="startIndex">The index in the line from which to start parsing.</param>
            <param name="removeResultQuotes">Set to TRUE to unwrap quotes in returned array vis-a-vis Excel.</param>
            <returns>An array of the parsed strings</returns>
            <remarks>The string.split method is about 12 times faster.</remarks>
        </member>
        <member name="M:GSF.Parsing.StringParser.ParseCheck(System.String[],System.TypeCode[],System.Object[]@)">
            <summary>
            Parses strings and validates they match expected type codes.
            </summary>
            <param name="parsedStrings"></param>
            <param name="expectedTypeCodes"></param>
            <param name="values">the returned values from the try parse.</param>
            <returns>TRUE if all values parse successfully.</returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.ExpectedFieldNamesMatch(System.String[],System.String[],System.Boolean,System.Int32,System.Int32)">
            <summary>
            Validates that expected field names match field names found.
            </summary>
            <param name="expectedFieldNames">The string array of expected field names.</param>
            <param name="actualFieldNames">The string array of actual field names.</param>
            <param name="matchCase">Set to TRUE to require case to match.</param>
            <param name="length">The number of fields to check.  Less than 1 sets length to expectedFieldName length</param>
            <param name="startIndex">The index to use to start matching test.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Parsing.StringParser.FindIndex(System.String,System.String[],System.Boolean,System.Boolean)">
            <summary>
            Finds the index of the first matching (or containing) field name
            </summary>
            <param name="fieldNameValueSought">the field name to find</param>
            <param name="fieldNames">the string array of fields</param>
            <param name="matchCase">set to FALSE for case insensitive tests</param>
            <param name="contains">Set to TRUE to find index that CONTAINS the fileNameValueSought</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Parsing.TemplatedExpressionParser">
            <summary>
            Represents a template based token substitution parser that supports binary and advanced expressions.
            </summary>
            <remarks>
            <para>
            As an example, this parser can use a templated expression of the form:
            <code>
            {CompanyAcronym}_{DeviceAcronym}[?{SignalType.Source}=Phasor[-{SignalType.Suffix}{SignalIndex}]]:{Signal.Acronymn}
            </code>
            then replace the tokens with actual values and properly evaluate the expressions.
            Example results could look like: GPA_SHELBY-PA1:IPHA and GPA_SHELBY:FREQ
            </para>
            <para>
            Parser also supports more complex C# style expressions using the "eval{}" function, e.g.:
            <code>
            eval{'{CompanyAcronym}'.Substring(0,3)}_{DeviceAcronym}eval{'[?{SignalType.Source}=Phasor[-{SignalType.Suffix}]]'.Length}
            </code>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Parsing.TemplatedExpressionParser.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Parsing.TemplatedExpressionParser"/>.
            </summary>
        </member>
        <member name="M:GSF.Parsing.TemplatedExpressionParser.#ctor(System.Char,System.Char,System.Char,System.Char)">
            <summary>
            Creates a new <see cref="T:GSF.Parsing.TemplatedExpressionParser"/> with desired delimiters.
            </summary>
            <param name="startTokenDelimiter">Character that identifies the beginning of a token.</param>
            <param name="endTokenDelimiter">Character that identifies the end of a token.</param>
            <param name="startExpressionDelimiter">Character that identifies the beginning of an expression.</param>
            <param name="endExpressionDelimiter">Character that identifies the beginning of an expression.</param>
            <exception cref="T:System.ArgumentException">
            All delimiters must be unique -- or -- the symbol <c>'u'</c> is reserved for encoding and cannot be used as a delimiter.
            </exception>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.TemplatedExpression">
            <summary>
            Gets or sets the templated expression to use.
            </summary>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.ReservedSymbols">
            <summary>
            Gets the reserved symbols - this includes all delimiters and expression operators.
            </summary>
            <remarks>
            The default reserved symbol list is: <c>'\', '&lt;', '&gt;', '=', '!', '{', '}', '[', ']'</c>.
            </remarks>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.StartTokenDelimiter">
            <summary>
            Gets the character that identifies the beginning of a token.
            </summary>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.EndTokenDelimiter">
            <summary>
            Gets the character that identifies the end of a token.
            </summary>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.StartExpressionDelimiter">
            <summary>
            Gets the character that identifies the start of an expression.
            </summary>
        </member>
        <member name="P:GSF.Parsing.TemplatedExpressionParser.EndExpressionDelimiter">
            <summary>
            Gets the character that identifies the end of an expression.
            </summary>
        </member>
        <member name="M:GSF.Parsing.TemplatedExpressionParser.Execute(System.Collections.Generic.IDictionary{System.String,System.String},System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Executes replacements using provided <paramref name="substitutions"/> dictionary on the currently defined
            <see cref="P:GSF.Parsing.TemplatedExpressionParser.TemplatedExpression"/> value and optionally evaluates any expressions.
            </summary>
            <param name="substitutions">Dictionary of substitutions. Dictionary keys are tokens to be replaced by the values.</param>
            <param name="ignoreCase">Determines if substitutions should be case insensitive. Defaults to <c>true</c>.</param>
            <param name="evaluateExpressions">Determines if expressions should be evaluated. Defaults to <c>true</c>.</param>
            <param name="escapeSubstitutionValues">Determines if reserved symbols in substitution values should be automatically escaped. Defaults to <c>true</c>.</param>
            <returns>A string that was based on <see cref="P:GSF.Parsing.TemplatedExpressionParser.TemplatedExpression"/> with tokens replaced and expressions evaluated.</returns>
            <remarks>
            <para>
            The default token start and end delimiters are { and } but can be overridden in <see cref="T:GSF.Parsing.TemplatedExpressionParser"/> constructor.
            All substitution tokens surrounded by <see cref="P:GSF.Parsing.TemplatedExpressionParser.StartTokenDelimiter"/> and <see cref="P:GSF.Parsing.TemplatedExpressionParser.EndTokenDelimiter"/> (e.g., {token})
            will be immediately replaced with their string equivalents before further expression evaluation. As a result of the expression
            syntax &lt;, &gt;, =, and ! are reserved expressions symbols; <see cref="P:GSF.Parsing.TemplatedExpressionParser.StartTokenDelimiter"/>, <see cref="P:GSF.Parsing.TemplatedExpressionParser.EndTokenDelimiter"/>,
            <see cref="P:GSF.Parsing.TemplatedExpressionParser.StartExpressionDelimiter"/> and <see cref="P:GSF.Parsing.TemplatedExpressionParser.EndExpressionDelimiter"/> are reserved delimiter symbols. To embed any reserved
            symbol into the <see cref="P:GSF.Parsing.TemplatedExpressionParser.TemplatedExpression"/> so that it appears in the evaluated result, escape the symbol by prefixing it
            with a backslash, e.g., \{.
            </para>
            <para>
            The default expression start and end delimiters are [ and ] but can be overridden in <see cref="T:GSF.Parsing.TemplatedExpressionParser"/> constructor.
            Expressions are represented in the form of [?expression[result]] and can be nested, e.g. ([?expression1[?expression2[result]]]).
            Expressions should not contain extraneous white space for proper evaluation. Only simple boolean comparison operations are allowed
            in expressions, e.g., A=B (or A==B), A!=B (or A&lt;&gt;B), A&gt;B, A&gt;=B, A&lt;B and A&lt;=B - nothing more. Any expression that
            fails to evaluate will be evaluated as FALSE. Note that if both left (A) and right (B) operands can be parsed as a numeric value then
            the expression will be numerically evaluated otherwise expression will be a culture-invariant string comparison. Nested expressions
            are evaluated as cumulative AND operators. There is no defined nesting limit.
            </para>
            <para>
            Advanced expressions can be parsed using the eval function, e.g., eval{1 + 2}. Eval function expression is delimited by the currently
            defined token delimiters, { and } by default. The evaluation engine deals with numbers and strings. The typing of numeric literals
            follow C# standards, suffixes such as d, f and m may be used to explicitly specify the numeric type. If no numeric suffix is provided,
            the default type of a numeric literal is assumed to be <see cref="T:System.Int32"/>. String literals should be specified using single quotes
            instead of double quotes, this includes substitution parameters, e.g., <c>eval{'{DeviceAcronym}'.Length + 1}</c>. Advanced evaluation
            expressions using the eval function are always parsed after common expressions. Eval functions cannot be nested.
            </para>
            <para>
            When <paramref name="evaluateExpressions"/> is <c>true</c> and values in <paramref name="substitutions"/> intentionally contain
            expressions to be evaluated, then <paramref name="escapeSubstitutionValues"/> should be set to <c>false</c> so that the reserved
            symbols in the values are not automatically escaped.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.TimerCapabilities">
            <summary>
            Represents information about the system's multimedia timer capabilities.
            </summary>
        </member>
        <member name="F:GSF.TimerCapabilities.PeriodMinimum">
            <summary>Minimum supported period in milliseconds.</summary>
        </member>
        <member name="F:GSF.TimerCapabilities.PeriodMaximum">
            <summary>Maximum supported period in milliseconds.</summary>
        </member>
        <member name="T:GSF.TimerStartException">
            <summary>
            Represents an exception that is thrown when a <see cref="T:GSF.PrecisionTimer"/> fails to start.
            </summary>
        </member>
        <member name="M:GSF.TimerStartException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.TimerStartException"/> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="T:GSF.PrecisionTimer">
            <summary>
            Represents a high-resolution timer and timestamp class.
            </summary>
            <remarks>
            For Windows deployments, implementation is based on the Windows multimedia timer. For other
            deployments, e.g., POSIX, implementation uses a basic timer for compatibility - this should
            have ~10ms of resolution when used on standard Linux systems.
            </remarks>
        </member>
        <member name="E:GSF.PrecisionTimer.Started">
            <summary>
            Occurs when the <see cref="T:GSF.PrecisionTimer"/> has started.
            </summary>
        </member>
        <member name="E:GSF.PrecisionTimer.Stopped">
            <summary>
            Occurs when the <see cref="T:GSF.PrecisionTimer"/> has stopped.
            </summary>
        </member>
        <member name="E:GSF.PrecisionTimer.Tick">
            <summary>
            Occurs when the <see cref="T:GSF.PrecisionTimer"/> period has elapsed.
            </summary>
        </member>
        <member name="M:GSF.PrecisionTimer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.PrecisionTimer"/> class.
            </summary>
        </member>
        <member name="M:GSF.PrecisionTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.PrecisionTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.PrecisionTimer.Period">
            <summary>
            Gets or sets the time between <see cref="E:GSF.PrecisionTimer.Tick"/> events, in milliseconds.
            </summary>
            <exception cref="T:System.ObjectDisposedException">
            If the timer has already been disposed.
            </exception>
        </member>
        <member name="P:GSF.PrecisionTimer.Resolution">
            <summary>
            Gets or sets the <see cref="T:GSF.PrecisionTimer"/> resolution, in milliseconds.
            </summary>
            <exception cref="T:System.ObjectDisposedException">
            If the timer has already been disposed.
            </exception>
            <remarks>
            <para>
            The resolution is in milliseconds. The resolution increases  with smaller values;
            a resolution of 0 indicates periodic events should occur with the greatest possible
            accuracy. To reduce system  overhead, however, you should use the maximum value
            appropriate for your application.
            </para>
            <para>
            This property is currently ignored under Mono deployments.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.PrecisionTimer.AutoReset">
            <summary>
            Gets or sets a value indicating whether the <see cref="T:GSF.PrecisionTimer"/> should raise the
            <see cref="E:GSF.PrecisionTimer.Tick"/> event each time the specified period elapses or only after the first
            time it elapses.
            </summary>
            <remarks>
            </remarks>
            <returns>
            <c>true</c>true if the <see cref="T:GSF.PrecisionTimer"/> should raise the <see cref="T:GSF.Ticks"/>
            event each time the interval elapses; <c>false</c> if it should raise the event only once
            after the first time the interval elapses. The default is <c>true</c>.
            </returns>
        </member>
        <member name="P:GSF.PrecisionTimer.IsRunning">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.PrecisionTimer"/> is running.
            </summary>
        </member>
        <member name="P:GSF.PrecisionTimer.EventArgs">
            <summary>
            Gets <see cref="T:System.EventArgs"/> specified in <see cref="M:GSF.PrecisionTimer.Start(System.EventArgs)"/> used to pass into <see cref="E:GSF.PrecisionTimer.Tick"/> event.
            </summary>
        </member>
        <member name="M:GSF.PrecisionTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.PrecisionTimer"/> object.
            </summary>
        </member>
        <member name="M:GSF.PrecisionTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.PrecisionTimer"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.PrecisionTimer.Start">
            <summary>
            Starts the <see cref="T:GSF.PrecisionTimer"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">
            The timer has already been disposed.
            </exception>
            <exception cref="T:GSF.TimerStartException">
            The timer failed to start.
            </exception>
        </member>
        <member name="M:GSF.PrecisionTimer.Start(System.EventArgs)">
            <summary>
            Starts the <see cref="T:GSF.PrecisionTimer"/> with the specified <see cref="P:GSF.PrecisionTimer.EventArgs"/>.
            </summary>
            <param name="userArgs">User defined event arguments to pass into raised <see cref="T:GSF.Ticks"/> event.</param>
            <exception cref="T:System.ObjectDisposedException">
            The timer has already been disposed.
            </exception>
            <exception cref="T:GSF.TimerStartException">
            The timer failed to start.
            </exception>
        </member>
        <member name="M:GSF.PrecisionTimer.Stop">
            <summary>
            Stops <see cref="T:GSF.PrecisionTimer"/>.
            </summary>
            <exception cref="T:System.ObjectDisposedException">
            If the timer has already been disposed.
            </exception>
        </member>
        <member name="P:GSF.PrecisionTimer.Capabilities">
            <summary>
            Gets the system multimedia timer capabilities.
            </summary>
        </member>
        <member name="M:GSF.PrecisionTimer.SetMinimumTimerResolution(System.Int32)">
            <summary>
            Requests a minimum resolution for periodic timers such as the <see cref="T:GSF.PrecisionTimer"/>.
            </summary>
            <param name="period">
            Minimum timer resolution, in milliseconds, for the application. A lower value specifies a higher (more accurate) resolution.
            </param>
            <remarks>
            <para>
            Call this function immediately before using the <see cref="T:GSF.PrecisionTimer"/> and call <see cref="M:GSF.PrecisionTimer.ClearMinimumTimerResolution(System.Int32)"/>
            immediately after you are finished using the PrecisionTimer. You must match each call to <see cref="M:GSF.PrecisionTimer.SetMinimumTimerResolution(System.Int32)"/>
            with a call to ClearMinimumTimerResolution specifying the same minimum resolution <paramref name="period"/> in both calls.
            An application can make multiple ClearMinimumTimerResolution calls as long as each call is matched with a call to ClearMinimumTimerResolution.
            This function affects a global Windows setting. Windows uses the lowest value (that is, highest resolution) requested by any process.
            Setting a higher resolution can improve the accuracy of time-out intervals in wait functions. However, it can also reduce overall system
            performance, because the thread scheduler switches tasks more often. High resolutions can also prevent the CPU power management system from
            entering power-saving modes. See timeBeginPeriod Windows API for more information.
            </para>
            <para>
            This method is currently ignored under Mono deployments.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.PrecisionTimer.ClearMinimumTimerResolution(System.Int32)">
            <summary>
            Clears a previously set minimum timer resolution established using <see cref="M:GSF.PrecisionTimer.SetMinimumTimerResolution(System.Int32)"/>.
            </summary>
            <param name="period">
            Minimum timer resolution specified in the previous call to the <see cref="M:GSF.PrecisionTimer.SetMinimumTimerResolution(System.Int32)"/> function.
            </param>
            <remarks>
            <para>
            Call this function immediately after you are finished using the <see cref="T:GSF.PrecisionTimer"/>. You must match each call to
            <see cref="M:GSF.PrecisionTimer.SetMinimumTimerResolution(System.Int32)"/> with a call to <see cref="M:GSF.PrecisionTimer.ClearMinimumTimerResolution(System.Int32)"/>, specifying the same minimum
            resolution <paramref name="period"/> in both calls. An application can make multiple SetMinimumTimerResolution calls as long
            as each call is matched with a call to ClearMinimumTimerResolution.
            </para>
            <para>
            This method is currently ignored under Mono deployments.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.ProcessProgress`1">
            <summary>
            Represents current process progress for an operation.
            </summary>
            <remarks>
            Used to track total progress of an identified operation.
            </remarks>
            <typeparam name="TUnit">Unit of progress used (long, double, int, etc.)</typeparam>
        </member>
        <member name="M:GSF.ProcessProgress`1.#ctor(System.String)">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.ProcessProgress`1"/> class using specified process name.
            </summary>
            <param name="processName">Name of process for which progress is being monitored.</param>
        </member>
        <member name="M:GSF.ProcessProgress`1.#ctor(System.String,System.String,`0,`0)">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.ProcessProgress`1"/> class using specified parameters.
            </summary>
            <param name="processName">Name of process for which progress is being monitored.</param>
            <param name="processMessage">Current processing message, if any.</param>
            <param name="total">Total number of units to be processed.</param>
            <param name="complete">Number of units completed processing so far.</param>
        </member>
        <member name="P:GSF.ProcessProgress`1.ProcessName">
            <summary>
            Gets or sets name of process for which progress is being monitored.
            </summary>
        </member>
        <member name="P:GSF.ProcessProgress`1.ProgressMessage">
            <summary>
            Gets or sets current progress message (e.g., current file being copied, etc.)
            </summary>
        </member>
        <member name="P:GSF.ProcessProgress`1.Total">
            <summary>
            Gets or sets total number of units to be processed.
            </summary>
        </member>
        <member name="P:GSF.ProcessProgress`1.Complete">
            <summary>
            Gets or sets number of units completed processing so far.
            </summary>
        </member>
        <member name="T:GSF.ProcessProgressHandler`1">
            <summary>
            Defines a delegate handler for a <see cref="T:GSF.ProcessProgress`1"/> instance.
            </summary>
            <remarks>
            <para>
            This handler is used by methods with an <see cref="T:System.Action"/> delegate parameter (e.g., Action&lt;ProcessProgress&lt;long&gt;&gt;)
            providing a simple callback mechanism for reporting progress on a long operation.
            </para>
            <para>
            Examples include:
            <see cref="M:GSF.IO.Compression.CompressionExtensions.Compress(System.IO.Stream,System.IO.Stream,GSF.IO.Compression.CompressionStrength,System.Action{GSF.ProcessProgress{System.Int64}})"/>, 
            <see cref="M:GSF.Security.Cryptography.Cipher.Encrypt(System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})"/> and
            <see cref="M:GSF.Security.Cryptography.Cipher.Decrypt(System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})"/>
            </para>
            </remarks>
            <typeparam name="TUnit">Unit of progress used (long, double, int, etc.)</typeparam>
        </member>
        <member name="M:GSF.ProcessProgressHandler`1.#ctor(System.Action{GSF.ProcessProgress{`0}},System.String)">
            <summary>
            Constructs a new process progress handler for the specified parameters.
            </summary>
            <param name="progressHandler">Delegate callback to invoke as process progresses.</param>
            <param name="processName">Descriptive name of process, if useful.</param>
        </member>
        <member name="M:GSF.ProcessProgressHandler`1.#ctor(System.Action{GSF.ProcessProgress{`0}},System.String,`0)">
            <summary>
            Constructs a new process progress handler for the specified parameters.
            </summary>
            <param name="progressHandler">Delegate callback to invoke as process progresses.</param>
            <param name="processName">Descriptive name of process, if useful.</param>
            <param name="total">Total number of units to be processed.</param>
        </member>
        <member name="P:GSF.ProcessProgressHandler`1.ProcessProgress">
            <summary>
            Gets instance of <see cref="T:GSF.ProcessProgress`1"/> used to track progress for this handler.
            </summary>
        </member>
        <member name="P:GSF.ProcessProgressHandler`1.ProgressHandler">
            <summary>
            Gets or sets reference to delegate handler used as a callback to report process progress.
            </summary>
        </member>
        <member name="P:GSF.ProcessProgressHandler`1.Complete">
            <summary>
            Gets or sets current process progress (i.e., number of units completed processing so far) - note that when this
            property value is assigned, the callback function is automatically called with updated <see cref="T:GSF.ProcessProgress`1"/>
            instance so consumer can track progress.
            </summary>
            <value>Number of units completed processing so far.</value>
        </member>
        <member name="P:GSF.ProcessProgressHandler`1.Total">
            <summary>
            Gets or sets total number of units to be processed.
            </summary>
        </member>
        <member name="M:GSF.ProcessProgressHandler`1.UpdateProgress(`0)">
            <summary>
            Calls callback function with updated <see cref="T:GSF.ProcessProgress`1"/> instance so consumer can track progress.
            </summary>
            <param name="completed">Number of units completed processing so far.</param>
            <remarks>
            Note that assigning a value to the <see cref="P:GSF.ProcessProgressHandler`1.Complete"/> property will have the same effect as calling this method.
            </remarks>
        </member>
        <member name="T:GSF.Annotations.CanBeNullAttribute">
            <summary>
            Indicates that the value of the marked element could be <c>null</c> sometimes,
            so the check for <c>null</c> is necessary before its usage
            </summary>
            <example><code>
            [CanBeNull] public object Test() { return null; }
            public void UseTest() {
              var p = Test();
              var s = p.ToString(); // Warning: Possible 'System.NullReferenceException'
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.NotNullAttribute">
            <summary>
            Indicates that the value of the marked element could never be <c>null</c>
            </summary>
            <example><code>
            [NotNull] public object Foo() {
              return null; // Warning: Possible 'null' assignment
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.StringFormatMethodAttribute">
            <summary>
            Indicates that the marked method builds string by format pattern and (optional) arguments.
            Parameter, which contains format string, should be given in constructor. The format string
            should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/>-like form
            </summary>
            <example><code>
            [StringFormatMethod("message")]
            public void ShowError(string message, params object[] args) { /* do something */ }
            public void Foo() {
              ShowError("Failed: {0}"); // Warning: Non-existing argument in format string
            }
            </code></example>
        </member>
        <member name="M:GSF.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
            <param name="formatParameterName">
            Specifies which parameter of an annotated method should be treated as format-string
            </param>
        </member>
        <member name="T:GSF.Annotations.InvokerParameterNameAttribute">
            <summary>
            Indicates that the function argument should be string literal and match one
            of the parameters of the caller function. For example, ReSharper annotates
            the parameter of <see cref="T:System.ArgumentNullException"/>
            </summary>
            <example><code>
            public void Foo(string param) {
              if (param == null)
                throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.NotifyPropertyChangedInvocatorAttribute">
             <summary>
             Indicates that the method is contained in a type that implements
             <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> interface
             and this method is used to notify that some property value changed
             </summary>
             <remarks>
             The method should be non-static and conform to one of the supported signatures:
             <list>
             <item><c>NotifyChanged(string)</c></item>
             <item><c>NotifyChanged(params string[])</c></item>
             <item><c>NotifyChanged{T}(Expression{Func{T}})</c></item>
             <item><c>NotifyChanged{T,U}(Expression{Func{T,U}})</c></item>
             <item><c>SetProperty{T}(ref T, T, string)</c></item>
             </list>
             </remarks>
             <example><code>
             public class Foo : INotifyPropertyChanged {
               public event PropertyChangedEventHandler PropertyChanged;
               [NotifyPropertyChangedInvocator]
               protected virtual void NotifyChanged(string propertyName) { ... }
            
               private string _name;
               public string Name {
                 get { return _name; }
                 set { _name = value; NotifyChanged("LastName"); /* Warning */ }
               }
             }
             </code>
             Examples of generated notifications:
             <list>
             <item><c>NotifyChanged("Property")</c></item>
             <item><c>NotifyChanged(() =&gt; Property)</c></item>
             <item><c>NotifyChanged((VM x) =&gt; x.Property)</c></item>
             <item><c>SetProperty(ref myField, value, "Property")</c></item>
             </list>
             </example>
        </member>
        <member name="T:GSF.Annotations.ContractAnnotationAttribute">
            <summary>
            Describes dependency between method input and output
            </summary>
            <syntax>
            <p>Function Definition Table syntax:</p>
            <list>
            <item>FDT      ::= FDTRow [;FDTRow]*</item>
            <item>FDTRow   ::= Input =&gt; Output | Output &lt;= Input</item>
            <item>Input    ::= ParameterName: Value [, Input]*</item>
            <item>Output   ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
            <item>Value    ::= true | false | null | notnull | canbenull</item>
            </list>
            If method has single input parameter, it's name could be omitted.<br/>
            Using <c>halt</c> (or <c>void</c>/<c>nothing</c>, which is the same)
            for method output means that the methos doesn't return normally.<br/>
            <c>canbenull</c> annotation is only applicable for output parameters.<br/>
            You can use multiple <c>[ContractAnnotation]</c> for each FDT row,
            or use single attribute with rows separated by semicolon.<br/>
            </syntax>
            <examples><list>
            <item><code>
            [ContractAnnotation("=> halt")]
            public void TerminationMethod()
            </code></item>
            <item><code>
            [ContractAnnotation("halt &lt;= condition: false")]
            public void Assert(bool condition, string text) // regular assertion method
            </code></item>
            <item><code>
            [ContractAnnotation("s:null => true")]
            public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()
            </code></item>
            <item><code>
            // A method that returns null if the parameter is null, and not null if the parameter is not null
            [ContractAnnotation("null => null; notnull => notnull")]
            public object Transform(object data) 
            </code></item>
            <item><code>
            [ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")]
            public bool TryParse(string s, out Person result)
            </code></item>
            </list></examples>
        </member>
        <member name="T:GSF.Annotations.LocalizationRequiredAttribute">
            <summary>
            Indicates that marked element should be localized or not
            </summary>
            <example><code>
            [LocalizationRequiredAttribute(true)]
            public class Foo {
              private string str = "my string"; // Warning: Localizable string
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.CannotApplyEqualityOperatorAttribute">
            <summary>
            Indicates that the value of the marked type (or its derivatives)
            cannot be compared using '==' or '!=' operators and <c>Equals()</c>
            should be used instead. However, using '==' or '!=' for comparison
            with <c>null</c> is always permitted.
            </summary>
            <example><code>
            [CannotApplyEqualityOperator]
            class NoEquality { }
            class UsesNoEquality {
              public void Test() {
                var ca1 = new NoEquality();
                var ca2 = new NoEquality();
                if (ca1 != null) { // OK
                  bool condition = ca1 == ca2; // Warning
                }
              }
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.BaseTypeRequiredAttribute">
            <summary>
            When applied to a target attribute, specifies a requirement for any type marked
            with the target attribute to implement or inherit specific type or types.
            </summary>
            <example><code>
            [BaseTypeRequired(typeof(IComponent)] // Specify requirement
            public class ComponentAttribute : Attribute { }
            [Component] // ComponentAttribute requires implementing IComponent interface
            public class MyComponent : IComponent { }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.UsedImplicitlyAttribute">
            <summary>
            Indicates that the marked symbol is used implicitly
            (e.g. via reflection, in external library), so this symbol
            will not be marked as unused (as well as by other usage inspections)
            </summary>
        </member>
        <member name="T:GSF.Annotations.MeansImplicitUseAttribute">
            <summary>
            Should be used on attributes and causes ReSharper
            to not mark symbols marked with such attributes as unused
            (as well as by other usage inspections)
            </summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseKindFlags.Access">
            <summary>Only entity marked with attribute considered used</summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseKindFlags.Assign">
            <summary>Indicates implicit assignment to a member</summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature">
            <summary>
            Indicates implicit instantiation of a type with fixed constructor signature.
            That means any unused constructor parameters won't be reported as such.
            </summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature">
            <summary>Indicates implicit instantiation of a type</summary>
        </member>
        <member name="T:GSF.Annotations.ImplicitUseTargetFlags">
            <summary>
            Specify what is considered used implicitly
            when marked with <see cref="T:GSF.Annotations.MeansImplicitUseAttribute"/>
            or <see cref="T:GSF.Annotations.UsedImplicitlyAttribute"/>
            </summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseTargetFlags.Members">
            <summary>Members of entity marked with attribute are considered used</summary>
        </member>
        <member name="F:GSF.Annotations.ImplicitUseTargetFlags.WithMembers">
            <summary>Entity marked with attribute and all its members considered used</summary>
        </member>
        <member name="T:GSF.Annotations.PublicAPIAttribute">
            <summary>
            This attribute is intended to mark publicly available API
            which should not be removed and so is treated as used
            </summary>
        </member>
        <member name="T:GSF.Annotations.InstantHandleAttribute">
            <summary>
            Tells code analysis engine if the parameter is completely handled
            when the invoked method is on stack. If the parameter is a delegate,
            indicates that delegate is executed while the method is executed.
            If the parameter is an enumerable, indicates that it is enumerated
            while the method is executed
            </summary>
        </member>
        <member name="T:GSF.Annotations.PureAttribute">
            <summary>
            Indicates that a method does not make any observable state changes.
            The same as <c>System.Diagnostics.Contracts.PureAttribute</c>
            </summary>
            <example><code>
            [Pure] private int Multiply(int x, int y) { return x * y; }
            public void Foo() {
              const int a = 2, b = 2;
              Multiply(a, b); // Waring: Return value of pure method is not used
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.PathReferenceAttribute">
            <summary>
            Indicates that a parameter is a path to a file or a folder
            within a web project. Path can be relative or absolute,
            starting from web root (~)
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcActionAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
            is an MVC action. If applied to a method, the MVC action name is calculated
            implicitly from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcAreaAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC area.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcControllerAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that
            the parameter is an MVC controller. If applied to a method,
            the MVC controller name is calculated implicitly from the context.
            Use this attribute for custom wrappers similar to 
            <c>System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcMasterAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC Master.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Controller.View(String, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcModelTypeAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC model type.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Controller.View(String, Object)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcPartialViewAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that
            the parameter is an MVC partial view. If applied to a method,
            the MVC partial view name is calculated implicitly from the context.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcSupressViewErrorAttribute">
            <summary>
            ASP.NET MVC attribute. Allows disabling all inspections
            for MVC views within a class or a method.
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcDisplayTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC display template.
            Use this attribute for custom wrappers similar to 
            <c>System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcEditorTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC editor template.
            Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcTemplateAttribute">
            <summary>
            ASP.NET MVC attribute. Indicates that a parameter is an MVC template.
            Use this attribute for custom wrappers similar to
            <c>System.ComponentModel.DataAnnotations.UIHintAttribute(System.String)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcViewAttribute">
            <summary>
            ASP.NET MVC attribute. If applied to a parameter, indicates that the parameter
            is an MVC view. If applied to a method, the MVC view name is calculated implicitly
            from the context. Use this attribute for custom wrappers similar to
            <c>System.Web.Mvc.Controller.View(Object)</c>
            </summary>
        </member>
        <member name="T:GSF.Annotations.AspMvcActionSelectorAttribute">
            <summary>
            ASP.NET MVC attribute. When applied to a parameter of an attribute,
            indicates that this parameter is an MVC action name
            </summary>
            <example><code>
            [ActionName("Foo")]
            public ActionResult Login(string returnUrl) {
              ViewBag.ReturnUrl = Url.Action("Foo"); // OK
              return RedirectToAction("Bar"); // Error: Cannot resolve action
            }
            </code></example>
        </member>
        <member name="T:GSF.Annotations.RazorSectionAttribute">
            <summary>
            Razor attribute. Indicates that a parameter or a method is a Razor section.
            Use this attribute for custom wrappers similar to 
            <c>System.Web.WebPages.WebPageBase.RenderSection(String)</c>
            </summary>
        </member>
        <member name="T:GSF.Range`1">
            <summary>
            Represents a range of values defined by start and end value.
            </summary>
        </member>
        <member name="M:GSF.Range`1.#ctor(`0,`0)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Range`1"/> class using the default comparer.
            </summary>
            <param name="start">The start value of the range.</param>
            <param name="end">The end value of the range.</param>
        </member>
        <member name="P:GSF.Range`1.Start">
            <summary>
            Gets the start value of the range.
            </summary>
        </member>
        <member name="P:GSF.Range`1.End">
            <summary>
            Gets the end value of the range.
            </summary>
        </member>
        <member name="M:GSF.Range`1.Contains(`0)">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Contains(`0,System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Contains(`0,System.Comparison{`0})">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Contains(GSF.Range{`0})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Contains(GSF.Range{`0},System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Contains(GSF.Range{`0},System.Comparison{`0})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Overlaps(GSF.Range{`0})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Overlaps(GSF.Range{`0},System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Overlaps(GSF.Range{`0},System.Comparison{`0})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(GSF.Range{`0})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(GSF.Range{`0},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(GSF.Range{`0},System.Comparison{`0})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0}})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Collections.Generic.Comparer{`0})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`1.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Comparison{`0})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`1.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Comparison{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`1.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="M:GSF.Range`1.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Comparison{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="M:GSF.Range`1.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0}},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="T:GSF.Range`2">
            <summary>
            Represents a range of values defined by a start and end value with encapsulated state.
            </summary>
            <remarks>
            This class provides flexibility in allowing the user to define their own state and how it is merged.
            Because of potentially undesirable behavior which could result from merging objects inherited from
            this class, the class has been sealed to prevent inheritance.
            </remarks>
        </member>
        <member name="M:GSF.Range`2.#ctor(`0,`0,`1)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Range`2"/> class using the default comparer.
            </summary>
            <param name="start">The start value of the range.</param>
            <param name="end">The end value of the range.</param>
            <param name="state">The state object encapsulated by the range.</param>
        </member>
        <member name="P:GSF.Range`2.Start">
            <summary>
            Gets the start value of the range.
            </summary>
        </member>
        <member name="P:GSF.Range`2.End">
            <summary>
            Gets the end value of the range.
            </summary>
        </member>
        <member name="P:GSF.Range`2.State">
            <summary>
            Gets the state encapsulated by the range.
            </summary>
        </member>
        <member name="M:GSF.Range`2.Contains(`0)">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Contains(`0,System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Contains(`0,System.Comparison{`0})">
            <summary>
            Determines whether the range contains the given value.
            </summary>
            <param name="value">The value to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the value exists within the range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Contains(GSF.Range{`0,`1})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Contains(GSF.Range{`0,`1},System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Contains(GSF.Range{`0,`1},System.Comparison{`0})">
            <summary>
            Determines whether the range contains the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the given range exists within this range; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Overlaps(GSF.Range{`0,`1})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Overlaps(GSF.Range{`0,`1},System.Collections.Generic.IComparer{`0})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Overlaps(GSF.Range{`0,`1},System.Comparison{`0})">
            <summary>
            Determines whether the range overlaps with the given range.
            </summary>
            <param name="range">The range to be compared with.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>True if the ranges overlap; false otherwise.</returns>
        </member>
        <member name="M:GSF.Range`2.Merge(GSF.Range{`0,`1})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TState"/> is not <see cref="T:GSF.IMergeable`1"/>.</exception>
        </member>
        <member name="M:GSF.Range`2.Merge(GSF.Range{`0,`1},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TState"/> is not <see cref="T:GSF.IMergeable`1"/>.</exception>
        </member>
        <member name="M:GSF.Range`2.Merge(GSF.Range{`0,`1},System.Comparison{`0})">
            <summary>
            Merges two ranges into one range that fully encompasses both ranges.
            </summary>
            <param name="range">The range to be merged with this one.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The range that fully encompasses the merged ranges.</returns>
            <exception cref="T:System.InvalidOperationException"><typeparamref name="TState"/> is not <see cref="T:GSF.IMergeable`1"/>.</exception>
        </member>
        <member name="M:GSF.Range`2.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`2.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Collections.Generic.Comparer{`0})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`2.Merge(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Comparison{`0})">
            <summary>
            Merges all ranges in a collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges to be merged.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>A range that is the result of merging all ranges in the collection.</returns>
        </member>
        <member name="M:GSF.Range`2.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`2.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`2.MergeConsecutiveOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Comparison{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The collection of merged ranges.</returns>
        </member>
        <member name="M:GSF.Range`2.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="M:GSF.Range`2.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Comparison{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparison">The comparison used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="M:GSF.Range`2.MergeAllOverlapping(System.Collections.Generic.IEnumerable{GSF.Range{`0,`1}},System.Collections.Generic.IComparer{`0})">
            <summary>
            Merges all consecutive groups of overlapping ranges in a
            collection and returns the resulting collection of ranges.
            </summary>
            <param name="ranges">The collection of ranges.</param>
            <param name="comparer">The comparer used to compare objects of type <typeparamref name="TRange"/>.</param>
            <returns>The collection of merged ranges.</returns>
            <remarks>This method does not preserve the order of the source collection.</remarks>
        </member>
        <member name="T:GSF.IMergeable`1">
            <summary>
            Represents a type of object that is mergeable with another type of object.
            </summary>
            <typeparam name="T">The type of object to be merged with.</typeparam>
            <remarks>
            This interface was primarily designed for objects which are mergeable with other objects of the same type.
            Therefore, <typeparamref name="T"/> should typically be the actual type of the object.
            </remarks>
        </member>
        <member name="M:GSF.IMergeable`1.Merge(`0)">
            <summary>
            Merges this object with another.
            </summary>
            <param name="other">The other mergeable object.</param>
            <returns>The result of merging this object with another.</returns>
        </member>
        <member name="T:GSF.ReusableObjectPool`1">
             <summary>
             Represents a reusable object pool that can be used by an application.
             </summary>
             <remarks>
             <para>
             Object pooling can offer a significant performance boost in some scenarios. It is most effective when the cost
             of construction is high and/or the rate of instantiation is high.
             </para>
             <para>
             This object pool is statically created at application startup, one per type, and is available for all components
             and classes within an application domain. Every time you need to use an object, you take one from the pool, use
             it, then return it to the pool when done. This process can be much faster than creating a new object every time
             you need to use one.
             </para>
             <para>
             When objects implement <see cref="T:GSF.ISupportLifecycle"/>, the <see cref="T:GSF.ReusableObjectPool`1"/> will automatically
             attach to the <see cref="E:GSF.ISupportLifecycle.Disposed"/> event and return the object to the pool when it's disposed.
             When an object is taken from the pool, the <see cref="M:GSF.ISupportLifecycle.Initialize"/> method will be called to 
             reinstantiate any need member variables. If class tracks a disposed flag, it should be reset during call to the
             <see cref="M:GSF.ISupportLifecycle.Initialize"/> method so that class will be "un-disposed". Also, typical dispose
             implementations call <see cref="M:System.GC.SuppressFinalize(System.Object)"/> in the <see cref="M:System.IDisposable.Dispose"/> method, as such the
             <see cref="M:System.GC.ReRegisterForFinalize(System.Object)"/> should be called during <see cref="M:GSF.ISupportLifecycle.Initialize"/> method to
             make sure class will be disposed by finalizer in case <see cref="M:System.IDisposable.Dispose"/> method is never called.
             <example>
             Here is an example class that implements <see cref="T:GSF.ISupportLifecycle"/> such that it will be automatically returned
             to the pool when the class is disposed and automatically initialized when taken from the pool:
             <code>
             /// &lt;summary&gt;
             /// Class that shows example implementation of reusable &lt;see cref="ISupportLifecycle"/&gt;.
             /// &lt;/summary&gt;
             public class ReusableClass : ISupportLifecycle
             {
                 #region [ Members ]
             
                 // Events
                 
                 /// &lt;summary&gt;
                 /// Occurs when the &lt;see cref="ReusableClass"/&gt; is disposed.
                 /// &lt;/summary&gt;
                 public event EventHandler Disposed;
                 
                 // Fields
                 private System.Timers.Timer m_timer;    // Example member variable that needs initialization and disposal
                 private bool m_enabled;
                 private bool m_disposed;
             
                 #endregion
            
                 #region [ Constructors ]
             
                 /// &lt;summary&gt;
                 /// Releases the unmanaged resources before the &lt;see cref="ReusableClass"/&gt; object is reclaimed by &lt;see cref="GC"/&gt;.
                 /// &lt;/summary&gt;
                 ~ReusableClass()
                 {
                     Dispose(false);
                 }
             
                 #endregion
             
                 #region [ Properties ]
             
                 /// &lt;summary&gt;
                 /// Gets or sets a boolean value that indicates whether the &lt;see cref="ReusableClass"/&gt; object is currently enabled.
                 /// &lt;/summary&gt;
                 public bool Enabled
                 {
                     get
                     {
                         return m_enabled;
                     }
                     set
                     {
                         m_enabled = value;
             
                         if (m_timer != null)
                             m_timer.Enabled = m_enabled;
                     }
                 }
             
                 #endregion
             
                 #region [ Methods ]
             
                 /// &lt;summary&gt;
                 /// Initializes the &lt;see cref="ReusableClass"/&gt; object.
                 /// &lt;/summary&gt;
                 public void Initialize()
                 {
                     // Undispose class instance if it is being reused
                     if (m_disposed)
                     {
                         m_disposed = false;
                         GC.ReRegisterForFinalize(this);
                     }
                     
                     m_enabled = true;
             
                     // Initialize member variables
                     if (m_timer == null)
                     {
                         m_timer = new System.Timers.Timer(2000.0D);
                         m_timer.Elapsed += m_timer_Elapsed;
                         m_timer.Enabled = m_enabled;
                     }
                 }
             
                 /// &lt;summary&gt;
                 /// Releases all the resources used by the &lt;see cref="ReusableClass"/&gt; object.
                 /// &lt;/summary&gt;
                 public void Dispose()
                 {
                     Dispose(true);
                     GC.SuppressFinalize(this);
                 }
             
                 /// &lt;summary&gt;
                 /// Releases the unmanaged resources used by the &lt;see cref="ReusableClass"/&gt; object and optionally releases the managed resources.
                 /// &lt;/summary&gt;
                 /// &lt;param name="disposing"&gt;true to release both managed and unmanaged resources; false to release only unmanaged resources.&lt;/param&gt;
                 protected virtual void Dispose(bool disposing)
                 {
                     if (!m_disposed)
                     {
                         try
                         {
                             if (disposing)
                             {
                                 // Dispose member variables
                                 if (m_timer != null)
                                 {
                                     m_timer.Elapsed -= m_timer_Elapsed;
                                     m_timer.Dispose();
                                 }
                                 m_timer = null;
                                 
                                 m_enabled = false;
                             }
                         }
                         finally
                         {
                             m_disposed = true;
             
                             if (Disposed != null)
                                 Disposed(this, EventArgs.Empty);
                         }
                     }
                 }
             
                 // Handle timer event
                 private void m_timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
                 {
                     // Do work here...
                 }
             
                 #endregion
             }
             </code>
             </example>
             </para>
             <para>
             If the pool objects do not implement <see cref="T:GSF.ISupportLifecycle"/> you can still use the object pool, but it
             will be very imporant to return the object to the pool when you are finished using it. If you are using an object
             scoped within a method, make sure to use a try/finally so that you can take the object within the try and return
             the object within the finally. If you are using an object as a member scoped class field, make sure you use the
             standard dispose pattern and return the object during the <see cref="M:System.IDisposable.Dispose"/> method call. In this
             mode you will also need to manually initialze your object after you get it from the pool to reset its state.
             </para>
             </remarks>
             <typeparam name="T">Type of object to pool.</typeparam>
        </member>
        <member name="M:GSF.ReusableObjectPool`1.TakeObject">
            <summary>
            Gets an object from the pool, or creates a new one if no pool items are available.
            </summary>
            <returns>An available object from the pool, or a new one if no pool items are available.</returns>
            <remarks>
            If type of <typeparamref name="T"/> implements <see cref="T:GSF.ISupportLifecycle"/>, the pool will attach
            to the item's <see cref="E:GSF.ISupportLifecycle.Disposed"/> event such that the object can be automatically
            restored to the pool upon <see cref="M:System.IDisposable.Dispose"/>. It will be up to class implementors to
            make sure <see cref="M:GSF.ISupportLifecycle.Initialize"/> makes the class ready for use as this method will
            always be called for an object being taken from the pool.
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool`1.ReturnObject(`0)">
            <summary>
            Returns object to the pool.
            </summary>
            <param name="item">Reference to the object being returned.</param>
            <remarks>
            If type of <typeparamref name="T"/> implements <see cref="T:GSF.ISupportLifecycle"/>, the pool will automatically
            return the item to the pool when the <see cref="E:GSF.ISupportLifecycle.Disposed"/> event is raised, usually when
            the object's <see cref="M:System.IDisposable.Dispose"/> method is called.
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool`1.Clear">
            <summary>
            Releases all the objects currently cached in the pool.
            </summary>
        </member>
        <member name="M:GSF.ReusableObjectPool`1.SetPoolSize(System.Int32)">
            <summary>
            Allocates the pool to the desired <paramref name="size"/>.
            </summary>
            <param name="size">Desired pool size.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Pool <paramref name="size"/> must at least be one.</exception>
        </member>
        <member name="M:GSF.ReusableObjectPool`1.GetPoolSize">
            <summary>
            Gets the number of items currently contained in the pool.
            </summary>
            <returns>The size of the pool.</returns>
        </member>
        <member name="F:GSF.ReusableObjectPool`1.Default">
            <summary>
            Default static instance which can be shared throughout the application.
            </summary>
        </member>
        <member name="T:GSF.ReusableObjectPool">
            <summary>
            Represents a reusable object pool that can be used by an application.
            </summary>
            <remarks>
            <para>
            See <see cref="T:GSF.ReusableObjectPool`1"/> for more details on using object pooling.
            </para>
            <para>
            <see cref="T:GSF.ReusableObjectPool"/> should be used when you only have the <see cref="T:System.Type"/> of an object available (such as when you are
            using reflection), otherwise you should use the generic <see cref="T:GSF.ReusableObjectPool`1"/>.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool.TakeObject(System.Type)">
            <summary>
            Gets an object from the pool, or creates a new one if no pool items are available.
            </summary>
            <param name="type">Type of object to get from pool.</param>
            <returns>An available object from the pool, or a new one if no pool items are available.</returns>
            <exception cref="T:System.InvalidOperationException"><paramref name="type"/> does not support parameterless public constructor.</exception>
            <remarks>
            If <paramref name="type"/> implements <see cref="T:GSF.ISupportLifecycle"/>, the pool will attach
            to the item's <see cref="E:GSF.ISupportLifecycle.Disposed"/> event such that the object can be automatically
            restored to the pool upon <see cref="M:System.IDisposable.Dispose"/>. It will be up to class implementors to
            make sure <see cref="M:GSF.ISupportLifecycle.Initialize"/> makes the class ready for use as this method will
            always be called for an object being taken from the pool.
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool.TakeObject``1(System.Type)">
            <summary>
            Gets an object from the pool, or creates a new one if no pool items are available.
            </summary>
            <param name="type">Type of object to get from pool.</param>
            <typeparam name="T">Type of returned object to get from pool.</typeparam>
            <returns>An available object from the pool, or a new one if no pool items are available.</returns>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="type"/> does not support parameterless public constructor -or- 
            <paramref name="type"/> is not a subclass or interface implementation of function type definition.
            </exception>
            <remarks>
            <para>
            This function will validate that <typeparamref name="T"/> is related to <paramref name="type"/>.
            </para>
            <para>
            If <paramref name="type"/> implements <see cref="T:GSF.ISupportLifecycle"/>, the pool will attach
            to the item's <see cref="E:GSF.ISupportLifecycle.Disposed"/> event such that the object can be automatically
            restored to the pool upon <see cref="M:System.IDisposable.Dispose"/>. It will be up to class implementors to
            make sure <see cref="M:GSF.ISupportLifecycle.Initialize"/> makes the class ready for use as this method will
            always be called for an object being taken from the pool.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool.ReturnObject(System.Object)">
            <summary>
            Returns object to the pool.
            </summary>
            <param name="item">Reference to the object being returned.</param>
            <remarks>
            If type of <paramref name="item"/> implements <see cref="T:GSF.ISupportLifecycle"/>, the pool will automatically
            return the item to the pool when the <see cref="E:GSF.ISupportLifecycle.Disposed"/> event is raised, usually when
            the object's <see cref="M:System.IDisposable.Dispose"/> method is called.
            </remarks>
        </member>
        <member name="M:GSF.ReusableObjectPool.Clear(System.Type)">
            <summary>
            Releases all the objects currently cached in the specified pool.
            </summary>
            <param name="type">Type of pool to clear.</param>
        </member>
        <member name="M:GSF.ReusableObjectPool.SetPoolSize(System.Type,System.Int32)">
            <summary>
            Allocates the pool to the desired <paramref name="size"/>.
            </summary>
            <param name="type">Type of pool to initialize.</param>
            <param name="size">Desired pool size.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">Pool <paramref name="size"/> must at least be one.</exception>
        </member>
        <member name="T:GSF.Scheduling.NamespaceDoc">
            <summary>
            Contains classes used to schedule operations using standard UNIX crontab syntax.
            </summary>
        </member>
        <member name="T:GSF.Scheduling.Schedule">
            <summary>
            Represents a schedule defined using UNIX crontab syntax.
            </summary>
            <remarks>
            <para>
            Operators:
            </para>
            <para>
            There are several ways of specifying multiple date/time values in a field:
            <list type="bullet">
            <item>
                <description>
                    The comma (',') operator specifies a list of values, for example: "1,3,4,7,8"
                </description>
            </item>
            <item>
                <description>
                    The dash ('-') operator specifies a range of values, for example: "1-6",
                    which is equivalent to "1,2,3,4,5,6"
                </description>
            </item>
            <item>
                <description>
                    The asterisk ('*') operator specifies all possible values for a field.
                    For example, an asterisk in the hour time field would be equivalent to
                    'every hour' (subject to matching other specified fields).
                </description>
            </item>
            <item>
                <description>
                    The slash ('/') operator (called "step"), which can be used to skip a given
                    number of values. For example, "*/3" in the hour time field is equivalent
                    to "0,3,6,9,12,15,18,21". So "*" specifies 'every hour' but the "*/3" means
                    only those hours divisible by 3.
                </description>
            </item>
            </list>
            </para>
            <para>
            Fields:
            </para>
            <para>
            <code>
                +---------------- minute (0 - 59)
                |  +------------- hour (0 - 23)
                |  |  +---------- day of month (1 - 31)
                |  |  |  +------- month (1 - 12)
                |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
                |  |  |  |  |
                *  *  *  *  *
            </code>
            </para>
            <para>
            Each of the patterns from the first five fields may be either * (an asterisk), which matches all legal values,
            or a list of elements separated by commas. 
            </para>
            <para>
            See <a href="http://en.wikipedia.org/wiki/Cron" target="_blank">http://en.wikipedia.org/wiki/Cron</a> for more information.
            </para>
            </remarks>
            <seealso cref="T:GSF.Scheduling.SchedulePart"/>
            <seealso cref="T:GSF.Scheduling.ScheduleManager"/>
        </member>
        <member name="M:GSF.Scheduling.Schedule.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.Schedule"/> class.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.Schedule.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.Schedule"/> class.
            </summary>
            <param name="name">Name of the schedule.</param>
            <remarks>Default <see cref="P:GSF.Scheduling.Schedule.Rule"/> of '* * * * *' is used.</remarks>
        </member>
        <member name="M:GSF.Scheduling.Schedule.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.Schedule"/> class.
            </summary>
            <param name="name">Name of the schedule.</param>
            <param name="rule">Rule formated in UNIX crontab syntax.</param>
        </member>
        <member name="M:GSF.Scheduling.Schedule.#ctor(System.String,System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.Schedule"/> class.
            </summary>
            <param name="name">Name of the schedule.</param>
            <param name="rule">Rule formated in UNIX crontab syntax.</param>
            <param name="description">Description of defined schedule.</param>
        </member>
        <member name="M:GSF.Scheduling.Schedule.#ctor(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.Schedule"/> class.
            </summary>
            <param name="name">Name of the schedule.</param>
            <param name="rule">Rule formated in UNIX crontab syntax.</param>
            <param name="description">Description of defined schedule.</param>
            <param name="useLocalTime">Flag that determines whether to use local time for schedule.</param>
        </member>
        <member name="P:GSF.Scheduling.Schedule.Name">
            <summary>
            Gets or sets the name of the <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.Scheduling.Schedule.Rule">
            <summary>
            Gets or sets the rule of the <see cref="T:GSF.Scheduling.Schedule"/> defined in UNIX crontab syntax.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
            <exception cref="T:System.ArgumentException">The number of <see cref="T:GSF.Scheduling.SchedulePart"/> in the rule is not exactly 5.</exception>
        </member>
        <member name="P:GSF.Scheduling.Schedule.Description">
            <summary>
            Gets or sets a description of the <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <remarks>A default description is created automatically when the <see cref="P:GSF.Scheduling.Schedule.Rule"/> is set.</remarks>
        </member>
        <member name="P:GSF.Scheduling.Schedule.UseLocalTime">
            <summary>
            Gets or sets a flag that determines whether the scheduler uses local time or UTC time for scheduling.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.MinutePart">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePart"/> of the <see cref="T:GSF.Scheduling.Schedule"/> that represents minute <see cref="T:GSF.Scheduling.DateTimePart"/>.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.HourPart">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePart"/> of the <see cref="T:GSF.Scheduling.Schedule"/> that represents hour <see cref="T:GSF.Scheduling.DateTimePart"/>.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.DayPart">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePart"/> of the <see cref="T:GSF.Scheduling.Schedule"/> that represents day of month <see cref="T:GSF.Scheduling.DateTimePart"/>.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.MonthPart">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePart"/> of the <see cref="T:GSF.Scheduling.Schedule"/> that represents month <see cref="T:GSF.Scheduling.DateTimePart"/>.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.DaysOfWeekPart">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePart"/> of the <see cref="T:GSF.Scheduling.Schedule"/> that represents day of week <see cref="T:GSF.Scheduling.DateTimePart"/>.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.LastDueAt">
            <summary>
            Gets the <see cref="T:System.DateTime"/> when the <see cref="T:GSF.Scheduling.Schedule"/> was last due.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.Schedule.Status">
            <summary>
            Gets the current status of the <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.Schedule.IsDue">
            <summary>
            Checks whether the <see cref="T:GSF.Scheduling.Schedule"/> is due at the present system time.
            </summary>
            <returns>true if the <see cref="T:GSF.Scheduling.Schedule"/> is due at the present system time; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.Schedule.PreviousTimeDue(System.DateTime)">
            <summary>
            Determines the nearest timestamp older than
            the given timestamp that matches the schedule.
            </summary>
            <param name="targetDateTime">The target timestamp</param>
            <returns>The timestamp prior to the target that the schedule was previously due</returns>
        </member>
        <member name="M:GSF.Scheduling.Schedule.NextTimeDue(System.DateTime)">
            <summary>
            Determines the nearest timestamp past the
            given timestamp that matches the schedule.
            </summary>
            <param name="targetDateTime">The target timestamp</param>
            <returns>The timestamp past the target that the schedule will next be due</returns>
        </member>
        <member name="M:GSF.Scheduling.Schedule.GetHashCode">
            <summary>
            Gets a hash code for the <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <returns>An <see cref="T:System.Int32"/> based hashcode.</returns>
        </member>
        <member name="M:GSF.Scheduling.Schedule.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:GSF.Scheduling.Schedule"/> is equal to the current <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <param name="obj">The <see cref="T:GSF.Scheduling.Schedule"/> to compare with the current <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <returns>
            true if the specified <see cref="T:GSF.Scheduling.Schedule"/> is equal to the current <see cref="T:GSF.Scheduling.Schedule"/>; otherwise false
            </returns>
        </member>
        <member name="M:GSF.Scheduling.Schedule.ToString">
            <summary>
            Gets the string representation of <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <returns>String representation of <see cref="T:GSF.Scheduling.Schedule"/>.</returns>
        </member>
        <member name="T:GSF.Scheduling.ScheduleManager">
            <summary>
            Monitors multiple <see cref="T:GSF.Scheduling.Schedule"/> at an interval of one minute to check if they are due.
            </summary>
            <example>
            This example shows how to use the <see cref="T:GSF.Scheduling.ScheduleManager"/> component:
            <code>
            using System;
            using GSF;
            using GSF.Scheduling;
            
            class Program
            {
                static void Main(string[] args)
                {
                    ScheduleManager scheduler = new ScheduleManager();
                    scheduler.Initialize();
                    // Add event handlers.
                    scheduler.Starting += scheduler_Starting;
                    scheduler.Started += scheduler_Started;
                    scheduler.ScheduleDue += scheduler_ScheduleDue;
                    // Add test schedules.
                    scheduler.AddSchedule("Run.Notepad", "* * * * *");
                    scheduler.AddSchedule("Run.Explorer", "* * * * *");
                    // Start the scheduler.
                    scheduler.Start();
            
                    Console.ReadLine();
                }
            
                static void scheduler_Started(object sender, EventArgs e)
                {
                    Console.WriteLine("Scheduler has started successfully.");
                }
            
                static void scheduler_Starting(object sender, EventArgs e)
                {
                    Console.WriteLine("Scheduler is waiting to be started.");
                }
            
                static void scheduler_ScheduleDue(object sender, EventArgs<![CDATA[<]]>Schedule<![CDATA[>]]> e)
                {
                    Console.WriteLine(string.Format("{0} schedule is due for processing.", e.Argument.Name));
                }
            }
            </code>
            </example>
            <seealso cref="T:GSF.Scheduling.Schedule"/>
        </member>
        <member name="F:GSF.Scheduling.ScheduleManager.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Scheduling.ScheduleManager.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.ScheduleManager.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:GSF.Scheduling.ScheduleManager.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.ScheduleManager.TimerInterval">
            <summary>
            Number of milliseconds between timer ticks.
            </summary>
        </member>
        <member name="E:GSF.Scheduling.ScheduleManager.Starting">
            <summary>
            Occurs while the <see cref="T:GSF.Scheduling.ScheduleManager"/> is waiting to start at the top of the minute.
            </summary>
        </member>
        <member name="E:GSF.Scheduling.ScheduleManager.Started">
            <summary>
            Occurs when the <see cref="T:GSF.Scheduling.ScheduleManager"/> has started at the top of the minute.
            </summary>
        </member>
        <member name="E:GSF.Scheduling.ScheduleManager.ScheduleDue">
            <summary>
            Occurs asynchronously when a <see cref="T:GSF.Scheduling.Schedule"/> is due according to the rule specified for it.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:GSF.Scheduling.Schedule"/> that is due.
            </remarks>
        </member>
        <member name="E:GSF.Scheduling.ScheduleManager.ScheduleDueCheck">
            <summary>
            Occurs when the a particular <see cref="T:GSF.Scheduling.Schedule"/> is being checked to see if it is due.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:GSF.Scheduling.Schedule"/> that is being checked to see if it is due.
            </remarks>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.ScheduleManager"/> class.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.ScheduleManager"/> class.
            </summary>
            <param name="container"><see cref="T:System.ComponentModel.IContainer"/> object that contains the <see cref="T:GSF.Scheduling.ScheduleManager"/>.</param>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether the settings of <see cref="T:GSF.Scheduling.ScheduleManager"/> object are 
            to be saved to the config file.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.SettingsCategory">
            <summary>
            Gets or sets the category under which the settings of <see cref="T:GSF.Scheduling.ScheduleManager"/> object are to be saved
            to the config file if the <see cref="P:GSF.Scheduling.ScheduleManager.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is null or empty string.</exception>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.Schedules">
            <summary>
            Gets a list of all <see cref="T:GSF.Scheduling.Schedule"/> monitored by the <see cref="T:GSF.Scheduling.ScheduleManager"/> object.
            </summary>
            <remarks>
            Thread-safety Warning: Due to the asynchronous nature of <see cref="T:GSF.Scheduling.ScheduleManager"/>, a lock must be 
            obtained on <see cref="P:GSF.Scheduling.ScheduleManager.Schedules"/> before accessing it.
            </remarks>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.IsRunning">
            <summary>
            Gets a boolean value that indicates whether the <see cref="T:GSF.Scheduling.ScheduleManager"/> is running.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.Scheduling.ScheduleManager"/> object is currently enabled.
            </summary>
            <remarks>
            <see cref="P:GSF.Scheduling.ScheduleManager.Enabled"/> property is not be set by user-code directly.
            </remarks>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.Name">
            <summary>
            Gets the unique identifier of the <see cref="T:GSF.Scheduling.ScheduleManager"/> object.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.ScheduleManager.Status">
            <summary>
            Gets the descriptive status of the <see cref="T:GSF.Scheduling.ScheduleManager"/> object.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.Scheduling.ScheduleManager"/> object.
            </summary>
            <remarks>
            <see cref="M:GSF.Scheduling.ScheduleManager.Initialize"/> is to be called by user-code directly only if the <see cref="T:GSF.Scheduling.ScheduleManager"/> 
            object is not consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.BeginInit">
            <summary>
            Performs necessary operations before the <see cref="T:GSF.Scheduling.ScheduleManager"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.Scheduling.ScheduleManager.BeginInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.Scheduling.ScheduleManager"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.EndInit">
            <summary>
            Performs necessary operations after the <see cref="T:GSF.Scheduling.ScheduleManager"/> object properties are initialized.
            </summary>
            <remarks>
            <see cref="M:GSF.Scheduling.ScheduleManager.EndInit"/> should never be called by user-code directly. This method exists solely for use 
            by the designer if the <see cref="T:GSF.Scheduling.ScheduleManager"/> object is consumed through the designer surface of the IDE.
            </remarks>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.SaveSettings">
            <summary>
            Saves settings for the <see cref="T:GSF.Scheduling.ScheduleManager"/> object to the config file if the <see cref="P:GSF.Scheduling.ScheduleManager.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Scheduling.ScheduleManager.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.LoadSettings">
            <summary>
            Loads saved settings for the <see cref="T:GSF.Scheduling.ScheduleManager"/> object from the config file if the <see cref="P:GSF.Scheduling.ScheduleManager.PersistSettings"/> 
            property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:GSF.Scheduling.ScheduleManager.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.Start">
            <summary>
            Starts the <see cref="T:GSF.Scheduling.ScheduleManager"/> asynchronously if not running.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.Stop">
            <summary>
            Stops the <see cref="T:GSF.Scheduling.ScheduleManager"/> if running.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.CheckAllSchedules">
            <summary>
            Checks all of the <see cref="P:GSF.Scheduling.ScheduleManager.Schedules"/> to determine if they are due.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.AddSchedule(System.String,System.String)">
            <summary>
            Attempts to add a new <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <param name="scheduleName">Name of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleRule">Rule of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <returns>true if a new <see cref="T:GSF.Scheduling.Schedule"/> was added or an existing one was updated; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.AddSchedule(System.String,System.String,System.Boolean)">
            <summary>
            Attempts to add a new <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <param name="scheduleName">Name of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleRule">Rule of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="updateExisting">true to update existing <see cref="T:GSF.Scheduling.Schedule"/> with the specified <paramref name="scheduleName"/>; otherwise false.</param>
            <returns>true if a new <see cref="T:GSF.Scheduling.Schedule"/> was added or an existing one was updated; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.AddSchedule(System.String,System.String,System.String)">
            <summary>
            Attempts to add a new <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <param name="scheduleName">Name of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleRule">Rule of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleDescription">Description of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <returns>true if a new <see cref="T:GSF.Scheduling.Schedule"/> was added; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.AddSchedule(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Attempts to add a new <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <param name="scheduleName">Name of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleRule">Rule of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="scheduleDescription">Description of the new <see cref="T:GSF.Scheduling.Schedule"/>.</param>
            <param name="updateExisting">true to update existing <see cref="T:GSF.Scheduling.Schedule"/> with the specified <paramref name="scheduleName"/>; otherwise false.</param>
            <returns>true if a new <see cref="T:GSF.Scheduling.Schedule"/> was added or an existing one was updated; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.RemoveSchedule(System.String)">
            <summary>
            Attempts to remove a <see cref="T:GSF.Scheduling.Schedule"/> with the specified name if one exists.
            </summary>
            <param name="scheduleName">Name of the <see cref="T:GSF.Scheduling.Schedule"/> to be removed.</param>
            <returns>true if the <see cref="T:GSF.Scheduling.Schedule"/> was removed; otherwise false.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.FindSchedule(System.String)">
            <summary>
            Searches for the <see cref="T:GSF.Scheduling.Schedule"/> with the specified name.
            </summary>
            <param name="scheduleName">Name of the <see cref="T:GSF.Scheduling.Schedule"/> to be obtained.</param>
            <returns><see cref="T:GSF.Scheduling.Schedule"/> object if a match is found; otherwise null.</returns>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.OnStarting">
            <summary>
            Raises the <see cref="E:GSF.Scheduling.ScheduleManager.Starting"/> event.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.OnStarted">
            <summary>
            Raises the <see cref="E:GSF.Scheduling.ScheduleManager.Started"/> event.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.OnScheduleDue(GSF.Scheduling.Schedule)">
            <summary>
            Raises the <see cref="E:GSF.Scheduling.ScheduleManager.ScheduleDue"/> event.
            </summary>
            <param name="schedule"><see cref="T:GSF.Scheduling.Schedule"/> to send to <see cref="E:GSF.Scheduling.ScheduleManager.ScheduleDue"/> event.</param>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.OnScheduleDueCheck(GSF.EventArgs{GSF.Scheduling.Schedule})">
            <summary>
            Raises the <see cref="E:GSF.Scheduling.ScheduleManager.ScheduleDueCheck"/> event.
            </summary>
            <param name="e">Event data.</param>
        </member>
        <member name="M:GSF.Scheduling.ScheduleManager.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Scheduling.ScheduleManager"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.Scheduling.DateTimePart">
            <summary>
            Indicates the date/time element that a <see cref="T:GSF.Scheduling.SchedulePart"/> represents.
            </summary>
            <remarks>This enumeration specifically corresponds to the UNIX crontab date/time elements.</remarks>
        </member>
        <member name="F:GSF.Scheduling.DateTimePart.Minute">
            <summary>
            <see cref="T:GSF.Scheduling.SchedulePart"/> represents minutes. Legal values are 0 through 59.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.DateTimePart.Hour">
            <summary>
            <see cref="T:GSF.Scheduling.SchedulePart"/> represents hours. Legal values are 0 through 23.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.DateTimePart.Day">
            <summary>
            <see cref="T:GSF.Scheduling.SchedulePart"/> represents day of month. Legal values are 1 through 31.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.DateTimePart.Month">
            <summary>
            <see cref="T:GSF.Scheduling.SchedulePart"/> represents months. Legal values are 1 through 12.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.DateTimePart.DayOfWeek">
            <summary>
            <see cref="T:GSF.Scheduling.SchedulePart"/> represents day of week. Legal values are 0 through 7 where 0 is Sunday.
            </summary>
        </member>
        <member name="T:GSF.Scheduling.SchedulePartTextSyntax">
            <summary>
            Indicates the syntax used in a <see cref="T:GSF.Scheduling.SchedulePart"/> for specifying its values.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.SchedulePartTextSyntax.Any">
            <summary>
            Values for the <see cref="T:GSF.Scheduling.SchedulePart"/> were specified using the '*' text syntax. Included values are 
            all legal values for the <see cref="T:GSF.Scheduling.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> represents.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.SchedulePartTextSyntax.EveryN">
            <summary>
            Values for the <see cref="T:GSF.Scheduling.SchedulePart"/> were specified using the '*/n' text syntax. Included values are 
            legal values for the <see cref="T:GSF.Scheduling.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> represents that are 
            divisible by 'n'. 
            </summary>
        </member>
        <member name="F:GSF.Scheduling.SchedulePartTextSyntax.Range">
            <summary>
            Values for the <see cref="T:GSF.Scheduling.SchedulePart"/> were specified using the 'n1-nn' text syntax. Included values 
            are legal values for the <see cref="T:GSF.Scheduling.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> represents that
            are within the specified range.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.SchedulePartTextSyntax.Specific">
            <summary>
            Values for the <see cref="T:GSF.Scheduling.SchedulePart"/> were specified using the 'n1,n2,nn' text syntax. Included values 
            are specific legal values for the <see cref="T:GSF.Scheduling.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> represents.
            </summary>
        </member>
        <member name="F:GSF.Scheduling.SchedulePartTextSyntax.RangeWithEveryN">
            <summary>
            Values for the <see cref="T:GSF.Scheduling.SchedulePart"/> were specified using the 'n1-nn/n' text syntax. Included values 
            are legal values for the <see cref="T:GSF.Scheduling.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> represents that
            are within the specified range and that are divisible by 'n'. 
            </summary>
        </member>
        <member name="T:GSF.Scheduling.SchedulePart">
            <summary>
            Represents a part of the <see cref="T:GSF.Scheduling.Schedule"/>.
            </summary>
            <seealso cref="T:GSF.Scheduling.Schedule"/>
        </member>
        <member name="M:GSF.Scheduling.SchedulePart.#ctor(System.String,GSF.Scheduling.DateTimePart)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Scheduling.SchedulePart"/> class.
            </summary>
            <param name="valueText">The text that specifies the values for the <see cref="T:GSF.Scheduling.SchedulePart"/> object.</param>
            <param name="dateTimePart">The <see cref="P:GSF.Scheduling.SchedulePart.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> object represents.</param>
        </member>
        <member name="P:GSF.Scheduling.SchedulePart.ValueText">
            <summary>
            Gets the text used to specify the values for the <see cref="T:GSF.Scheduling.SchedulePart"/> object.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.SchedulePart.DateTimePart">
            <summary>
            Gets the <see cref="P:GSF.Scheduling.SchedulePart.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> object represents.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.SchedulePart.ValueTextSyntax">
            <summary>
            Gets the <see cref="T:GSF.Scheduling.SchedulePartTextSyntax"/> used in the <see cref="P:GSF.Scheduling.SchedulePart.ValueText"/> for specifying the 
            values of the <see cref="T:GSF.Scheduling.SchedulePart"/> object.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.SchedulePart.Description">
            <summary>
            Gets a meaningful description of the <see cref="T:GSF.Scheduling.SchedulePart"/> object.
            </summary>
        </member>
        <member name="P:GSF.Scheduling.SchedulePart.Values">
            <summary>
            Gets the list of values for the <see cref="T:GSF.Scheduling.SchedulePart"/> object specified using <see cref="P:GSF.Scheduling.SchedulePart.ValueText"/>.
            </summary>
        </member>
        <member name="M:GSF.Scheduling.SchedulePart.Matches(System.DateTime)">
            <summary>
            Determines if the <see cref="P:GSF.Scheduling.SchedulePart.Values"/> for the <see cref="P:GSF.Scheduling.SchedulePart.DateTimePart"/> that the <see cref="T:GSF.Scheduling.SchedulePart"/> 
            object represents matches the specified <paramref name="dateTime"/>.
            </summary>
            <param name="dateTime">The <see cref="T:System.DateTime"/> against which the <see cref="P:GSF.Scheduling.SchedulePart.Values"/> are to be matches.</param>
            <returns>true if one of the <see cref="P:GSF.Scheduling.SchedulePart.Values"/> matches the <paramref name="dateTime"/>; otherwise false.</returns>
        </member>
        <member name="T:GSF.Searching.AsyncSearcher`1">
            <summary>
            Uses reflection to search a collection of items for a given search string.
            </summary>
            <typeparam name="TSearch">The type of the objects to be searched.</typeparam>
        </member>
        <member name="E:GSF.Searching.AsyncSearcher`1.MatchesFound">
            <summary>
            Event triggered when the searcher finds a match.
            </summary>
        </member>
        <member name="E:GSF.Searching.AsyncSearcher`1.SearchComplete">
            <summary>
            Event triggered when the searcher has finished searching all the items in its queue.
            </summary>
        </member>
        <member name="M:GSF.Searching.AsyncSearcher`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Searching.AsyncSearcher`1"/> class.
            </summary>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.SearchText">
            <summary>
            Gets or sets the text to be searched for.
            </summary>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.SearchCategories">
            <summary>
            Gets the names of the properties to which
            the search string will be applied.
            </summary>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.IgnoreCase">
            <summary>
            Gets or sets the flag that determines whether
            to ignore case when running the search.
            </summary>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.UseWildcards">
            <summary>
            Gets or sets the flag that determines whether to process
            <c>*</c>, <c>?</c>, and <c>-</c> characters as wildcards.
            </summary>
            <remarks>
            The <see cref="P:GSF.Searching.AsyncSearcher`1.UseRegex"/> property supercedes this property.
            In order to use wildcards, <c>UseRegex</c> must be set to <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.UseRegex">
            <summary>
            Gets or sets the flag that determines whether to
            process the search tokens as regular expressions.
            </summary>
            <remarks>
            This property supercedes the <see cref="P:GSF.Searching.AsyncSearcher`1.UseWildcards"/> property.
            In order to use wildcards, this property must be set to <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.Searching.AsyncSearcher`1.Searching">
            <summary>
            Gets the flag that indicates whether the <see cref="T:GSF.Searching.AsyncSearcher`1"/>
            is in the middle of a search operation.
            </summary>
        </member>
        <member name="M:GSF.Searching.AsyncSearcher`1.Add(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds a collection of items to the search.
            </summary>
            <param name="itemsToSearch">The items to be searched.</param>
        </member>
        <member name="M:GSF.Searching.AsyncSearcher`1.Clear">
            <summary>
            Clears the queue of items to search.
            </summary>
            <remarks>
            After a search is cancelled, there may still
            be items lingering in the queue. This method
            allows the user to clear them out.
            </remarks>
        </member>
        <member name="M:GSF.Searching.AsyncSearcher`1.Cancel">
            <summary>
            Cancels currently running searches.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.CharacterGroup">
            <summary>
            Defines a group of characters that can
            appear in an automatically generated password.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.CharacterGroup.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Security.Cryptography.CharacterGroup"/> class.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.CharacterGroup.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Security.Cryptography.CharacterGroup"/> class.
            </summary>
            <param name="characters">String representing the characters in the character group.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.CharacterGroup.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Security.Cryptography.CharacterGroup"/> class.
            </summary>
            <param name="characters">String representing the characters in the character group.</param>
            <param name="minOccurrence">The minimum number of occurrences of this character group in the password.</param>
        </member>
        <member name="P:GSF.Security.Cryptography.CharacterGroup.Characters">
            <summary>
            The collection of characters in the character group.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.CharacterGroup.MinOccurrence">
            <summary>
            The minimum number of occurrences of any of the
            characters in this character group in the password.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.CipherStrength">
            <summary>
            Cryptographic strength enumeration.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.CipherStrength.None">
            <summary>Uses no encryption.</summary>
        </member>
        <member name="F:GSF.Security.Cryptography.CipherStrength.Aes128">
            <summary>Uses AES 128-bit encryption.</summary>
        </member>
        <member name="F:GSF.Security.Cryptography.CipherStrength.Aes256">
            <summary>Uses AES 256-bit encryption.</summary>
        </member>
        <member name="T:GSF.Security.Cryptography.Cipher">
            <summary>
            Provides general use cryptographic functions.
            </summary>
            <remarks>
            This class exists to simplify usage of basic cryptography functionality.
            </remarks>
            <summary>
            Provides general use cryptographic functions.
            </summary>
            <remarks>
            This class exists to simplify usage of basic cryptography functionality.
            </remarks>
        </member>
        <member name="T:GSF.Security.Cryptography.Cipher.KeyIVCache">
            <summary>
            Represents an inter-process serializable cryptographic key and initialization vector cache.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.Cipher.KeyIVCache.KeyIVTable">
            <summary>
            Gets a copy of the internal key and initialization vector table.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.Cipher.KeyIVCache.ManagedEncryption">
            <summary>
            Gets or sets a boolean value that determines whether to use AesManaged
            or the CAPI wrapper (AesCryptoServiceProvider) for encryption.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.GetCryptoKeyIV(System.String,System.Int32)">
            <summary>
            Gets the crypto key and initialization vector for the given user password.
            </summary>
            <param name="password">User password used for key lookup.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <returns>Crypto key, index 0, and initialization vector, index 1, for the given user password.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.KeyIVExists(System.String,System.Int32)">
            <summary>
            Determines if a key and initialization vector exists for the given <paramref name="password"/>.
            </summary>
            <param name="password">User password used for key lookups.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <returns><c>true</c> if a key and initialization vector exists for the given <paramref name="password"/>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.ImportKeyIV(System.String,System.Int32,System.String)">
            <summary>
            Imports a key and initialization vector into the local system key cache.
            </summary>
            <param name="password">User password used for key lookups.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <param name="keyIVText">Text based key and initialization vector to import into local key cache.</param>
            <remarks>
            This method is used to manually import a key created on another computer.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.ExportKeyIV(System.String,System.Int32)">
            <summary>
            Exports a key and initialization vector from the local system key cache.
            </summary>
            <param name="password">User password used for key lookup.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <returns>Text based key and initialization vector exported from local key cache.</returns>
            <remarks>
            This method is used to manually export a key to be installed on another computer. 
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.MergeLeft(GSF.Security.Cryptography.Cipher.KeyIVCache)">
            <summary>
            Merge keys and initialization vectors from another <see cref="T:GSF.Security.Cryptography.Cipher.KeyIVCache"/>, local cache taking precedence.
            </summary>
            <param name="other">Other <see cref="T:GSF.Security.Cryptography.Cipher.KeyIVCache"/> to merge with.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.MergeRight(GSF.Security.Cryptography.Cipher.KeyIVCache)">
            <summary>
            Merge keys and initialization vectors from another <see cref="T:GSF.Security.Cryptography.Cipher.KeyIVCache"/>, other cache taking precedence.
            </summary>
            <param name="other">Other <see cref="T:GSF.Security.Cryptography.Cipher.KeyIVCache"/> to merge with.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.Save">
            <summary>
            Initiates inter-process synchronized save of key and initialization vector table.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.SaveFileData(System.IO.FileStream,System.Byte[])">
            <summary>
            Handles serialization of file to disk; virtual method allows customization (e.g., pre-save encryption and/or data merge).
            </summary>
            <param name="fileStream"><see cref="T:System.IO.FileStream"/> used to serialize data.</param>
            <param name="fileData">File data to be serialized.</param>
            <remarks>
            Consumers overriding this method should not directly call <see cref="P:GSF.IO.InterprocessCache.FileData"/> property to avoid potential dead-locks.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVCache.LoadFileData(System.IO.FileStream)">
            <summary>
            Handles deserialization of file from disk; virtual method allows customization (e.g., pre-load decryption and/or data merge).
            </summary>
            <param name="fileStream"><see cref="T:System.IO.FileStream"/> used to deserialize data.</param>
            <returns>Deserialized file data.</returns>
            <remarks>
            Consumers overriding this method should not directly call <see cref="P:GSF.IO.InterprocessCache.FileData"/> property to avoid potential dead-locks.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.FlushCache(System.Int32)">
            <summary>
            Blocks current thread and waits for any pending save of local system key cache to complete.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
            <remarks>
            <para>
            This method only needs to be used if crypto cache changes could be pending during application shutdown (i.e., executing ciphers with
            new keys that have not been saved, using existing keys does not queue crypto cache updates) to ensure keys are flushed before exit.
            </para>
            <para>
            For most applications it is expected that this method would be rarely needed. However, possible usage scenarios would include:<br/>
            <list type="bullet">
              <item>
                <description>
                Writing an application that establishes crypto keys where application lifetime would be very short (i.e., run, create keys, exit).
                </description>
              </item>
              <item>
                <description>
                Creating new crypto keys during application shutdown (i.e., performing ciphers with non-existing keys at shutdown).
                </description>
              </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.ReloadCache">
            <summary>
            Manually loads keys into the local system key cache.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.KeyIVExists(System.String,System.Int32)">
            <summary>
            Determines if a key and initialization vector exists for the given <paramref name="password"/> in the local system key cache.
            </summary>
            <param name="password">User password used for key lookups.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <returns><c>true</c> if a key and initialization vector exists for the given <paramref name="password"/>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.ImportKeyIV(System.String,System.Int32,System.String)">
            <summary>
            Imports a key and initialization vector into the local system key cache.
            </summary>
            <param name="password">User password used for key lookups.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <param name="keyIVText">Text based key and initialization vector to import into local key cache.</param>
            <remarks>
            This method is used to manually import a key created on another computer.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.ExportKeyIV(System.String,System.Int32)">
            <summary>
            Exports a key and initialization vector from the local system key cache.
            </summary>
            <param name="password">User password used for key lookup.</param>
            <param name="keySize">Specifies the desired key size.</param>
            <returns>Text based key and initialization vector exported from local key cache.</returns>
            <remarks>
            This method is used to manually export a key to be installed on another computer. 
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.GetPasswordHash(System.String,System.Int32)">
            <summary>
            Gets the Base64 encoded SHA-256 hash of given user password.
            </summary>
            <param name="password">User password to get hash for.</param>
            <param name="categoryID">Specifies the desired category ID.</param>
            <returns>Base64 encoded SHA-256 hash of user password.</returns>
            <remarks>
            The optional <paramref name="categoryID"/> will be appended to the <paramref name="password"/> to allow
            the same password to be used in different contexts and return different results, when useful.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.String,System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a Base64 encoded string of the returned binary array of the encrypted data, generated with
            the given parameters.
            </summary>
            <param name="source">Source string to encrypt.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when encrypting string.</param>
            <returns>An encrypted version of the source string.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.Byte[],System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of encrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to encrypt.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when encrypting data.</param>
            <returns>An encrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.Byte[],System.Int32,System.Int32,System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of encrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to encrypt.</param>
            <param name="startIndex">Offset into <paramref name="source"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="source"/> buffer to encrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when encrypting data.</param>
            <returns>An encrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.Byte[],System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of encrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to encrypt.</param>
            <param name="key">Encryption key to use to encrypt data.</param>
            <param name="iv">Initialization vector to use to encrypt data.</param>
            <param name="strength">Cryptographic strength to use when encrypting data.</param>
            <returns>An encrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of encrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to encrypt.</param>
            <param name="startIndex">Offset into <paramref name="source"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="source"/> buffer to encrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="key">Encryption key to use to encrypt data.</param>
            <param name="iv">Initialization vector to use to encrypt data.</param>
            <param name="strength">Cryptographic strength to use when encrypting data.</param>
            <returns>An encrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a stream of encrypted data for the given parameters.
            </summary>
            <param name="source">Source stream that contains data to encrypt.</param>
            <param name="key">Encryption key to use to encrypt stream.</param>
            <param name="iv">Initialization vector to use to encrypt stream.</param>
            <param name="strength">Cryptographic strength to use when encrypting stream.</param>
            <returns>An encrypted version of the source stream.</returns>
            <remarks>
            This returns a memory stream of the encrypted results, if the incoming stream is
            very large this will consume a large amount of memory.  In this case use the overload
            that takes the destination stream as a parameter instead.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Encrypt(System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Encrypts input stream onto output stream for the given parameters.
            </summary>
            <param name="source">Source stream that contains data to encrypt.</param>
            <param name="destination">Destination stream used to hold encrypted data.</param>
            <param name="key">Encryption key to use to encrypt stream.</param>
            <param name="iv">Initialization vector to use to encrypt stream.</param>
            <param name="strength">Cryptographic strength to use when encrypting stream.</param>
            <param name="progressHandler">Optional delegate to handle progress updates for encrypting large streams.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.EncryptFile(System.String,System.String,System.String,GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Creates an encrypted file from source file data.
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when encrypting file.</param>
            <param name="progressHandler">Optional delegate to handle progress updates for encrypting large files.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.String,System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a decrypted string from a Base64 encoded string of binary encrypted data from the given
            parameters.
            </summary>
            <param name="source">Source string to decrypt.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when decrypting string.</param>
            <returns>A decrypted version of the source string.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.Byte[],System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of decrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to decrypt.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when decrypting data.</param>
            <returns>A decrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.Byte[],System.Int32,System.Int32,System.String,GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of decrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to decrypt.</param>
            <param name="startIndex">Offset into <paramref name="source"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="source"/> buffer to decrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when decrypting data.</param>
            <returns>A decrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.Byte[],System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of decrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to decrypt.</param>
            <param name="key">Encryption key to use to decrypt data.</param>
            <param name="iv">Initialization vector to use to decrypt data.</param>
            <param name="strength">Cryptographic strength to use when decrypting data.</param>
            <returns>A decrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a binary array of decrypted data for the given parameters.
            </summary>
            <param name="source">Binary array of data to decrypt.</param>
            <param name="startIndex">Offset into <paramref name="source"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="source"/> buffer to decrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="key">Encryption key to use to decrypt data.</param>
            <param name="iv">Initialization vector to use to decrypt data.</param>
            <param name="strength">Cryptographic strength to use when decrypting data.</param>
            <returns>A decrypted version of the source data.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength)">
            <summary>
            Returns a stream of decrypted data for the given parameters.
            </summary>
            <param name="source">Source stream that contains data to decrypt.</param>
            <param name="key">Encryption key to use to decrypt stream.</param>
            <param name="iv">Initialization vector to use to decrypt stream.</param>
            <param name="strength">Cryptographic strength to use when decrypting stream.</param>
            <returns>A decrypted version of the source stream.</returns>
            <remarks>
            This returns a memory stream of the decrypted results, if the incoming stream is
            very large this will consume a large amount of memory.  In this case use the overload
            that takes the destination stream as a parameter instead.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.Decrypt(System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[],GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Decrypts input stream onto output stream for the given parameters.
            </summary>
            <param name="source">Source stream that contains data to decrypt.</param>
            <param name="destination">Destination stream used to hold decrypted data.</param>
            <param name="key">Encryption key to use to decrypt stream.</param>
            <param name="iv">Initialization vector to use to decrypt stream.</param>
            <param name="strength">Cryptographic strength to use when decrypting stream.</param>
            <param name="progressHandler">Optional delegate to handle progress updates for decrypting large streams.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.DecryptFile(System.String,System.String,System.String,GSF.Security.Cryptography.CipherStrength,System.Action{GSF.ProcessProgress{System.Int64}})">
            <summary>
            Creates a decrypted file from source file data.
            </summary>
            <param name="sourceFileName">Source file name.</param>
            <param name="destinationFileName">Destination file name.</param>
            <param name="password">User password used for key lookup.</param>
            <param name="strength">Cryptographic strength to use when decrypting file.</param>
            <param name="progressHandler">Optional delegate to handle progress updates for decrypting large files.</param>
        </member>
        <member name="P:GSF.Security.Cryptography.Cipher.SystemAllowsManagedEncryption">
            <summary>
            Gets a flag that determines if system will allow use of managed, i.e., non-FIPS compliant, security algorithms.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.#cctor">
            <summary>
            Static constructor for the <see cref="T:GSF.Security.Cryptography.Cipher"/> class.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.OnCreated">
            <summary>
            Static constructor continuation for the <see cref="T:GSF.Security.Cryptography.Cipher"/> class.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.CreateSHA1">
            <summary>
            Creates a <see cref="T:System.Security.Cryptography.SHA1"/> hashing algorithm that respects current FIPS setting.
            </summary>
            <returns>New <see cref="T:System.Security.Cryptography.SHA1"/> hashing algorithm that respects current FIPS setting.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.CreateSHA256">
            <summary>
            Creates a <see cref="T:System.Security.Cryptography.SHA256"/> hashing algorithm that respects current FIPS setting.
            </summary>
            <returns>New <see cref="T:System.Security.Cryptography.SHA256"/> hashing algorithm that respects current FIPS setting.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.CreateSHA384">
            <summary>
            Creates a <see cref="T:System.Security.Cryptography.SHA384"/> hashing algorithm that respects current FIPS setting.
            </summary>
            <returns>New <see cref="T:System.Security.Cryptography.SHA384"/> hashing algorithm that respects current FIPS setting.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.CreateSHA512">
            <summary>
            Creates a <see cref="T:System.Security.Cryptography.SHA512"/> hashing algorithm that respects current FIPS setting.
            </summary>
            <returns>New <see cref="T:System.Security.Cryptography.SHA512"/> hashing algorithm that respects current FIPS setting.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Cipher.CreateAes">
            <summary>
            Creates an <see cref="T:System.Security.Cryptography.Aes"/> encryption algorithm that respects current FIPS setting.
            </summary>
            <returns>New <see cref="T:System.Security.Cryptography.Aes"/> encryption algorithm that respects current FIPS setting.</returns>
        </member>
        <member name="T:GSF.Security.Cryptography.DataProtection">
            <summary>
            Provides methods for encrypting and decrypting data.
            </summary>
            <remarks>
            This is a safety wrapper around the <see cref="T:System.Security.Cryptography.ProtectedData"/> class such that it can be used with
            <c>LocalMachine</c> scope regardless of current user. This is especially important for applications
            that may be running as user account that has no association to the current user, e.g., an Azure AD
            user or database account when authenticated using <c>AdoSecurityProvider</c>.
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.DataProtection.Protect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Encrypts the data in a specified byte array and returns a byte array that contains the encrypted data.
            </summary>
            <returns>A byte array representing the encrypted data.</returns>
            <param name="userData">A byte array that contains data to encrypt.</param>
            <param name="optionalEntropy">An optional additional byte array used to increase the complexity of the encryption, or null for no additional complexity.</param>
            <param name="scope">One of the enumeration values that specifies the scope of encryption.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="userData"/> parameter is null.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The encryption failed.</exception>
            <exception cref="T:System.NotSupportedException">The operating system does not support this method. </exception>
            <exception cref="T:System.OutOfMemoryException">The system ran out of memory while encrypting the data.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.DataProtection.Unprotect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Decrypts the data in a specified byte array and returns a byte array that contains the decrypted data.
            </summary>
            <returns>A byte array representing the decrypted data.</returns>
            <param name="encryptedData">A byte array containing data encrypted using the <see cref="M:GSF.Security.Cryptography.DataProtection.Protect(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)"/> method.</param>
            <param name="optionalEntropy">An optional additional byte array that was used to encrypt the data, or null if the additional byte array was not used.</param>
            <param name="scope">One of the enumeration values that specifies the scope of data protection that was used to encrypt the data.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="encryptedData"/> parameter is null.</exception>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The decryption failed.</exception>
            <exception cref="T:System.NotSupportedException">The operating system does not support this method. </exception>
            <exception cref="T:System.OutOfMemoryException">Out of memory.</exception>
        </member>
        <member name="T:GSF.Security.Cryptography.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to simplify and standardize usage of basic cryptography using a combination 
            of standard and proprietary encryption algorithms to produce decent obfuscations of strings, buffers and streams of data.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.PasswordGenerator">
            <summary>
            Generates random passwords.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.PasswordGenerator.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Security.Cryptography.PasswordGenerator"/> class.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.PasswordGenerator.#ctor(System.Collections.Generic.IEnumerable{GSF.Security.Cryptography.CharacterGroup})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Security.Cryptography.PasswordGenerator"/> class.
            </summary>
            <param name="characterGroups">The list of character groups used to generate passwords.</param>
        </member>
        <member name="P:GSF.Security.Cryptography.PasswordGenerator.CharacterGroups">
            <summary>
            Gets the collection of character groups used by this <see cref="T:GSF.Security.Cryptography.PasswordGenerator"/>.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.PasswordGenerator.AllCharacters">
            <summary>
            Gets a string representing the total collection
            of characters across all character groups.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.PasswordGenerator.MinLength">
            <summary>
            Gets the absolute minimum length of password that can be
            generated by the <see cref="T:GSF.Security.Cryptography.PasswordGenerator"/> based
            on the minimum occurrence of each character group.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.PasswordGenerator.GeneratePassword">
            <summary>
            Generates a random password with 8 characters or
            <see cref="P:GSF.Security.Cryptography.PasswordGenerator.MinLength"/> if it is greater than 8 characters.
            </summary>
            <returns>A randomly generated password.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.PasswordGenerator.GeneratePassword(System.Int32,System.Int32)">
            <summary>
            Generates a password with length between the given
            <paramref name="minLength"/> and <paramref name="maxLength"/>.
            </summary>
            <param name="minLength">The minimum length of the generated password.</param>
            <param name="maxLength">The maximum length of the generated password.</param>
            <returns>A randomly generated password.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.PasswordGenerator.GeneratePassword(System.Int32)">
            <summary>
            Generates a password with the given length.
            </summary>
            <param name="length">The length of the password to be generated.</param>
            <returns>A randomly generated password.</returns>
        </member>
        <member name="F:GSF.Security.Cryptography.PasswordGenerator.DefaultCharacterGroups">
            <summary>
            Default set of character groups used by the <see cref="T:GSF.Security.Cryptography.PasswordGenerator"/>.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.PasswordGenerator.Default">
            <summary>
            Defines the default password generator.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.Random">
            <summary>
            Generates cryptographically strong random numbers.
            </summary>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Number">
            <summary>
            Generates a semi cryptographically strong double-precision floating-point random number between zero and one. i.e. [0-1)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Decimal">
            <summary>
            Generates a semi cryptographically strong random decimal between zero and one. i.e. [0-1)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Between(System.Double,System.Double)">
            <summary>
            Generates a semi cryptographically strong random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <param name="startNumber">A <see cref="T:System.Double"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.Double"/> that is the high end of our range.</param>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <returns>A <see cref="T:System.Double"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>, or an exception.  </returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.GetBytes(System.Byte[])">
            <summary>
            Fills an array of bytes with a cryptographically strong sequence of random values.
            </summary>
            <param name="buffer">The array to fill with a cryptographically strong sequence of random values.</param>
            <remarks>
            <para>The length of the byte array determines how many cryptographically strong random bytes are produced.</para>
            <para>This method is thread safe.</para>
            </remarks>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <exception cref="T:System.ArgumentNullException">buffer is null.</exception>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Boolean">
            <summary>
            Generates a cryptographically strong random boolean (i.e., a coin toss).
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Byte">
            <summary>
            Generates a cryptographically strong 8-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.ByteBetween(System.Byte,System.Byte)">
            <summary>
            Generates a cryptographically strong 8-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.Byte"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.Byte"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.Byte"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Int16">
            <summary>
            Generates a cryptographically strong 16-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Int16Between(System.Int16,System.Int16)">
            <summary>
            Generates a cryptographically strong 16-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.Int16"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.Int16"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.Int16"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.UInt16">
            <summary>
            Generates a cryptographically strong unsigned 16-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.UInt16Between(System.UInt16,System.UInt16)">
            <summary>
            Generates a cryptographically strong unsigned 16-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.UInt16"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.UInt16"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.UInt16"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Int24">
            <summary>
            Generates a cryptographically strong 24-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Int24Between(GSF.Int24,GSF.Int24)">
            <summary>
            Generates a cryptographically strong 24-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="P:GSF.Security.Cryptography.Random.Int24"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="P:GSF.Security.Cryptography.Random.Int24"/> that is the high end of our range.</param>
            <returns>A <see cref="P:GSF.Security.Cryptography.Random.Int24"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.UInt24">
            <summary>
            Generates a cryptographically strong unsigned 24-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Int24Between(GSF.UInt24,GSF.UInt24)">
            <summary>
            Generates a cryptographically strong unsigned 24-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="P:GSF.Security.Cryptography.Random.UInt24"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="P:GSF.Security.Cryptography.Random.UInt24"/> that is the high end of our range.</param>
            <returns>A <see cref="P:GSF.Security.Cryptography.Random.UInt24"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Int32">
            <summary>
            Generates a cryptographically strong 32-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Int32Between(System.Int32,System.Int32)">
            <summary>
            Generates a cryptographically strong 32-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.Int32"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.Int32"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.Int32"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.UInt32">
            <summary>
            Generates a cryptographically strong unsigned 32-bit random integer. 
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.UInt32Between(System.UInt32,System.UInt32)">
            <summary>
            Generates a cryptographically strong unsigned 32-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.UInt32"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.UInt32"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.UInt32"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.Int64">
            <summary>
            Generates a cryptographically strong 64-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.Int64Between(System.Int64,System.Int64)">
            <summary>
            Generates a cryptographically strong 64-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.Int64"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.Int64"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.Int64"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="P:GSF.Security.Cryptography.Random.UInt64">
            <summary>
            Generates a cryptographically strong unsigned 64-bit random integer.
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.UInt64Between(System.UInt64,System.UInt64)">
            <summary>
            Generates a cryptographically strong unsigned 64-bit random integer between specified values. i.e. [<paramref name="startNumber"/>-<paramref name="stopNumber"/>)
            </summary>
            <exception cref="T:System.Security.Cryptography.CryptographicException">The cryptographic service provider (CSP) cannot be acquired.</exception>
            <param name="startNumber">A <see cref="T:System.UInt64"/> that is the low end of our range.</param>
            <param name="stopNumber">A <see cref="T:System.UInt64"/> that is the high end of our range.</param>
            <returns>A <see cref="T:System.UInt64"/> that is generated between the <paramref name="startNumber"/> and the <paramref name="stopNumber"/>.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.GetRandomNumberLessThan(System.UInt32)">
            <summary>
            Returns a cryptographically strong number that is less than the the supplied value
            </summary>
            <param name="maxValue">the max value to return exclusive</param>
            <returns></returns>
            <remarks>
            if 0 is provided, 0 is returned
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.GetRandomNumberLessThan(System.UInt64)">
            <summary>
            Returns a cryptographically strong number that is less than the the supplied value
            </summary>
            <param name="maxValue">the max value to return exclusive</param>
            <returns></returns>
            <remarks>
            if 0 is provided, 0 is returned
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.GetRandomNumberLessThan(System.Int64)">
            <summary>
            Returns a cryptographically strong number that is less the the supplied value
            </summary>
            <param name="maxValue">the max value to return exclusive</param>
            <returns></returns>
            <remarks>
            A number less than a negative number rolls down to long.MinValue, then to long.MaxValue
            if 0 is provided, 0 is returned
            </remarks>
        </member>
        <member name="M:GSF.Security.Cryptography.Random.GetRandomNumberLessThan(System.Int32)">
            <summary>
            Returns a cryptographically strong number that is less the the supplied value
            </summary>
            <param name="maxValue">the max value to return exclusive</param>
            <returns></returns>
            <remarks>
            A number less than a negative number rolls down to int.MinValue, then to int.MaxValue
            if 0 is provided, 0 is returned
            </remarks>
        </member>
        <member name="T:GSF.Security.Cryptography.Standard">
            <summary>
            This class is used internally do define a standard buffer size.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.SymmetricAlgorithmExtensions">
            <summary>
            Defines extension functions related to cryptographic <see cref="T:System.Security.Cryptography.SymmetricAlgorithm"/> objects.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.SymmetricAlgorithmExtensions.Encrypt(System.Security.Cryptography.SymmetricAlgorithm,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Byte[])">
            <summary>
            Returns a binary array of encrypted data for the given parameters.
            </summary>
            <param name="algorithm"><see cref="T:System.Security.Cryptography.SymmetricAlgorithm"/> to use for encryption.</param>
            <param name="data">Source buffer containing data to encrypt.</param>
            <param name="startIndex">Offset into <paramref name="data"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="data"/> buffer to encrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="key">The secret key to use for the symmetric algorithm.</param>
            <param name="iv">The initialization vector to use for the symmetric algorithm.</param>
            <returns>Encrypted version of <paramref name="data"/> buffer.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.SymmetricAlgorithmExtensions.Encrypt(System.Security.Cryptography.SymmetricAlgorithm,System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[])">
            <summary>
            Encrypts input stream onto output stream for the given parameters.
            </summary>
            <param name="algorithm"><see cref="T:System.Security.Cryptography.SymmetricAlgorithm"/> to use for encryption.</param>
            <param name="source">Source stream that contains data to encrypt.</param>
            <param name="destination">Destination stream used to hold encrypted data.</param>
            <param name="key">The secret key to use for the symmetric algorithm.</param>
            <param name="iv">The initialization vector to use for the symmetric algorithm.</param>
        </member>
        <member name="M:GSF.Security.Cryptography.SymmetricAlgorithmExtensions.Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Byte[])">
            <summary>
            Returns a binary array of decrypted data for the given parameters.
            </summary>
            <param name="algorithm"><see cref="T:System.Security.Cryptography.SymmetricAlgorithm"/> to use for decryption.</param>
            <param name="data">Source buffer containing data to decrypt.</param>
            <param name="startIndex">Offset into <paramref name="data"/> buffer.</param>
            <param name="length">Number of bytes in <paramref name="data"/> buffer to decrypt starting from <paramref name="startIndex"/> offset.</param>
            <param name="key">The secret key to use for the symmetric algorithm.</param>
            <param name="iv">The initialization vector to use for the symmetric algorithm.</param>
            <returns>Decrypted version of <paramref name="data"/> buffer.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.SymmetricAlgorithmExtensions.Decrypt(System.Security.Cryptography.SymmetricAlgorithm,System.IO.Stream,System.IO.Stream,System.Byte[],System.Byte[])">
            <summary>
            Decrypts input stream onto output stream for the given parameters.
            </summary>
            <param name="algorithm"><see cref="T:System.Security.Cryptography.SymmetricAlgorithm"/> to use for decryption.</param>
            <param name="source">Source stream that contains data to decrypt.</param>
            <param name="destination">Destination stream used to hold decrypted data.</param>
            <param name="key">The secret key to use for the symmetric algorithm.</param>
            <param name="iv">The initialization vector to use for the symmetric algorithm.</param>
        </member>
        <member name="T:GSF.Security.Cryptography.X509.CertificateMaker">
            <summary>
            Allows for on the fly creation of a self signed X509 certificate.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.X509.CertificateMaker.GenerateSelfSignedCertificate(GSF.Security.Cryptography.X509.CertificateSigningMode,System.String,System.DateTime,System.DateTime)">
            <summary>
            Creates a certificate authority certificate.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Security.Cryptography.X509.CertificateSigningMode">
            <summary>
            The mechanism that will be used to sign the certificate.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_1024_SHA_1">
            <summary>
            80-bit security. Before 2016.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_2048_SHA2_256">
            <summary>
            112-bit security. Until 2030.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_3072_SHA2_256">
            <summary>
            128-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_3072_SHA2_384">
            <summary>
            128-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_4096_SHA2_256">
            <summary>
            128-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_4096_SHA2_384">
            <summary>
            142-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_7680_SHA2_384">
            <summary>
            192-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.RSA_15360_SHA2_512">
            <summary>
            256-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.ECDSA_256_SHA2_256">
            <summary>
            128-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.ECDSA_384_SHA2_384">
            <summary>
            192-bit security
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CertificateSigningMode.ECDSA_521_SHA2_512">
            <summary>
            256-bit security
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.X509.CipherEngine">
            <summary>
            The cipher engine to use to create the certificate.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CipherEngine.RSACryptoServiceProvider">
            <summary>
            Uses the <see cref="F:GSF.Security.Cryptography.X509.CipherEngine.RSACryptoServiceProvider"/>. This is the only version supported by MONO.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CipherEngine.RSACng">
            <summary>
            Uses the <see cref="F:GSF.Security.Cryptography.X509.CipherEngine.RSACng"/>. Requires a modern Windows OS.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.CipherEngine.ECDsaCng">
            <summary>
            Uses the <see cref="F:GSF.Security.Cryptography.X509.CipherEngine.ECDsaCng"/>. Requires a modern Windows OS.
            </summary>
        </member>
        <member name="T:GSF.Security.Cryptography.X509.X509CertificateGenerator">
            <summary>
            A class to Generate Version 3 X509Certificates.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.SerialNumber">
            <summary>
            A positive serial number to use for the certificate.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.Issuer">
            <summary>
            The issuer name. Do not include CN=. Defaults to a GUID Hexstring.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.Subject">
            <summary>
            The subject name. Do not include CN=. Defaults to a GUID Hexstring.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.NotBefore">
            <summary>
            The effective date. Defaults to the first day of the calendar year. (Unless it's before Jan 7, in that case, it's Jan 1 of the prior year)
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.NotAfter">
            <summary>
            Defaults to 10 years after then effective date.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.KeySize">
            <summary>
            The key size to generate.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.SignatureBits">
            <summary>
            The number of bits of the hash method used to sign the certificate.
            </summary>
        </member>
        <member name="F:GSF.Security.Cryptography.X509.X509CertificateGenerator.CipherEngine">
            <summary>
            The cipher engine to use.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.X509.X509CertificateGenerator.#ctor">
            <summary>
            Used to generate an X509Certificate.
            </summary>
        </member>
        <member name="M:GSF.Security.Cryptography.X509.X509CertificateGenerator.Generate">
            <summary>
            Generate a new X509Certificate using the passed in SignatureCalculator.
            </summary>
            <returns>An X509Certificate.</returns>
        </member>
        <member name="M:GSF.Security.Cryptography.X509.X509CertificateGenerator.GenerateFile(System.String,System.String)">
            <summary>
            Generates a PFX file using the supplied password.
            </summary>
            <param name="fileName">The name of the file</param>
            <param name="password">the password to encrypt the file with.</param>
        </member>
        <member name="T:GSF.SerializationFormat">
            <summary>
            Indicates the format of <see cref="T:System.Object"/> serialization or deserialization.
            </summary>
        </member>
        <member name="F:GSF.SerializationFormat.Xml">
            <summary>
            <see cref="T:System.Object"/> is serialized or deserialized using <see cref="T:System.Runtime.Serialization.DataContractSerializer"/> to XML (eXtensible Markup Language) format.
            </summary>
            <remarks>
            <see cref="T:System.Object"/> can be serialized or deserialized using <see cref="T:System.Xml.Serialization.XmlSerializer"/> by adding the <see cref="T:System.ServiceModel.XmlSerializerFormatAttribute"/> to the <see cref="T:System.Object"/>.
            </remarks>
        </member>
        <member name="F:GSF.SerializationFormat.Json">
            <summary>
            <see cref="T:System.Object"/> is serialized or deserialized using <see cref="T:System.Runtime.Serialization.Json.DataContractJsonSerializer"/> to JSON (JavaScript Object Notation) format.
            </summary>
        </member>
        <member name="F:GSF.SerializationFormat.Binary">
            <summary>
            <see cref="T:System.Object"/> is serialized or deserialized using <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter"/> to binary format.
            </summary>
        </member>
        <member name="T:GSF.Serialization">
            <summary>
            Common serialization related functions.
            </summary>
        </member>
        <member name="M:GSF.Serialization.CloneObject``1(``0)">
            <summary>
            Creates a clone of a serializable object.
            </summary>
            <typeparam name="T">The type of the cloned object.</typeparam>
            <param name="sourceObject">The type source to be cloned.</param>
            <returns>A clone of <paramref name="sourceObject"/>.</returns>
        </member>
        <member name="M:GSF.Serialization.GetObject``1(System.String)">
            <summary>
            Performs XML deserialization on the XML string and returns the typed object for it.
            </summary>
            <remarks>
            This function will throw an error during deserialization if the input data is invalid,
            consider using TryGetObject to prevent needing to implement exception handling.
            </remarks>
            <exception cref="T:System.InvalidOperationException">
            An error occurred during deserialization. The original exception is available using 
            the InnerException property.
            </exception>
            <typeparam name="T">The type of the object to create from the serialized string <paramref name="serializedObject"/>.</typeparam>
            <param name="serializedObject">A <see cref="T:System.String"/> representing the object (<paramref name="serializedObject"/>) to deserialize.</param>
            <returns>A type T based on <paramref name="serializedObject"/>.</returns>
        </member>
        <member name="M:GSF.Serialization.TryGetObject``1(System.String,``0@)">
            <summary>
            Attempts XML deserialization on the XML string and returns the typed object for it.
            </summary>
            <typeparam name="T">The generic type T that is to be deserialized.</typeparam>
            <param name="serializedObject"><see cref="T:System.String"/> that contains the serialized representation of the object.</param>
            <param name="deserializedObject">An object of type T that is passed in as the container to hold the deserialized object from the string <paramref name="serializedObject"/>.</param>
            <returns><see cref="T:System.Boolean"/> value indicating if the deserialization was successful.</returns>
        </member>
        <member name="M:GSF.Serialization.GetObject``1(System.Byte[])">
            <summary>
            Performs binary deserialization on the byte array and returns the typed object for it.
            </summary>
            <remarks>
            This function will throw an error during deserialization if the input data is invalid,
            consider using TryGetObject to prevent needing to implement exception handling.
            </remarks>
            <exception cref="T:System.Runtime.Serialization.SerializationException">Serialized object data is invalid or length is 0.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission. </exception>
            <typeparam name="T">The type of the object to create from the serialized byte array <paramref name="serializedObject"/>.</typeparam>
            <param name="serializedObject">A <see cref="T:System.Byte"/> array representing the object (<paramref name="serializedObject"/>) to deserialize.</param>
            <returns>A type T based on <paramref name="serializedObject"/>.</returns>
        </member>
        <member name="M:GSF.Serialization.TryGetObject``1(System.Byte[],``0@)">
            <summary>
            Attempts binary deserialization on the byte array and returns the typed object for it.
            </summary>
            <param name="serializedObject">A <see cref="T:System.Byte"/> array representing the object (<paramref name="serializedObject"/>) to deserialize.</param>
            <param name="deserializedObject">A type T object, passed by reference, that is used to be hold the deserialized object.</param>
            <typeparam name="T">The generic type T that is to be deserialized.</typeparam>
            <returns>A <see cref="T:System.Boolean"/> which indicates whether the deserialization process was successful.</returns>
        </member>
        <member name="M:GSF.Serialization.GetObject(System.Byte[])">
            <summary>
            Performs binary deserialization on the byte array and returns the object for it.
            </summary>
            <remarks>
            This function will throw an error during deserialization if the input data is invalid,
            consider using TryGetObject to prevent needing to implement exception handling.
            </remarks>
            <exception cref="T:System.Runtime.Serialization.SerializationException">Serialized object data is invalid or length is 0.</exception>
            <exception cref="T:System.Security.SecurityException">The caller does not have the required permission. </exception>
            <param name="serializedObject">A <see cref="T:System.Byte"/> array representing the object (<paramref name="serializedObject"/>) to deserialize.</param>
            <returns>An <see cref="T:System.Object"/> based on <paramref name="serializedObject"/>.</returns>
        </member>
        <member name="M:GSF.Serialization.TryGetObject(System.Byte[],System.Object@)">
            <summary>
            Attempts binary deserialization on the byte array and returns the typed object for it.
            </summary>
            <param name="serializedObject">A <see cref="T:System.Byte"/> array representing the object (<paramref name="serializedObject"/>) to deserialize.</param>
            <param name="deserializedObject">An <see cref="T:System.Object"/>, passed by reference, that is used to be hold the deserialized object.</param>
            <returns>A <see cref="T:System.Boolean"/> which indicates whether the deserialization process was successful.</returns>
        </member>
        <member name="M:GSF.Serialization.GetString(System.Object)">
            <summary>
            Performs XML serialization on the serializable object and returns the output as string.
            </summary>
            <param name="serializableObject">The serializable object.</param>
            <returns>An XML representation of the object if the specified object can be serialized; otherwise an empty string.</returns>
        </member>
        <member name="M:GSF.Serialization.GetBytes(System.Object)">
            <summary>
            Performs binary serialization on the serializable object and returns the output as byte array.
            </summary>
            <param name="serializableObject">The serializable object.</param>
            <returns>A byte array representation of the object if the specified object can be serialized; otherwise an empty array.</returns>
        </member>
        <member name="M:GSF.Serialization.GetStream(System.Object)">
            <summary>
            Performs binary serialization on the serializable object and returns the serialized object as a stream.
            </summary>
            <param name="serializableObject">The serializable object.</param>
            <returns>A memory stream representation of the object if the specified object can be serialized; otherwise an empty stream.</returns>
        </member>
        <member name="F:GSF.Serialization.LegacyBinder">
            <summary>
            Serialization binder used to deserialize files that were serialized using the old library frameworks
            (TVA Code Library, Time Series Framework, TVA.PhasorProtocols, and PMU Connection Tester) into classes
            in the Grid Solutions Framework.
            </summary>
        </member>
        <member name="M:GSF.Serialization.LegacySerializationBinder.BindToType(System.String,System.String)">
            <summary>
            Controls the binding of a serialized object to a type.
            </summary>
            <param name="assemblyName">Specifies the <see cref="T:System.Reflection.Assembly"/> name of the serialized object.</param>
            <param name="typeName">Specifies the <see cref="T:System.Type"/> name of the serialized object.</param>
            <returns>The type of the object the formatter creates a new instance of.</returns>
        </member>
        <member name="M:GSF.Serialization.Serialize``1(``0,GSF.SerializationFormat)">
            <summary>
            Serializes an <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the <paramref name="serializableObject"/>.</typeparam>
            <param name="serializableObject"><see cref="T:System.Object"/> to be serialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializableObject"/> is to be serialized.</param>
            <returns>An <see cref="T:System.Array"/> of <see cref="T:System.Byte"/> of the serialized <see cref="T:System.Object"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializableObject"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">Specified <paramref name="serializationFormat"/> is not supported.</exception>
        </member>
        <member name="M:GSF.Serialization.Serialize``1(``0,GSF.SerializationFormat,System.IO.Stream)">
            <summary>
            Serializes an <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the <paramref name="serializableObject"/>.</typeparam>
            <param name="serializableObject"><see cref="T:System.Object"/> to be serialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializableObject"/> is to be serialized.</param>
            <param name="serializedOutput"><see cref="T:System.IO.Stream"/> where the <paramref name="serializableObject"/> is to be serialized.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializedOutput"/> or <paramref name="serializableObject"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">Specified <paramref name="serializationFormat"/> is not supported.</exception>
        </member>
        <member name="M:GSF.Serialization.Deserialize``1(System.Byte[],GSF.SerializationFormat)">
            <summary>
            Deserializes a serialized <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the deserialized <see cref="T:System.Object"/> to be returned.</typeparam>
            <param name="serializedObject"><see cref="T:System.Array"/> of <see cref="T:System.Byte"/>s containing the serialized <see cref="T:System.Object"/> that is to be deserialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializedObject"/> was serialized.</param>
            <returns>The deserialized <see cref="T:System.Object"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializedObject"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">Specified <paramref name="serializationFormat"/> is not supported.</exception>
        </member>
        <member name="M:GSF.Serialization.Deserialize``1(System.IO.Stream,GSF.SerializationFormat)">
            <summary>
            Deserializes a serialized <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the deserialized <see cref="T:System.Object"/> to be returned.</typeparam>
            <param name="serializedObject"><see cref="T:System.IO.Stream"/> containing the serialized <see cref="T:System.Object"/> that is to be deserialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializedObject"/> was serialized.</param>
            <returns>The deserialized <see cref="T:System.Object"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="serializedObject"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">Specified <paramref name="serializationFormat"/> is not supported.</exception>
        </member>
        <member name="M:GSF.Serialization.TryDeserialize``1(System.Byte[],GSF.SerializationFormat,``0@)">
            <summary>
            Attempts to deserialize a serialized <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the deserialized <see cref="T:System.Object"/> to be returned.</typeparam>
            <param name="serializedObject"><see cref="T:System.Array"/> of <see cref="T:System.Byte"/>s containing the serialized <see cref="T:System.Object"/> that is to be deserialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializedObject"/> was serialized.</param>
            <param name="deserializedObject">Deserialized <see cref="T:System.Object"/>.</param>
            <returns><c>true</c>if deserialization succeeded; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Serialization.TryDeserialize``1(System.IO.Stream,GSF.SerializationFormat,``0@)">
            <summary>
            Attempts to deserialize a serialized <see cref="T:System.Object"/>.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the deserialized <see cref="T:System.Object"/> to be returned.</typeparam>
            <param name="serializedObject"><see cref="T:System.IO.Stream"/> containing the serialized <see cref="T:System.Object"/> that is to be deserialized.</param>
            <param name="serializationFormat"><see cref="T:GSF.SerializationFormat"/> in which the <paramref name="serializedObject"/> was serialized.</param>
            <param name="deserializedObject">Deserialized <see cref="T:System.Object"/>.</param>
            <returns><c>true</c>if deserialization succeeded; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Serialization.GetOrDefault``1(System.Runtime.Serialization.SerializationInfo,System.String,``0)">
            <summary>
            Gets <see cref="T:System.Runtime.Serialization.SerializationInfo"/> value for specified <paramref name="name"/>; otherwise <paramref name="defaultValue"/>.
            </summary>
            <typeparam name="T">Type of parameter to get from <see cref="T:System.Runtime.Serialization.SerializationInfo"/>.</typeparam>
            <param name="info"><see cref="T:System.Runtime.Serialization.SerializationInfo"/> object that contains deserialized values.</param>
            <param name="name">Name of deserialized parameter to retrieve.</param>
            <param name="defaultValue">Default value to return if <paramref name="name"/> does not exist or cannot be deserialized.</param>
            <returns>Value for specified <paramref name="name"/>; otherwise <paramref name="defaultValue"/></returns>
            <remarks>
            <see cref="T:System.Runtime.Serialization.SerializationInfo"/> do not have a direct way of determining if an item with a specified name exists, so when calling
            one of the Get(n) functions you will simply get a <see cref="T:System.Runtime.Serialization.SerializationException"/> if the parameter does not exist; similarly
            you will receive this exception if the parameter fails to properly deserialize. This extension method protects against both of
            these failures and returns a default value if the named parameter does not exist or cannot be deserialized.
            </remarks>
        </member>
        <member name="M:GSF.Serialization.GetValues(System.Runtime.Serialization.SerializationInfo)">
            <summary>
            Gets values of a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance compatible with Linq operations.
            </summary>
            <param name="info">Target <see cref="T:System.Runtime.Serialization.SerializationInfo"/> instance.</param>
            <returns>Enumeration of <see cref="T:System.Runtime.Serialization.SerializationEntry"/> objects from <paramref name="info"/> instance.</returns>
        </member>
        <member name="T:GSF.StringExtensions">
            <summary>Defines extension functions related to string manipulation.</summary>
            <summary>
            Defines extension functions related to string manipulation.
            </summary>
        </member>
        <member name="M:GSF.StringExtensions.ToSingular(System.String)">
            <summary>
            Returns the singular form of the specified word.
            </summary>
            <param name="value">The word to be made singular.</param>
            <returns>The singular form of the input parameter.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsSingular(System.String)">
            <summary>
            Determines whether the specified word is singular.
            </summary>
            <param name="value">The word to be analyzed.</param>
            <returns><c>true</c> if the word is singular; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ToPlural(System.String)">
            <summary>
            Returns the plural form of the specified word.
            </summary>
            <param name="value">The word to be made plural.</param>
            <returns>The plural form of the input parameter.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsPlural(System.String)">
            <summary>
            Determines whether the specified word is plural.
            </summary>
            <param name="value">The word to be analyzed.</param>
            <returns><c>true</c> if the word is plural; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.StringExtensions.GetComparer(System.StringComparison)">
            <summary>
            Gets appropriate <see cref="T:System.StringComparer"/> for the specified <see cref="T:System.StringComparison"/>.
            </summary>
        </member>
        <member name="M:GSF.StringExtensions.ParseBoolean(System.String)">
            <summary>
            Parses a string intended to represent a boolean value.
            </summary>
            <param name="value">String representing a boolean value.</param>
            <returns>Parsed boolean value.</returns>
            <remarks>
            This function, unlike Boolean.Parse, correctly parses a boolean value, even if the string value
            specified is a number (e.g., 0 or -1). Boolean.Parse expects a string to be represented as
            "True" or "False" (i.e., Boolean.TrueString or Boolean.FalseString respectively).
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ConvertToType``1(System.String)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> to convert string to.</typeparam>
            <param name="value">Source string to convert to type.</param>
            <returns><see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of specified type T if conversion fails.</returns>
            <remarks>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert this <see cref="T:System.String"/> to the specified type T,
            the best way to make sure <paramref name="value"/> can be converted back to its original type is to use the same
            <see cref="T:System.ComponentModel.TypeConverter"/> to convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ConvertToType``1(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> to convert string to.</typeparam>
            <param name="value">Source string to convert to type.</param>
            <param name="culture"><see cref="T:System.Globalization.CultureInfo"/> to use for the conversion.</param>
            <returns><see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of specified type T if conversion fails.</returns>
            <remarks>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert this <see cref="T:System.String"/> to the specified type T,
            the best way to make sure <paramref name="value"/> can be converted back to its original type is to use the same
            <see cref="T:System.ComponentModel.TypeConverter"/> to convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ConvertToType(System.String,System.Type)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <param name="value">Source string to convert to type.</param>
            <param name="type"><see cref="T:System.Type"/> to convert string to.</param>
            <returns><see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of specified type if conversion fails.</returns>
            <remarks>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert this <see cref="T:System.String"/> to the specified <paramref name="type"/>,
            the best way to make sure <paramref name="value"/> can be converted back to its original type is to use the same
            <see cref="T:System.ComponentModel.TypeConverter"/> to convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ConvertToType(System.String,System.Type,System.Globalization.CultureInfo)">
            <summary>
            Converts this string into the specified type.
            </summary>
            <param name="value">Source string to convert to type.</param>
            <param name="type"><see cref="T:System.Type"/> to convert string to.</param>
            <param name="culture"><see cref="T:System.Globalization.CultureInfo"/> to use for the conversion.</param>
            <returns><see cref="T:System.String"/> converted to specified <see cref="T:System.Type"/>; default value of specified type if conversion fails.</returns>
            <remarks>
            This function makes use of a <see cref="T:System.ComponentModel.TypeConverter"/> to convert this <see cref="T:System.String"/> to the specified <paramref name="type"/>,
            the best way to make sure <paramref name="value"/> can be converted back to its original type is to use the same
            <see cref="T:System.ComponentModel.TypeConverter"/> to convert the original object to a <see cref="T:System.String"/>; see the
            <see cref="M:GSF.Common.TypeConvertToString(System.Object)"/> method for an easy way to do this.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ToStream(System.String,System.Text.Encoding)">
            <summary>
            Converts string into a stream using the specified <paramref name="encoding"/>.
            </summary>
            <param name="value">Input to string to convert to a string.</param>
            <param name="encoding">String encoding to use; defaults to <see cref="P:System.Text.Encoding.UTF8"/>.</param>
            <returns>String <paramref name="value"/> encoded onto a stream.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ToStreamAsync(System.String,System.Text.Encoding)">
            <summary>
            Asynchronously converts string into a stream using the specified <paramref name="encoding"/>.
            </summary>
            <param name="value">Input to string to convert to a string.</param>
            <param name="encoding">String encoding to use; defaults to <see cref="P:System.Text.Encoding.UTF8"/>.</param>
            <returns>String <paramref name="value"/> encoded onto a stream.</returns>
        </member>
        <member name="M:GSF.StringExtensions.GetSegments(System.String,System.Int32)">
            <summary>
            Turns source string into an array of string segments - each with a set maximum width - for parsing or displaying.
            </summary>
            <param name="value">Input string to break up into segments.</param>
            <param name="segmentSize">Maximum size of returned segment.</param>
            <returns>Array of string segments as parsed from source string.</returns>
            <remarks>Returns a single element array with an empty string if source string is null or empty.</remarks>
        </member>
        <member name="M:GSF.StringExtensions.JoinKeyValuePairs(System.Collections.Generic.IDictionary{System.String,System.String},System.Char,System.Char,System.Char,System.Char)">
            <summary>
            Combines a dictionary of key-value pairs in to a string.
            </summary>
            <param name="pairs">Dictionary of key-value pairs.</param>
            <param name="parameterDelimiter">Character that delimits one key-value pair from another (e.g. ';').</param>
            <param name="keyValueDelimiter">Character that delimits a key from its value (e.g. '=').</param>
            <param name="startValueDelimiter">Optional character that marks the start of a value such that value could contain other
            <paramref name="parameterDelimiter"/> or <paramref name="keyValueDelimiter"/> characters (e.g., "{").</param>
            <param name="endValueDelimiter">Optional character that marks the end of a value such that value could contain other
            <paramref name="parameterDelimiter"/> or <paramref name="keyValueDelimiter"/> characters (e.g., "}").</param>
            <returns>A string of key-value pairs.</returns>
            <remarks>
            Values will be escaped within <paramref name="startValueDelimiter"/> and <paramref name="endValueDelimiter"/>
            to contain nested key/value pair expressions like the following: <c>normalKVP=-1; nestedKVP={p1=true; p2=0.001}</c>,
            when either the <paramref name="parameterDelimiter"/> or <paramref name="keyValueDelimiter"/> are detected in the
            value of the key/value pair.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ParseKeyValuePairs(System.String,System.Char,System.Char,System.Char,System.Char,System.Boolean)">
            <summary>
            Parses key/value pair expressions from a string. Parameter pairs are delimited by <paramref name="keyValueDelimiter"/>
            and multiple pairs separated by <paramref name="parameterDelimiter"/>. Supports encapsulated nested expressions.
            </summary>
            <param name="value">String containing key/value pair expressions to parse.</param>
            <param name="parameterDelimiter">Character that delimits one key/value pair from another.</param>
            <param name="keyValueDelimiter">Character that delimits key from value.</param>
            <param name="startValueDelimiter">Optional character that marks the start of a value such that value could contain other
            <paramref name="parameterDelimiter"/> or <paramref name="keyValueDelimiter"/> characters.</param>
            <param name="endValueDelimiter">Optional character that marks the end of a value such that value could contain other
            <paramref name="parameterDelimiter"/> or <paramref name="keyValueDelimiter"/> characters.</param>
            <param name="ignoreDuplicateKeys">Flag determines whether duplicates are ignored. If flag is set to <c>false</c> an
            <see cref="T:System.ArgumentException"/> will be thrown when all key parameters are not unique.</param>
            <returns>Dictionary of key/value pairs.</returns>
            <remarks>
            <para>
            Parses a string containing key/value pair expressions (e.g., "localPort=5001; transportProtocol=UDP; interface=0.0.0.0").
            This method treats all "keys" as case-insensitive. Nesting of key/value pair expressions is allowed by encapsulating the
            value using the <paramref name="startValueDelimiter"/> and <paramref name="endValueDelimiter"/> values (e.g., 
            "dataChannel={Port=-1;Clients=localhost:8800}; commandChannel={Port=8900}; dataFormat=FloatingPoint;"). There must be one
            <paramref name="endValueDelimiter"/> for each encountered <paramref name="startValueDelimiter"/> in the value or a
            <see cref="T:System.FormatException"/> will be thrown. Multiple levels of nesting is supported. If the <paramref name="ignoreDuplicateKeys"/>
            flag is set to <c>false</c> an <see cref="T:System.ArgumentException"/> will be thrown when all key parameters are not unique. Note
            that keys within nested expressions are considered separate key/value pair strings and are not considered when checking
            for duplicate keys.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentException">All delimiters must be unique -or- all keys must be unique when
            <paramref name="ignoreDuplicateKeys"/> is set to <c>false</c>.</exception>
            <exception cref="T:System.FormatException">Total nested key/value pair expressions are mismatched -or- encountered
            <paramref name="endValueDelimiter"/> before <paramref name="startValueDelimiter"/>.</exception>
        </member>
        <member name="M:GSF.StringExtensions.NotEmpty(System.String)">
            <summary>
            Ensures parameter is not an empty or null string. Returns a single space if test value is empty.
            </summary>
            <param name="testValue">Value to test for null or empty.</param>
            <returns>A non-empty string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.NotEmpty(System.String,System.String)">
            <summary>
            Ensures parameter is not an empty or null string.
            </summary>
            <param name="testValue">Value to test for null or empty.</param>
            <param name="nonEmptyReturnValue">Value to return if <paramref name="testValue">testValue</paramref> is null or empty.</param>
            <returns>A non-empty string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceCharacters(System.String,System.Char,System.Func{System.Char,System.Boolean})">
            <summary>
            Replaces all characters passing delegate test with specified replacement character.
            </summary>
            <param name="value">Input string.</param>
            <param name="replacementCharacter">Character used to replace characters passing delegate test.</param>
            <param name="characterTestFunction">Delegate used to determine whether or not character should be replaced.</param>
            <returns>Returns <paramref name="value" /> with all characters passing delegate test replaced.</returns>
            <remarks>Allows you to specify a replacement character (e.g., you may want to use a non-breaking space: Convert.ToChar(160)).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveCharacters(System.String,System.Func{System.Char,System.Boolean})">
            <summary>
            Removes all characters passing delegate test from a string.
            </summary>
            <param name="value">Input string.</param>
            <param name="characterTestFunction">Delegate used to determine whether or not character should be removed.</param>
            <returns>Returns <paramref name="value" /> with all characters passing delegate test removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveCharacter(System.String,System.Char)">
            <summary>
            Removes all characters matching the given <paramref name="characterToRemove"/>.
            </summary>
            <param name="value">Input string.</param>
            <param name="characterToRemove">The specific character to remove.</param>
            <returns>Returns <paramref name="value" /> with all characters matching the given character removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveWhiteSpace(System.String)">
            <summary>
            Removes all white space (as defined by IsWhiteSpace) from a string.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all white space removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceWhiteSpace(System.String,System.Char)">
            <summary>
            Replaces all white space characters (as defined by IsWhiteSpace) with specified replacement character.
            </summary>
            <param name="value">Input string.</param>
            <param name="replacementCharacter">Character used to "replace" white space characters.</param>
            <returns>Returns <paramref name="value" /> with all white space characters replaced.</returns>
            <remarks>Allows you to specify a replacement character (e.g., you may want to use a non-breaking space: Convert.ToChar(160)).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveControlCharacters(System.String)">
            <summary>
            Removes all control characters from a string.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all control characters removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceControlCharacters(System.String)">
            <summary>
            Replaces all control characters in a string with a single space.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all control characters replaced as a single space.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceControlCharacters(System.String,System.Char)">
            <summary>
            Replaces all control characters in a string with specified replacement character.
            </summary>
            <param name="value">Input string.</param>
            <param name="replacementCharacter">Character used to "replace" control characters.</param>
            <returns>Returns <paramref name="value" /> with all control characters replaced.</returns>
            <remarks>Allows you to specify a replacement character (e.g., you may want to use a non-breaking space: Convert.ToChar(160)).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveCrLfs(System.String)">
            <summary>
            Removes all carriage returns and line feeds from a string.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all CR and LF characters removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceCrLfs(System.String,System.Char)">
            <summary>
            Replaces all carriage return and line feed characters (as well as CR/LF sequences) in a string with specified replacement character.
            </summary>
            <param name="value">Input string.</param>
            <param name="replacementCharacter">Character used to "replace" CR and LF characters.</param>
            <returns>Returns <paramref name="value" /> with all CR and LF characters replaced.</returns>
            <remarks>Allows you to specify a replacement character (e.g., you may want to use a non-breaking space: Convert.ToChar(160)).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveDuplicates(System.String,System.String)">
            <summary>
            Removes duplicate character strings (adjoining replication) in a string.
            </summary>
            <param name="value">Input string.</param>
            <param name="duplicatedValue">String whose duplicates are to be removed.</param>
            <returns>Returns <paramref name="value" /> with all duplicated <paramref name="duplicatedValue" /> removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveNull(System.String)">
            <summary>
            Removes the terminator ('\0') from a null terminated string.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all characters to the left of the terminator.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveDuplicateWhiteSpace(System.String)">
            <summary>
            Replaces all repeating white space with a single space.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all duplicate white space removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveDuplicateWhiteSpace(System.String,System.Char)">
            <summary>
            Replaces all repeating white space with specified spacing character.
            </summary>
            <param name="value">Input string.</param>
            <param name="spacingCharacter">Character value to use to insert as single white space value.</param>
            <returns>Returns <paramref name="value" /> with all duplicate white space removed.</returns>
            <remarks>This function allows you to specify spacing character (e.g., you may want to use a non-breaking space: <c>Convert.ToChar(160)</c>).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveInvalidFileNameCharacters(System.String)">
            <summary>
            Removes all invalid file name characters (\ / : * ? " &lt; &gt; |) from a string.
            </summary>
            <param name="value">Input string.</param>
            <returns>Returns <paramref name="value" /> with all invalid file name characters removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceInvalidFileNameCharacters(System.String,System.Char)">
            <summary>
            Replaces all invalid file name characters (\ / : * ? " &lt; &gt; |) in a string with the specified <paramref name="replacementCharacter"/>.
            </summary>
            <param name="value">Input string.</param>
            <param name="replacementCharacter">Character used to replace the invalid characters.</param>
            <returns>>Returns <paramref name="value" /> with all invalid file name characters replaced.</returns>
        </member>
        <member name="M:GSF.StringExtensions.QuoteWrap(System.String,System.Char)">
            <summary>
            Wraps <paramref name="value"/> in the <paramref name="quoteChar"/>.
            </summary>
            <param name="value">Input string to process</param>
            <param name="quoteChar">The char to wrap <paramref name="value"/></param>
            <returns><paramref name="value"/> wrapped in <paramref name="quoteChar"/></returns>
        </member>
        <member name="M:GSF.StringExtensions.CharCount(System.String,System.Char)">
            <summary>
            Counts the total number of the occurrences of a character in the given string.
            </summary>
            <param name="value">Input string.</param>
            <param name="characterToCount">Character to be counted.</param>
            <returns>Total number of the occurrences of <paramref name="characterToCount" /> in the given string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsAllDigits(System.String)">
            <summary>
            Tests to see if a string is contains only digits based on Char.IsDigit function.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's characters are digits; otherwise, false.</returns>
            <seealso cref="M:System.Char.IsDigit(System.Char)"/>
        </member>
        <member name="M:GSF.StringExtensions.IsAllNumbers(System.String)">
            <summary>
            Tests to see if a string contains only numbers based on Char.IsNumber function.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's characters are numbers; otherwise, false.</returns>
            <seealso cref="M:System.Char.IsNumber(System.Char)"/>
        </member>
        <member name="M:GSF.StringExtensions.IsAllUpper(System.String)">
            <summary>
            Tests to see if a string's letters are all upper case.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's letter characters are upper case; otherwise, false.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsAllLower(System.String)">
            <summary>
            Tests to see if a string's letters are all lower case.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's letter characters are lower case; otherwise, false.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsAllLetters(System.String)">
            <summary>
            Tests to see if a string contains only letters.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's characters are letters; otherwise, false.</returns>
            <remarks>Any non-letter character (e.g., punctuation marks) causes this function to return false (See overload to ignore punctuation
            marks.).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.IsAllLetters(System.String,System.Boolean)">
            <summary>
            Tests to see if a string contains only letters.
            </summary>
            <param name="value">Input string.</param>
            <param name="ignorePunctuation">Set to True to ignore punctuation.</param>
            <returns>True, if all string's characters are letters; otherwise, false.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsAllLettersOrDigits(System.String)">
            <summary>
            Tests to see if a string contains only letters or digits.
            </summary>
            <param name="value">Input string.</param>
            <returns>True, if all string's characters are either letters or digits; otherwise, false.</returns>
            <remarks>Any non-letter, non-digit character (e.g., punctuation marks) causes this function to return false (See overload to ignore
            punctuation marks.).</remarks>
        </member>
        <member name="M:GSF.StringExtensions.IsAllLettersOrDigits(System.String,System.Boolean)">
            <summary>
            Tests to see if a string contains only letters or digits.
            </summary>
            <param name="value">Input string.</param>
            <param name="ignorePunctuation">Set to True to ignore punctuation.</param>
            <returns>True, if all string's characters are letters or digits; otherwise, false.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IsNullOrWhiteSpace(System.String)">
            <summary>
            Test to see if the provided string is null or contains only whitespace characters.
            </summary>
            <param name="value">the value to test.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.StringExtensions.RegexDecode(System.String)">
            <summary>
            Decodes the specified Regular Expression character back into a standard Unicode character.
            </summary>
            <param name="value">Regular Expression character to decode back into a Unicode character.</param>
            <returns>Standard Unicode character representation of specified Regular Expression character.</returns>
        </member>
        <member name="M:GSF.StringExtensions.Base64Encode(System.String)">
            <summary>
            Encodes a string into a base-64 string.
            </summary>
            <param name="value">Input string.</param>
            <remarks>
            <para>Performs a base-64 style of string encoding useful for data obfuscation or safe XML data string transmission.</para>
            <para>Note: This function encodes a "String". Use the Convert.ToBase64String function to encode a binary data buffer.</para>
            </remarks>
            <returns>A <see cref="T:System.String"></see> value representing the encoded input of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.StringExtensions.Base64Decode(System.String)">
            <summary>
            Decodes a given base-64 encoded string encoded with <see cref="M:GSF.StringExtensions.Base64Encode(System.String)" />.
            </summary>
            <param name="value">Input string.</param>
            <remarks>Note: This function decodes value back into a "String". Use the Convert.FromBase64String function to decode a base-64 encoded
            string back into a binary data buffer.</remarks>
            <returns>A <see cref="T:System.String"></see> value representing the decoded input of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ToSecureString(System.String)">
            <summary>
            Converts the given string into a <see cref="T:System.Security.SecureString"/>.
            </summary>
            <param name="value">The string to be converted.</param>
            <returns>The given string as a <see cref="T:System.Security.SecureString"/>.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ToUnsecureString(System.Security.SecureString)">
            <summary>
            Converts the given <see cref="T:System.Security.SecureString"/> into a <see cref="T:System.String"/>.
            </summary>
            <param name="value">The <see cref="T:System.Security.SecureString"/> to be converted.</param>
            <returns>The given <see cref="T:System.Security.SecureString"/> as a <see cref="T:System.String"/>.</returns>
            <remarks>
            This method is UNSAFE, as it stores your secure string data in clear text in memory.
            Since strings are immutable, that memory cannot be cleaned up until all references to
            the string are removed and the garbage collector deallocates it. Only use this method
            to interface with APIs that do not support the use of <see cref="T:System.Security.SecureString"/> for
            sensitive text data.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ToTitleCase(System.String,System.Globalization.CultureInfo)">
            <summary>
            Converts the provided string into title case (upper case first letter of each word).
            </summary>
            <param name="value">Input string.</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> that corresponds to the language rules applied for title casing of words; defaults to <see cref="P:System.Globalization.CultureInfo.CurrentCulture"/>.</param>
            <remarks>
            Note: This function performs "ToLower" in input string then applies <see cref="M:System.Globalization.TextInfo.ToTitleCase(System.String)"/> for specified <paramref name="culture"/>.
            This way, even strings formatted in all-caps will still be properly formatted.
            </remarks>
            <returns>A <see cref="T:System.String"/> that has the first letter of each word capitalized.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ToPascalCase(System.String)">
            <summary>
            Converts first letter of string to upper-case.
            </summary>
            <param name="value">String to convert to pascal case.</param>
            <returns><paramref name="value"/> with first letter as upper-case.</returns>
            <remarks>
            This function will automatically trim <paramref name="value"/>.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.ToCamelCase(System.String)">
            <summary>
            Converts first letter of string to lower-case.
            </summary>
            <param name="value">String to convert to camel case.</param>
            <returns><paramref name="value"/> with first letter as lower-case.</returns>
            <remarks>
            This function will automatically trim <paramref name="value"/>.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.TruncateLeft(System.String,System.Int32)">
            <summary>
            Truncates the provided string from the left if it is longer that specified length.
            </summary>
            <param name="value">A <see cref="T:System.String"/> value that is to be truncated.</param>
            <param name="maxLength">The maximum number of characters that <paramref name="value"/> can be.</param>
            <returns>A <see cref="T:System.String"/> that is the truncated version of the <paramref name="value"/> string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.TruncateRight(System.String,System.Int32)">
            <summary>
            Truncates the provided string from the right if it is longer that specified length.
            </summary>
            <param name="value">A <see cref="T:System.String"/> value that is to be truncated.</param>
            <param name="maxLength">The maximum number of characters that <paramref name="value"/> can be.</param>
            <returns>A <see cref="T:System.String"/> that is the truncated version of the <paramref name="value"/> string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.CenterText(System.String,System.Int32)">
            <summary>
            Centers text within the specified maximum length, biased to the left.
            Text will be padded to the left and right with spaces.
            If value is greater than specified maximum length, value returned will be truncated from the right.
            </summary>
            <remarks>
            Handles multiple lines of text separated by Environment.NewLine.
            </remarks>
            <param name="value">A <see cref="T:System.String"/> to be centered.</param>
            <param name="maxLength">An <see cref="T:System.Int32"/> that is the maximum length of padding.</param>
            <returns>The centered string value.</returns>
        </member>
        <member name="M:GSF.StringExtensions.CenterText(System.String,System.Int32,System.Char)">
            <summary>
            Centers text within the specified maximum length, biased to the left.
            Text will be padded to the left and right with specified padding character.
            If value is greater than specified maximum length, value returned will be truncated from the right.
            </summary>
            <remarks>
            Handles multiple lines of text separated by <c>Environment.NewLine</c>.
            </remarks>
            <param name="value">A <see cref="T:System.String"/> to be centered.</param>
            <param name="maxLength">An <see cref="T:System.Int32"/> that is the maximum length of padding.</param>
            <param name="paddingCharacter">The <see cref="T:System.Char"/> value to pad with.</param>
            <returns>The centered string value.</returns>
        </member>
        <member name="M:GSF.StringExtensions.ReplaceCaseInsensitive(System.String,System.String,System.String)">
            <summary>
            Performs a case insensitive string replacement.
            </summary>
            <param name="value">The string to examine.</param>
            <param name="fromText">The value to replace.</param>
            <param name="toText">The new value to be inserted</param>
            <returns>A string with replacements.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureStart(System.String,System.Char)">
            <summary>
            Ensures a string starts with a specific character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="startChar">The character desired at string start.</param>
            <returns>The sent string with character at the start.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureStart(System.String,System.Char,System.Boolean)">
            <summary>
            Ensures a string starts with a specific character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="startChar">The character desired at string start.</param>
            <param name="removeRepeatingChar">Set to <c>true</c> to ensure one and only one instance of <paramref name="startChar"/>.</param>
            <returns>The sent string with character at the start.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureStart(System.String,System.String)">
            <summary>
            Ensures a string starts with a specific string.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="startString">The string desired at string start.</param>
            <returns>The sent string with string at the start.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureEnd(System.String,System.Char)">
            <summary>
            Ensures a string ends with a specific character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="endChar">The character desired at string's end.</param>
            <returns>The sent string with character at the end.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureEnd(System.String,System.Char,System.Boolean)">
            <summary>
            Ensures a string ends with a specific character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="endChar">The character desired at string's end.</param>
            <param name="removeRepeatingChar">Set to <c>true</c> to ensure one and only one instance of <paramref name="endChar"/>.</param>
            <returns>The sent string with character at the end.</returns>
        </member>
        <member name="M:GSF.StringExtensions.EnsureEnd(System.String,System.String)">
            <summary>
            Ensures a string ends with a specific string.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="endString">The string desired at string's end.</param>
            <returns>The sent string with string at the end.</returns>
        </member>
        <member name="M:GSF.StringExtensions.Reverse(System.String)">
            <summary>
            Reverses the order of the characters in a string.
            </summary>
            <param name="value">Input string to process.</param>
            <returns>The reversed string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfRepeatedChar(System.String,System.Char,System.Int32)">
            <summary>
            Searches a string for a repeated instance of the specified <paramref name="characterToFind"/> from specified <paramref name="startIndex"/>.
            </summary>
            <param name="value">The string to process.</param>
            <param name="characterToFind">The character of interest.</param>
            <param name="startIndex">The index from which to begin the search.</param>
            <returns>The index of the first instance of the character that is repeated or (-1) if no repeated chars found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfRepeatedChar(System.String,System.Char)">
            <summary>
            Searches a string for a repeated instance of the specified <paramref name="characterToFind"/>.
            </summary>
            <param name="value">The string to process.</param>
            <param name="characterToFind">The character of interest.</param>
            <returns>The index of the first instance of the character that is repeated or (-1) if no repeated chars found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfRepeatedChar(System.String)">
            <summary>
            Searches a string for an instance of a repeated character.
            </summary>
            <param name="value">The string to process.</param>
            <returns>The index of the first instance of any character that is repeated or (-1) if no repeated chars found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfRepeatedChar(System.String,System.Int32)">
            <summary>
            Searches a string for an instance of a repeated character from specified <paramref name="startIndex"/>.
            </summary>
            <param name="value">The string to process.</param>
            <param name="startIndex">The index from which to begin the search.</param>
            <returns>The index of the first instance of any character that is repeated or (-1) if no repeated chars found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.LastIndexOfRepeatedChar(System.String,System.Char,System.Int32)">
            <summary>
            Returns the index of the last repeated index of the first group of repeated characters that begin with the <paramref name="characterToFind"/>.
            </summary>
            <param name="value">String to process.</param>
            <param name="characterToFind">The character of interest.</param>
            <param name="startIndex">The index from which to begin the search.</param>
            <returns>The index of the last instance of the character that is repeated or (-1) if no repeated chars found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.TrimWithEllipsisMiddle(System.String,System.Int32)">
            <summary>
            Places an ellipsis in the middle of a string as it is trimmed to length specified.
            </summary>
            <param name="value">The string to process.</param>
            <param name="length">The maximum returned string length; minimum value is 5.</param>
            <returns>
            A trimmed string of the specified <paramref name="length"/> or empty string if <paramref name="value"/> is null or empty.
            </returns>
            <remarks>
            Returned string is not padded to fill field length if <paramref name="value"/> is shorter than length.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.TrimWithEllipsisEnd(System.String,System.Int32)">
            <summary>
            Places an ellipsis at the end of a string as it is trimmed to length specified.
            </summary>
            <param name="value">The string to process.</param>
            <param name="length">The maximum returned string length; minimum value is 5.</param>
            <returns>
            A trimmed string of the specified <paramref name="length"/> or empty string if <paramref name="value"/> is null or empty.
            </returns>
            <remarks>
            Returned string is not padded to fill field length if <paramref name="value"/> is shorter than length.
            </remarks>
        </member>
        <member name="M:GSF.StringExtensions.UriEncode(System.String)">
            <summary>
            Escapes string using URL encoding.
            </summary>
            <param name="value">The string to escape.</param>
            <returns>URL encoded string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveLeadingString(System.String,System.String,System.Boolean)">
            <summary>
            Removes one or more instances of a specified string from the beginning of a string.
            </summary>
            <param name="value">The string to process</param>
            <param name="stringToRemove">The string to remove</param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>A string with <paramref name="stringToRemove"/> deleted from the beginning</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveLeadingString(System.String,System.Char,System.Boolean)">
            <summary>
            Removes one or more instances of a specified char from the beginning of a string.
            </summary>
            <param name="value">The string to process</param>
            <param name="charToRemove">The char to remove</param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>A string with <paramref name="charToRemove"/> deleted from the beginning</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveLeadingZeros(System.String,System.Boolean)">
            <summary>
            Assures that numeric value is a well formed number
            Adds a leading zero in front of a decimal, if present
            </summary>
            <param name="value">The string to process</param>
            <param name = "AssureParseDouble">Set to TRUE to assure that value parses to Double</param>
            <returns>A string with deleted from the beginning</returns>
            <remarks>Note: AssureParseDouble also removes trailing zeros following a decimal which implies loss of precision in the value</remarks>
        </member>
        <member name="M:GSF.StringExtensions.RemoveTrailingString(System.String,System.String,System.Boolean)">
            <summary>
            Removes one or more instances of a string from the end of a string
            </summary>
            <param name="value">The string to process</param>
            <param name="stringToRemove">The string to remove</param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>A string with <paramref name="stringToRemove"/> deleted from the end</returns>
        </member>
        <member name="M:GSF.StringExtensions.RemoveTrailingString(System.String,System.Char,System.Boolean)">
            <summary>
            Removes one or more instances of a character from the end of a string
            </summary>
            <param name="value">The string to process</param>
            <param name="charToRemove">The char to remove</param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>A string with <paramref name="charToRemove"/> deleted from the end</returns>
        </member>
        <member name="M:GSF.StringExtensions.SubstringEnd(System.String,System.Int32)">
            <summary>
            Returns a string consisting of a specified number of characters from the end of a string "to the left"
            </summary>
            <param name="value">The string to process</param>
            <param name="length">The number of characters from the end of the string to return</param>
            <returns>A string of length <paramref name="length" /></returns>
        </member>
        <member name="M:GSF.StringExtensions.SubstringPrevious(System.String,System.Int32,System.Int32)">
            <summary>
            Returns a string consisting of a specified number of characters to the left (previous chars) from the provided startIndex
            </summary>
            <param name="value">The string to process</param>
            <param name="endIndex">The index in <paramref name="value" /> at the end of the desired returned string.</param>
            <param name="length">The number of characters from the <paramref name="endIndex" /> of the string to return</param>
            <returns>A string to the left of <paramref name="endIndex" /> of length up to <paramref name="length" /> </returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPrevious(System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            Searches a string from right to left for the next instance of a specified string.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="testString">The string to find.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin looking for <paramref name="testString"/>. Typically length of <paramref name="value"/> minus 1."</param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>The start (or left most) index of <paramref name="testString"/> within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPrevious(System.String,System.Char,System.Int32)">
            <summary>
            Searches a string from right to left for the next instance of a specified character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="testChar">The char to find.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin looking for <paramref name="testChar"/>. Typically length of <paramref name="value"/> minus 1."</param>
            <returns>The index of <paramref name="testChar"/> within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPrevious(System.String,System.Func{System.Char,System.Boolean},System.Int32)">
            <summary>
            Searches a string from right to left for the next instance of a character passing the specified delegate.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="characterTestFunction">The delegate function used to match characters.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin executing test function. Typically length of <paramref name="value"/> minus 1."</param>
            <returns>The index of the matching character within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPreviousNot(System.String,System.Char,System.Int32)">
            <summary>
            Searches a string from right to left for the next instance of a character that is not the specified character.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="testChar">The char to ignore.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin looking for a character that is not <paramref name="testChar"/>. Typically length of <paramref name="value"/> minus 1."</param>
            <returns>The index of the character within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPreviousNot(System.String,System.Char[],System.Int32)">
            <summary>
            Searches a string from right to left for the next instance of a character that is not contained in the specified collection of characters.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="anyOf">The characters to use to test find.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin looking for characters not in <paramref name="anyOf"/>. Typically length of <paramref name="value"/> minus 1."</param>
            <returns>The index of the character within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfPreviousNot(System.String,System.Func{System.Char,System.Boolean},System.Int32)">
            <summary>
            Searches a string from right to left for the next instance of a character that does not pass the given delegate function.
            </summary>
            <param name="value">Input string to process.</param>
            <param name="characterTestFunction">The character test to use.</param>
            <param name="startIndex">The index in <paramref name="value"/> from which to begin testing characters. Typically length of <paramref name="value"/> minus 1."</param>
            <returns>The index of the character within <paramref name="value"/> or (-1) if not found.</returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfNot(System.String,System.Char[],System.Int32)">
            <summary>
            Finds the first index that is NOT included in testChars
            </summary>
            <param name="value">String to process</param>
            <param name="anyOf">the characters use to test</param>
            <param name="startIndex">the index at which to begin testing <paramref name="value"/></param>
            <returns>The first index of a character NOT included in <paramref name="anyOf"/>. </returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfNot(System.String,System.Char,System.Int32)">
            <summary>
            Finds the first index that does not match the given <paramref name="character"/>.
            </summary>
            <param name="value">String to process</param>
            <param name="character">the character use to test</param>
            <param name="startIndex">the index at which to begin testing <paramref name="value"/></param>
            <returns>The first index of a character that does NOT match <paramref name="character"/>. </returns>
        </member>
        <member name="M:GSF.StringExtensions.IndexOfNot(System.String,System.Func{System.Char,System.Boolean},System.Int32)">
            <summary>
            Finds the first index that does NOT pass the <paramref name="characterTestFunction"/> delegate function.
            </summary>
            <param name="value">String to process</param>
            <param name="characterTestFunction">the character test to use</param>
            <param name="startIndex">the index at which to begin testing <paramref name="value"/></param>
            <returns>The first index of a character that does NOT pass the <paramref name="characterTestFunction"/>. </returns>
        </member>
        <member name="M:GSF.StringExtensions.StringCount(System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            Counts the total number of the occurrences of string within a string
            </summary>
            <param name="value">Input string to process.</param>
            <param name="testString">String to be counted.</param>
            <param name="startIndex">The index at which to begin <paramref name="value"/></param>
            <param name="matchCase">Set to <c>false</c> for case insensitive search</param>
            <returns>Total number of the occurrences of <paramref name="testString" /> in the given string.</returns>
        </member>
        <member name="M:GSF.StringExtensions.QuoteUnwrap(System.String,System.Char)">
            <summary>
            Unwraps quotes similar to Excel.  However, a little more predictable for unusual edge cases.
            </summary>
            <param name="value">The string to process</param>
            <param name="quoteChar">The quote char to use.  Default is double quote. Due to trimming, quoteChar of whitespace is not allowed.</param>
            <remarks> 
                      To remove all quote chars at beginning and end of a string regardless of match use .Trim('"')  It's faster.
                      Three consecutive quotes assures a singe quote char in output.
            </remarks>
            <returns>The sent string with matched surrounding quotes removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.QuoteUnwrap(System.String,System.Char[])">
            <summary>
            Unwraps quotes similar to Excel.  However, a little more predictable for unusual edge cases.
            </summary>
            <param name="value">The string to process</param>
            <param name="quoteChars">The collection of quote chars to use. Due to trimming, whitespace is not allowed.</param>
            <returns>The sent string with matched surrounding quote chars removed.</returns>
        </member>
        <member name="M:GSF.StringExtensions.Interpolate``1(System.String,``0)">
             <summary>
             Applies string interpolation to the given format string at runtime.
             </summary>
             <typeparam name="T">The type of the object that defines the parameters for the format string.</typeparam>
             <param name="format">The format string to be interpolated.</param>
             <param name="parameters">The parameters that can be referenced by the format string.</param>
             <returns>A copy of <paramref name="format"/> in which the format items have been replaced by the string representation of the corresponding <paramref name="parameters"/>.</returns>
             <remarks>
             <para>
             This overload uses reflection to obtain the name and value of <paramref name="parameters"/>' properties
             to make those available to the interpolated format string by name. This can be used with user-defined
             types, but is mainly intended to be used with anonymous types.
             </para>
            
             <code>
             string format = "{hello} {world}!";
             var parameters = new { hello = "Hello", world = "World" };
             Console.WriteLine(format.Interpolate(parameters));
             </code>
            
             <para>
             If <paramref name="parameters"/> can be safely cast to <code>IEnumerable{KeyValuePair{string, object}}</code>,
             this function will skip the reflection and call <see cref="M:GSF.StringExtensions.Interpolate(System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})"/>
             directly.
             </para>
             </remarks>
        </member>
        <member name="M:GSF.StringExtensions.Interpolate(System.String,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.Object}})">
             <summary>
             Applies string interpolation to the given format string at runtime.
             </summary>
             <param name="format">The format string to be interpolated.</param>
             <param name="parameters">The parameters that can be referenced by the format string.</param>
             <returns>A copy of <paramref name="format"/> in which the format items have been replaced by the string representation of the corresponding <paramref name="parameters"/>.</returns>
             <remarks>
             <para>
             This overload is intended to be used for scenarios in which the parameters available to the format string
             are stored in a <see cref="T:System.Collections.Generic.Dictionary`2"/> or <see cref="T:System.Dynamic.ExpandoObject"/>.
             Note that dynamic variables cannot be used when calling extension functions.
             </para>
            
             <code>
             string format = "{hello} {world}!";
             dynamic parameters = new ExpandoObject();
             parameters.hello = "Hello";
             parameters.world = "World";
            
             Console.WriteLine(format.Interpolate(parameters));                  // This raises a compiler error
             Console.WriteLine(format.Interpolate((ExpandoObject)parameters);    // This is okay
             Console.WriteLine(StringExtensions.Interpolate(format, parameters); // This is also okay
             </code>
             </remarks>
        </member>
        <member name="T:GSF.Text.Operation">
            <summary>
            The data structure representing a diff is a List of Diff objects:
            {Diff(Operation.DELETE, "Hello"), Diff(Operation.INSERT, "Goodbye"),
             Diff(Operation.EQUAL, " world.")}
            which means: delete "Hello", add "Goodbye" and keep " world."
            </summary>
        </member>
        <member name="F:GSF.Text.Operation.DELETE">
            <summary>
            Target deletes text
            </summary>
        </member>
        <member name="F:GSF.Text.Operation.INSERT">
            <summary>
            Target inserts text
            </summary>
        </member>
        <member name="F:GSF.Text.Operation.EQUAL">
            <summary>
            Source and target are the same
            </summary>
        </member>
        <member name="T:GSF.Text.Diff">
            <summary>
            Class representing one diff operation.
            </summary>
            <remarks>
            This class produces a dynamic hash code, do not use
            an instance of this class as key in a dictionary.
            </remarks>
        </member>
        <member name="P:GSF.Text.Diff.Operation">
            <summary>
            One of: INSERT, DELETE or EQUAL.
            </summary>
        </member>
        <member name="F:GSF.Text.Diff.Text">
            <summary>
            The text associated with this diff operation.
            </summary>
        </member>
        <member name="M:GSF.Text.Diff.#ctor(GSF.Text.Operation,System.String)">
            <summary>
            Initializes the diff with the provided values.
            </summary>
            <param name="operation">One of INSERT, DELETE or EQUAL.</param>
            <param name="text">The text being applied.</param>
        </member>
        <member name="M:GSF.Text.Diff.ToString">
            <summary>
            Display a human-readable version of this Diff.
            </summary>
            <returns>text version</returns>
        </member>
        <member name="M:GSF.Text.Diff.Equals(System.Object)">
            <summary>
            Is this Diff equivalent to another Diff?
            </summary>
            <param name="obj">Another Diff to compare against.</param>
            <returns>true or false</returns>
        </member>
        <member name="M:GSF.Text.Diff.Equals(GSF.Text.Diff)">
            <summary>
            Is this Diff equivalent to another Diff?
            </summary>
            <param name="obj">Another Diff to compare against.</param>
            <returns>true or false</returns>
        </member>
        <member name="M:GSF.Text.Diff.GetHashCode">
            <summary>
            Hash function for the Diff.
            </summary>
            <returns>The Diff's hash code</returns>
        </member>
        <member name="T:GSF.Text.DiffMatchPatch">
            <summary>
            Class containing the diff, match and patch methods.
            Also Contains the behavior settings.
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.DiffTimeout">
            <summary>
            Number of seconds to map a diff before giving up (0 for infinity).
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.DiffEditCost">
            <summary>
            Cost of an empty edit operation in terms of edit characters.
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.MatchThreshold">
            <summary>
            At what point is no match declared (0.0 = perfection, 1.0 = very loose).
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.MatchDistance">
            <summary>
            How far to search for a match (0 = exact location, 1000+ = broad match).
            A match this many characters away from the expected location will add
            1.0 to the score (0.0 is a perfect match).
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.PatchDeleteThreshold">
            <summary>
            When deleting a large block of text (over ~64 characters), how close
            do the contents have to be to match the expected contents. (0.0 =
            perfection, 1.0 = very loose).  Note that MatchThreshold controls
            how closely the end points of a delete need to match.
            </summary>
        </member>
        <member name="F:GSF.Text.DiffMatchPatch.PatchMargin">
            <summary>
            Chunk size for context length.
            </summary>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffMain(System.String,System.String)">
            <summary>
            Find the differences between two texts.
            Run a faster, slightly less optimal diff.
            This method allows the 'checklines' of DiffMain() to be optional.
            Most of the time checklines is wanted, so default to true.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffMain(System.String,System.String,System.Boolean)">
            <summary>
            Find the differences between two texts.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="checklines">
            Speedup flag.  If false, then don't run a
            line-level diff first to identify the changed areas.
            If true, then run a faster slightly less optimal diff.
            </param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffMain(System.String,System.String,System.Boolean,System.DateTime)">
            <summary>
            Find the differences between two texts.  Simplifies the problem by
            stripping any common prefix or suffix off the texts before diffing.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="checklines">
            Speedup flag.  If false, then don't run a
            line-level diff first to identify the changed areas.
            If true, then run a faster slightly less optimal diff.
            </param>
            <param name="deadline">
            Time when the diff should be complete by.  Used
            internally for recursive calls.  Users should set DiffTimeout
            instead.
            </param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCompute(System.String,System.String,System.Boolean,System.DateTime)">
            <summary>
            Find the differences between two texts.  Assumes that the texts do not
            have any common prefix or suffix.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="checklines">
            Speedup flag.  If false, then don't run a
            line-level diff first to identify the changed areas.
            If true, then run a faster slightly less optimal diff.
            </param>
            <param name="deadline">Time when the diff should be complete by</param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffLineMode(System.String,System.String,System.DateTime)">
            <summary>
            Do a quick line-level diff on both strings, then rediff the parts for
            greater accuracy. This speedup can produce non-minimal diffs.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="deadline">Time when the diff should be complete by</param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffBisect(System.String,System.String,System.DateTime)">
            <summary>
            <para>
            Find the 'middle snake' of a diff, split the problem in two
            and return the recursively constructed diff.
            </para>
            
            <para>
            See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.
            </para>
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="deadline">Time at which to bail if not yet complete</param>
            <returns>List of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffBisectSplit(System.String,System.String,System.Int32,System.Int32,System.DateTime)">
            <summary>
            Given the location of the 'middle snake', split the diff in two parts
            and recurse.
            </summary>
            <param name="text1">Old string to be diffed</param>
            <param name="text2">New string to be diffed</param>
            <param name="x">Index of split point in text1</param>
            <param name="y">Index of split point in text2</param>
            <param name="deadline">Time at which to bail if not yet complete</param>
            <returns>LinkedList of Diff objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffLinesToChars(System.String,System.String)">
            <summary>
            Split two texts into a list of strings.  Reduce the texts to a string of
            hashes where each Unicode character represents one line.
            </summary>
            <param name="text1">First string</param>
            <param name="text2">Second string</param>
            <returns>
            Three element Object array, containing the encoded text1, the
            encoded text2 and the List of unique strings.  The zeroth element
            of the List of unique strings is intentionally blank.
            </returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffLinesToCharsMunge(System.String,System.Collections.Generic.List{System.String},System.Collections.Generic.Dictionary{System.String,System.Int32},System.Int32)">
            <summary>
            Split a text into a list of strings.  Reduce the texts to a string of
            hashes where each Unicode character represents one line.
            </summary>
            <param name="text">String to encode</param>
            <param name="lineArray">List of unique strings</param>
            <param name="lineHash">Map of strings to indices</param>
            <param name="maxLines">Maximum length of lineArray</param>
            <returns>Encoded string</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCharsToLines(System.Collections.Generic.ICollection{GSF.Text.Diff},System.Collections.Generic.IList{System.String})">
            <summary>
            Rehydrate the text in a diff from a string of line hashes to real lines
            of text.
            </summary>
            <param name="diffs">List of Diff objects</param>
            <param name="lineArray">List of unique strings</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCommonPrefix(System.String,System.String)">
            <summary>
            Determine the common prefix of two strings.
            </summary>
            <param name="text1">First string</param>
            <param name="text2">Second string</param>
            <returns>The number of characters common to the start of each string</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCommonSuffix(System.String,System.String)">
            <summary>
            Determine the common suffix of two strings.
            </summary>
            <param name="text1">First string</param>
            <param name="text2">Second string</param>
            <returns>The number of characters common to the end of each string</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCommonOverlap(System.String,System.String)">
            <summary>
            Determine if the suffix of one string is the prefix of another.
            </summary>
            <param name="text1">First string</param>
            <param name="text2">Second string</param>
            <returns>
            The number of characters common to the end of the first
            string and the start of the second string.
            </returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffHalfMatch(System.String,System.String)">
            <summary>
            Do the two texts share a Substring which is at least half the length of
            the longer text? This speedup can produce non-minimal diffs.
            </summary>
            <param name="text1">First string</param>
            <param name="text2">Second string</param>
            <returns>
            Five element String array, containing the prefix of text1, the
            suffix of text1, the prefix of text2, the suffix of text2 and the
            common middle.  Or null if there was no match.
            </returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffHalfMatchI(System.String,System.String,System.Int32)">
            <summary>
            Does a Substring of shorttext exist within longtext such that the
            Substring is at least half the length of longtext?
            </summary>
            <param name="longtext">Longer string</param>
            <param name="shorttext">Shorter string</param>
            <param name="i">Start index of quarter length Substring within longtext</param>
            <returns>
            Five element string array, containing the prefix of longtext, the
            suffix of longtext, the prefix of shorttext, the suffix of shorttext
            and the common middle.  Or null if there was no match.
            </returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCleanupSemantic(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Reduce the number of edits by eliminating semantically trivial equalities.
            </summary>
            <param name="diffs">List of Diff objects</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCleanupSemanticLossless(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Look for single edits surrounded on both sides by equalities
            which can be shifted sideways to align the edit to a word boundary.
            e.g: The c<ins>at c</ins>ame. -> The <ins>cat </ins>came.
            </summary>
            <param name="diffs">List of Diff objects</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCleanupSemanticScore(System.String,System.String)">
            <summary>
            Given two strings, compute a score representing whether the internal
            boundary falls on logical boundaries. Scores range from 6 (best) to 0 (worst).
            </summary>
            <param name="one">First string</param>
            <param name="two">Second string</param>
            <returns>The score</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCleanupEfficiency(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Reduce the number of edits by eliminating operationally trivial equalities.
            </summary>
            <param name="diffs">List of Diff objects</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffCleanupMerge(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Reorder and merge like edit sections.  Merge equalities.
            Any edit section can move as long as it doesn't cross an equality.
            </summary>
            <param name="diffs">List of Diff objects</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffXIndex(System.Collections.Generic.List{GSF.Text.Diff},System.Int32)">
            <summary>
            loc is a location in text1, compute and return the equivalent location in
            text2. e.g. "The cat" vs "The big cat", 1->1, 5->8
            </summary>
            <param name="diffs">List of Diff objects</param>
            <param name="loc">Location within text1</param>
            <returns>Location within text2</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffPrettyHtml(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Convert a Diff list into a pretty HTML report.
            </summary>
            <param name="diffs">List of Diff objects</param>
            <returns>HTML representation</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffText1(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute and return the source text (all equalities and deletions).
            </summary>
            <param name="diffs">List of Diff objects</param>
            <returns>Source text</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffText2(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute and return the destination text (all equalities and insertions).
            </summary>
            <param name="diffs">List of Diff objects</param>
            <returns>Destination text</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffLevenshtein(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute the Levenshtein distance; the number of inserted, deleted or
            substituted characters.
            </summary>
            <param name="diffs">List of Diff objects</param>
            <returns>Number of changes</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffToDelta(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Crush the diff into an encoded string which describes the operations
            required to transform text1 into text2.
            E.g. =3\t-2\t+ing  -> Keep 3 chars, delete 2 chars, insert 'ing'.
            Operations are tab-separated.  Inserted text is escaped using %xx
            notation.
            </summary>
            <param name="diffs">Array of Diff objects</param>
            <returns>Delta text</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.DiffFromDelta(System.String,System.String)">
            <summary>
            Given the original text1, and an encoded string which describes the
            operations required to transform text1 into text2, compute the full diff.
            </summary>
            <param name="text1">Source string for the diff</param>
            <param name="delta">Delta text</param>
            <returns>Array of Diff objects or null if invalid</returns>
            <exception cref="T:System.ArgumentException">If invalid input</exception>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.MatchMain(System.String,System.String,System.Int32)">
            <summary>
            Locate the best instance of 'pattern' in 'text' near 'loc'.
            Returns -1 if no match found.
            </summary>
            <param name="text">The text to search</param>
            <param name="pattern">The pattern to search for</param>
            <param name="loc">The location to search around</param>
            <returns>Best match index or -1</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.MatchBitap(System.String,System.String,System.Int32)">
            <summary>
            Locate the best instance of 'pattern' in 'text' near 'loc' using the
            Bitap algorithm.  Returns -1 if no match found.
            </summary>
            <param name="text">The text to search</param>
            <param name="pattern">The pattern to search for</param>
            <param name="loc">The location to search around</param>
            <returns>Best match index or -1</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.MatchBitapScore(System.Int32,System.Int32,System.Int32,System.String)">
            <summary>
            Compute and return the score for a match with e errors and x location.
            </summary>
            <param name="e">Number of errors in match</param>
            <param name="x">Location of match</param>
            <param name="loc">Expected location of match</param>
            <param name="pattern">Pattern being sought</param>
            <returns>Overall score for match (0.0 = good, 1.0 = bad)</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.MatchAlphabet(System.String)">
            <summary>
            Initialize the alphabet for the Bitap algorithm.
            </summary>
            <param name="pattern">The text to encode</param>
            <returns>Hash of character locations</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchAddContext(GSF.Text.Patch,System.String)">
            <summary>
            Increase the context until it is unique,
            but don't let the pattern expand beyond MatchMaxBits.
            </summary>
            <param name="patch">The patch to grow</param>
            <param name="text">Source text</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchMake(System.String,System.String)">
            <summary>
            Compute a list of patches to turn text1 into text2.
            A set of diffs will be computed.
            </summary>
            <param name="text1">Old text</param>
            <param name="text2">New text</param>
            <returns>List of Patch objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchMake(System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute a list of patches to turn text1 into text2.
            text1 will be derived from the provided diffs.
            </summary>
            <param name="diffs">Array of Diff objects for text1 to text2</param>
            <returns>List of Patch objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchMake(System.String,System.String,System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute a list of patches to turn text1 into text2.
            text2 is ignored, diffs are the delta between text1 and text2.
            </summary>
            <param name="text1">Old text</param>
            <param name="text2">Ignored</param>
            <param name="diffs">Array of Diff objects for text1 to text2</param>
            <returns>List of Patch objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchMake(System.String,System.Collections.Generic.List{GSF.Text.Diff})">
            <summary>
            Compute a list of patches to turn text1 into text2.
            text2 is not provided, diffs are the delta between text1 and text2.
            </summary>
            <param name="text1">Old text</param>
            <param name="diffs">Array of Diff objects for text1 to text2</param>
            <returns>List of Patch objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchDeepCopy(System.Collections.Generic.List{GSF.Text.Patch})">
            <summary>
            Given an array of patches, return another array that is identical.
            </summary>
            <param name="patches">Array of Patch objects</param>
            <returns>Array of Patch objects</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchApply(System.Collections.Generic.List{GSF.Text.Patch},System.String)">
            <summary>
            Merge a set of patches onto the text.  Return a patched text, as well
            as an array of true/false values indicating which patches were applied.
            </summary>
            <param name="patches">Array of Patch objects</param>
            <param name="text">Old text</param>
            <returns>Two element Object array, containing the new text and an array of bool values</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchAddPadding(System.Collections.Generic.List{GSF.Text.Patch})">
            <summary>
            Add some padding on text start and end so that edges can match something.
            Intended to be called only from within PatchApply.
            </summary>
            <param name="patches">Array of Patch objects</param>
            <returns>The padding string added to each side</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchSplitMax(System.Collections.Generic.List{GSF.Text.Patch})">
            <summary>
            Look through the patches and break up any which are longer than the
            maximum limit of the match algorithm.
            Intended to be called only from within PatchApply.
            </summary>
            <param name="patches">List of Patch objects</param>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchToText(System.Collections.Generic.List{GSF.Text.Patch})">
            <summary>
            Take a list of patches and return a textual representation.
            </summary>
            <param name="patches">List of Patch objects</param>
            <returns>Text representation of patches</returns>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.PatchFromText(System.String)">
            <summary>
            Parse a textual representation of patches and return a List of Patch objects.
            </summary>
            <param name="textline">Text representation of patches</param>
            <returns>List of Patch objects</returns>
            <exception cref="T:System.ArgumentException">If invalid input</exception>
        </member>
        <member name="M:GSF.Text.DiffMatchPatch.EncodeURI(System.String)">
            <summary>
            Encodes a string with URI-style % escaping.
            Compatible with JavaScript's encodeURI function.
            </summary>
            <param name="str">The string to encode</param>
            <returns>The encoded string</returns>
        </member>
        <member name="T:GSF.Text.Patch">
            <summary>
            Class representing one patch operation.
            </summary>
        </member>
        <member name="P:GSF.Text.Patch.Diffs">
            <summary>
            List of <see cref="T:GSF.Text.Diff"/>s in the patch
            </summary>
        </member>
        <member name="P:GSF.Text.Patch.Start1">
            <summary>
            Source line number (zero-based index)
            </summary>
        </member>
        <member name="P:GSF.Text.Patch.Start2">
            <summary>
            Target line number (zero-based index)
            </summary>
        </member>
        <member name="P:GSF.Text.Patch.Length1">
            <summary>
            Number of lines from source contained in this patch
            </summary>
        </member>
        <member name="P:GSF.Text.Patch.Length2">
            <summary>
            Number of lines from target contained in this patch
            </summary>
        </member>
        <member name="M:GSF.Text.Patch.ToString">
            <summary>
            Emulate GNU diff's format.
            Header: @@ -382,8 +481,9 @@
            Indices are printed as 1-based, not 0-based.
            </summary>
            <returns>The GNU diff string</returns>
        </member>
        <member name="T:GSF.Threading.InterprocessLock">
            <summary>
            Defines helper methods related to inter-process locking.
            </summary>
        </member>
        <member name="M:GSF.Threading.InterprocessLock.GetNamedMutex(System.Boolean)">
            <summary>
            Gets a uniquely named inter-process <see cref="T:System.Threading.Mutex"/> associated with the running application, typically used to detect whether an instance
            of the application is already running.
            </summary>
            <param name="perUser">Indicates whether to generate a different name for the <see cref="T:System.Threading.Mutex"/> dependent upon the user running the application.</param>
            <returns>A uniquely named inter-process <see cref="T:System.Threading.Mutex"/> specific to the application; <see cref="T:System.Threading.Mutex"/> is created if it does not exist.</returns>
            <remarks>
            <para>
            This function uses a hash of the assembly's GUID when creating the <see cref="T:System.Threading.Mutex"/>, if it is available. If it is not available, it uses a hash
            of the simple name of the assembly. Although the name is hashed to help guarantee uniqueness, it is still entirely possible that another application
            may use that name with the same hashing algorithm to generate its <see cref="T:System.Threading.Mutex"/> name. Therefore, it is best to ensure that the
            <see cref="T:System.Runtime.InteropServices.GuidAttribute"/> is defined in the AssemblyInfo of your application.
            </para>
            <para>
            The <see cref="T:System.Threading.Mutex"/> created is "Global" meaning that it will be accessible to all active application sessions including terminal service
            sessions. This is accomplished internally by prefixing the <see cref="T:System.Threading.Mutex"/> name with "Global\". Do not use this helper function if you need
            to create a specifically named or non-global <see cref="T:System.Threading.Mutex"/>, such as when you need to interact with another application using a
            <see cref="T:System.Threading.Mutex"/> that does not use this function.
            </para>
            </remarks>
            <exception cref="T:System.UnauthorizedAccessException">The named mutex exists, but the user does not have the minimum needed security access rights to use it.</exception>
        </member>
        <member name="M:GSF.Threading.InterprocessLock.GetNamedMutex(System.String)">
            <summary>
            Gets a uniquely named inter-process <see cref="T:System.Threading.Mutex"/> associated with the specified <paramref name="name"/> that identifies a source object
            needing concurrency locking.
            </summary>
            <param name="name">Identifying name of source object needing concurrency locking (e.g., a path and file name).</param>
            <returns>A uniquely named inter-process <see cref="T:System.Threading.Mutex"/> specific to <paramref name="name"/>; <see cref="T:System.Threading.Mutex"/> is created if it does not exist.</returns>
            <remarks>
            <para>
            This function uses a hash of the <paramref name="name"/> when creating the <see cref="T:System.Threading.Mutex"/>, not the actual <paramref name="name"/> - this way
            restrictions on the <paramref name="name"/> length do not need to be a user concern. All processes needing an inter-process <see cref="T:System.Threading.Mutex"/> need
            to use this same function to ensure access to the same <see cref="T:System.Threading.Mutex"/>.
            </para>
            <para>
            The <paramref name="name"/> can be a string of any length (must not be empty, null or white space) and is not case-sensitive. All hashes of the
            <paramref name="name"/> used to create the global <see cref="T:System.Threading.Mutex"/> are first converted to lower case.
            </para>
            <para>
            The <see cref="T:System.Threading.Mutex"/> created is "Global" meaning that it will be accessible to all active application sessions including terminal service
            sessions. This is accomplished internally by prefixing the <see cref="T:System.Threading.Mutex"/> name with "Global\"; it is not necessary for the user to be
            concerned with the length or contents of the <paramref name="name"/> in this method as long as the same <paramref name="name"/> is used for
            each application. Do not use this helper function if you need to create a specifically named or non-global <see cref="T:System.Threading.Mutex"/>, such as when
            you need to interact with another application using a <see cref="T:System.Threading.Mutex"/> that does not use this function.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Argument <paramref name="name"/> cannot be empty, null or white space.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The named mutex exists, but the user does not have the minimum needed security access rights to use it.</exception>
        </member>
        <member name="M:GSF.Threading.InterprocessLock.GetNamedSemaphore(System.Boolean,System.Int32,System.Int32)">
            <summary>
            Gets a uniquely named inter-process <see cref="T:System.Threading.Semaphore"/> associated with the running application, typically used to detect whether some number of
            instances of the application are already running.
            </summary>
            <param name="perUser">Indicates whether to generate a different name for the <see cref="T:System.Threading.Semaphore"/> dependent upon the user running the application.</param>
            <param name="maximumCount">The maximum number of requests for the semaphore that can be granted concurrently.</param>
            <param name="initialCount">The initial number of requests for the semaphore that can be granted concurrently, or -1 to default to <paramref name="maximumCount"/>.</param>
            <returns>A uniquely named inter-process <see cref="T:System.Threading.Semaphore"/> specific to entry assembly; <see cref="T:System.Threading.Semaphore"/> is created if it does not exist.</returns>
            <remarks>
            <para>
            This function uses a hash of the assembly's GUID when creating the <see cref="T:System.Threading.Semaphore"/>, if it is available. If it is not available, it uses a hash
            of the simple name of the assembly. Although the name is hashed to help guarantee uniqueness, it is still entirely possible that another application
            may use that name with the same hashing algorithm to generate its <see cref="T:System.Threading.Semaphore"/> name. Therefore, it is best to ensure that the
            <see cref="T:System.Runtime.InteropServices.GuidAttribute"/> is defined in the AssemblyInfo of your application.
            </para>
            <para>
            The <see cref="T:System.Threading.Semaphore"/> created is "Global" meaning that it will be accessible to all active application sessions including terminal service
            sessions. This is accomplished internally by prefixing the <see cref="T:System.Threading.Semaphore"/> name with "Global\". Do not use this helper function if you need
            to create a specifically named or non-global <see cref="T:System.Threading.Semaphore"/>, such as when you need to interact with another application using a
            <see cref="T:System.Threading.Semaphore"/> that does not use this function.
            </para>
            </remarks>
            <exception cref="T:System.UnauthorizedAccessException">The named semaphore exists, but the user does not have the minimum needed security access rights to use it.</exception>
        </member>
        <member name="M:GSF.Threading.InterprocessLock.GetNamedSemaphore(System.String,System.Int32,System.Int32)">
            <summary>
            Gets a uniquely named inter-process <see cref="T:System.Threading.Semaphore"/> associated with the specified <paramref name="name"/> that identifies a source object
            needing concurrency locking.
            </summary>
            <param name="name">Identifying name of source object needing concurrency locking (e.g., a path and file name).</param>
            <param name="maximumCount">The maximum number of requests for the semaphore that can be granted concurrently.</param>
            <param name="initialCount">The initial number of requests for the semaphore that can be granted concurrently, or -1 to default to <paramref name="maximumCount"/>.</param>
            <returns>A uniquely named inter-process <see cref="T:System.Threading.Semaphore"/> specific to <paramref name="name"/>; <see cref="T:System.Threading.Semaphore"/> is created if it does not exist.</returns>
            <remarks>
            <para>
            This function uses a hash of the <paramref name="name"/> when creating the <see cref="T:System.Threading.Semaphore"/>, not the actual <paramref name="name"/> - this way
            restrictions on the <paramref name="name"/> length do not need to be a user concern. All processes needing an inter-process <see cref="T:System.Threading.Semaphore"/> need
            to use this same function to ensure access to the same <see cref="T:System.Threading.Semaphore"/>.
            </para>
            <para>
            The <paramref name="name"/> can be a string of any length (must not be empty, null or white space) and is not case-sensitive. All hashes of the
            <paramref name="name"/> used to create the global <see cref="T:System.Threading.Semaphore"/> are first converted to lower case.
            </para>
            <para>
            The <see cref="T:System.Threading.Semaphore"/> created is "Global" meaning that it will be accessible to all active application sessions including terminal service
            sessions. This is accomplished internally by prefixing the <see cref="T:System.Threading.Semaphore"/> name with "Global\"; it is not necessary for the user to be
            concerned with the length or contents of the <paramref name="name"/> in this method as long as the same <paramref name="name"/> is used for
            each application. Do not use this helper function if you need to create a specifically named or non-global <see cref="T:System.Threading.Semaphore"/>, such as when
            you need to interact with another application using a <see cref="T:System.Threading.Semaphore"/> that does not use this function.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException">Argument <paramref name="name"/> cannot be empty, null or white space.</exception>
            <exception cref="T:System.UnauthorizedAccessException">The named semaphore exists, but the user does not have the minimum needed security access rights to use it.</exception>
        </member>
        <member name="T:GSF.Threading.InterprocessReaderWriterLock">
            <summary>
            Represents an inter-process reader/writer lock using <see cref="T:System.Threading.Semaphore"/> and <see cref="T:System.Threading.Mutex"/> native locking mechanisms.
            </summary>
        </member>
        <member name="F:GSF.Threading.InterprocessReaderWriterLock.DefaultMaximumConcurrentLocks">
            <summary>
            Default maximum concurrent locks allowed for <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/>.
            </summary>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/> associated with the specified
            <paramref name="name"/> that identifies a source object needing concurrency locking.
            </summary>
            <param name="name">Identifying name of source object needing concurrency locking (e.g., a path and file name).</param>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.#ctor(System.String,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/> associated with the specified
            <paramref name="name"/> that identifies a source object needing concurrency locking.
            </summary>
            <param name="name">Identifying name of source object needing concurrency locking (e.g., a path and file name).</param>
            <param name="maximumConcurrentLocks">Maximum concurrent reader locks to allow.</param>
            <remarks>
            If more reader locks are requested than the <paramref name="maximumConcurrentLocks"/>, excess reader locks will simply
            wait until a lock is available (i.e., one of the existing reads completes).
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Threading.InterprocessReaderWriterLock.MaximumConcurrentLocks">
            <summary>
            Gets the maximum concurrent reader locks allowed.
            </summary>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/> object.
            </summary>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Threading.InterprocessReaderWriterLock"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.EnterReadLock">
            <summary>
            Tries to enter the lock in read mode.
            </summary>
            <remarks>
            Upon successful acquisition of a read lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterReadLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterReadLock(System.Int32)"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.EnterWriteLock">
            <summary>
            Tries to enter the lock in write mode.
            </summary>
            <remarks>
            Upon successful acquisition of a write lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterWriteLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterWriteLock(System.Int32)"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock">
            <summary>
            Exits read mode and returns the prior read lock count.
            </summary>
            <remarks>
            Upon successful acquisition of a read lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterReadLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterReadLock(System.Int32)"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock">
            <summary>
            Exits write mode.
            </summary>
            <remarks>
            Upon successful acquisition of a write lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterWriteLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterWriteLock(System.Int32)"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterReadLock(System.Int32)">
            <summary>
            Tries to enter the lock in read mode, with an optional time-out.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or -1 (<see cref="F:System.Threading.Timeout.Infinite"/>) to wait indefinitely.</param>
            <returns><c>true</c> if the calling thread entered read mode, otherwise, <c>false</c>.</returns>
            <remarks>
            <para>
            Upon successful acquisition of a read lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitReadLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterReadLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterReadLock(System.Int32)"/>.
            </para>
            <para>
            Note that this function may wait as long as 2 * <paramref name="millisecondsTimeout"/> since the function first waits for synchronous access
            to the semaphore, then waits again on an available semaphore slot.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterWriteLock(System.Int32)">
            <summary>
            Tries to enter the lock in write mode, with an optional time-out.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or -1 (<see cref="F:System.Threading.Timeout.Infinite"/>) to wait indefinitely.</param>
            <returns><c>true</c> if the calling thread entered write mode, otherwise, <c>false</c>.</returns>
            <remarks>
            <para>
            Upon successful acquisition of a write lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/>.
            One <see cref="M:GSF.Threading.InterprocessReaderWriterLock.ExitWriteLock"/> should be called for each <see cref="M:GSF.Threading.InterprocessReaderWriterLock.EnterWriteLock"/> or <see cref="M:GSF.Threading.InterprocessReaderWriterLock.TryEnterWriteLock(System.Int32)"/>.
            </para>
            <para>
            Note that this function may wait as long as 2 * <paramref name="millisecondsTimeout"/> since the function first waits for synchronous access
            to the semaphore, then waits again on an available semaphore slot.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Threading.ManagedCancellationTokenSource">
            <summary>
            Implements a reference counter for <see cref="T:System.Threading.CancellationTokenSource"/> to
            provide thread safety around <see cref="M:System.Threading.CancellationTokenSource.Dispose"/>.
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedCancellationTokenSource.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.ManagedCancellationTokenSource"/> class.
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedCancellationTokenSource.#ctor(System.Func{System.Threading.CancellationTokenSource})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.ManagedCancellationTokenSource"/> class.
            </summary>
            <param name="cancellationTokenSourceFactory">Factory function for instantiating the underlying <see cref="T:System.Threading.CancellationTokenSource"/>.</param>
        </member>
        <member name="M:GSF.Threading.ManagedCancellationTokenSource.#ctor(System.Threading.CancellationTokenSource)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.ManagedCancellationTokenSource"/> class.
            </summary>
            <param name="underlyingTokenSource">The <see cref="T:System.Threading.CancellationTokenSource"/> to be managed.</param>
        </member>
        <member name="M:GSF.Threading.ManagedCancellationTokenSource.RetrieveToken(System.Threading.CancellationToken@)">
            <summary>
            Retrieves the <see cref="T:System.Threading.CancellationToken"/> used to
            check the state of cancellation.
            </summary>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>A disposable object used to control the lifetime of the <paramref name="cancellationToken"/>.</returns>
        </member>
        <member name="M:GSF.Threading.ManagedCancellationTokenSource.Dispose">
            <summary>
            Cancels the underlying <see cref="T:System.Threading.CancellationTokenSource"/>
            and schedules it for disposal.
            </summary>
        </member>
        <member name="T:GSF.Threading.ThreadType">
            <summary>
            Managed Thread Types
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadType.StandardThread">
            <summary>Standard thread created with public constructor</summary>
        </member>
        <member name="F:GSF.Threading.ThreadType.QueuedThread">
            <summary>Queued thread added into managed thread pool</summary>
        </member>
        <member name="T:GSF.Threading.ThreadStatus">
            <summary>
            Managed Thread States
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Unstarted">
            <summary>Thread created, not started</summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Queued">
            <summary>Thread queued for execution</summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Started">
            <summary>Thread start requested, execution pending</summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Executing">
            <summary>Thread executing</summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Completed">
            <summary>Thread completed</summary>
        </member>
        <member name="F:GSF.Threading.ThreadStatus.Aborted">
            <summary>Thread aborted</summary>
        </member>
        <member name="T:GSF.Threading.ManagedThread">
            <summary>
            Defines a managed thread
            </summary>
            <remarks>
            This class works like any normal thread but provides the benefit of automatic tracking
            through the ManagedThreads collection, total thread runtime and the ability to run
            the thread in an alternate execution context
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThread.#ctor(System.Threading.ThreadStart)">
            <summary>
            Initializes a new instance of the ManagedThread class.
            </summary>
            <param name="callback">A <see cref="T:System.Threading.ThreadStart"/> object.</param>
        </member>
        <member name="M:GSF.Threading.ManagedThread.#ctor(System.Threading.ParameterizedThreadStart)">
            <summary>
            Initializes a new instance of the ManagedThread class, specifying a delegate that allows an object to be passed to the thread when the thread is started.
            </summary>
            <param name="callback">A <see cref="T:System.Threading.ParameterizedThreadStart"/> object.</param>
        </member>
        <member name="M:GSF.Threading.ManagedThread.#ctor(System.Threading.ContextCallback,System.Threading.ExecutionContext)">
            <summary>
            Initializes a new instance of the ManagedThread class, specifying a delegate that allows an object to be passed to the thread when the thread is started
            and allowing the user to specify an alternate execution context for the thread.
            </summary>
            <param name="callback">A <see cref="T:System.Threading.ContextCallback"/> delgate to execute.</param>
            <param name="ctx">An <see cref="T:System.Threading.ExecutionContext"/>.</param>
        </member>
        <member name="P:GSF.Threading.ManagedThread.State">
            <summary>
            An object containing data to be used by the thread's execution method.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.Tag">
            <summary>
            An object that allows additional user defined information to be tracked along with this thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.Type">
            <summary>
            Returns the managed thread type (either StandardThread or QueuedThread)
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.Status">
            <summary>
            Gets a value containing the curretn status of the current thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.IsAlive">
            <summary>
            Gets a value indicating the execution status of the current thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.Name">
            <summary>
            Gets or sets the name of the thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.StartTime">
            <summary>
            Get the time, in ticks, that the thread started executing
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.StopTime">
            <summary>
            Get the time, in ticks, that the thread finished executing
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the managed thread has been active.
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThread.Priority">
            <summary>
            Gets or sets a value indicating the scheduling priority of a thread.
            </summary>
            <returns>One of the ThreadPriority values. The default value is Normal.</returns>
            <remarks>
            Changing of this value is only available to standard threads - you can't change the priorty of queued threads since they are already
            allocated and owned by the .NET thread pool.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Abort">
            <summary>
            Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Abort(System.Object)">
            <summary>
            Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread.
            </summary>
            <param name="stateInfo">An object that contains application-specific information, such as state, which can be used by the thread being aborted.</param>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Start">
            <summary>
            Causes a thread to be scheduled for execution.
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Start(System.Object)">
            <summary>
            Causes a thread to be scheduled for execution.
            </summary>
            <param name="parameter">An object that contains data to be used by the method the thread executes.</param>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Join">
            <summary>
            Blocks the calling thread until a thread terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.
            </summary>
            <remarks>
            This is only available for standard threads - queued threads don't have an associated thread until they are executing.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Join(System.Int32)">
            <summary>
            Blocks the calling thread until a thread terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.
            </summary>
            <param name="millisecondsTimeout">The number of milliseconds to wait for the thread to terminate. </param>
            <returns>true if the thread has terminated; false if the thread has not terminated after the amount of time specified by the millisecondsTimeout parameter has elapsed.</returns>
            <remarks>
            This is only available for standard threads - queued threads don't have an associated thread until they are executing.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThread.Join(System.TimeSpan)">
            <summary>
            Blocks the calling thread until a thread terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.
            </summary>
            <param name="timeout">A TimeSpan set to the amount of time to wait for the thread to terminate. </param>
            <returns>true if the thread terminated; false if the thread has not terminated after the amount of time specified by the timeout parameter has elapsed.</returns>
            <remarks>
            This is only available for standard threads - queued threads don't have an associated thread until they are executing.
            </remarks>
        </member>
        <member name="T:GSF.Threading.ManagedThreadPool">
            <summary>
            Defines a managed thread pool
            </summary>
            <remarks>
            This class works like the normal thread pool but provides the benefit of automatic tracking
            of queued threads through the ManagedThreads collection, returns a reference to the
            queued thread with the ability to dequeue and/or abort, total thread runtime and the
            ability to run the queued thread in an alternate execution context
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreadPool.QueueUserWorkItem(System.Threading.ThreadStart)">
            <summary>
            Queues a work item for processing on the managed thread pool
            </summary>
            <param name="callback">A WaitCallback representing the method to execute.</param>
            <returns>Reference to queued thread</returns>
            <remarks>
            This differs from the normal thread pool QueueUserWorkItem function in that it does
            not return a success value determing if item was queued, but rather a reference to
            to the managed thread that was actually placed on the queue.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreadPool.QueueUserWorkItem(System.Threading.ParameterizedThreadStart)">
            <summary>
            Queues a work item for processing on the managed thread pool
            </summary>
            <param name="callback">A WaitCallback representing the method to execute.</param>
            <returns>Reference to queued thread</returns>
            <remarks>
            This differs from the normal thread pool QueueUserWorkItem function in that it does
            not return a success value determing if item was queued, but rather a reference to
            to the managed thread that was actually placed on the queue.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreadPool.QueueUserWorkItem(System.Threading.ParameterizedThreadStart,System.Object)">
            <summary>
            Queues a work item for processing on the managed thread pool
            </summary>
            <param name="callback">A WaitCallback representing the method to execute.</param>
            <param name="state">An object containing data to be used by the method.</param>
            <returns>Reference to queued thread</returns>
            <remarks>
            This differs from the normal thread pool QueueUserWorkItem function in that it does
            not return a success value determing if item was queued, but rather a reference to
            to the managed thread that was actually placed on the queue.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreadPool.QueueUserWorkItem(System.Threading.ContextCallback,System.Threading.ExecutionContext)">
            <summary>
            Queues a work item for processing on the managed thread pool
            </summary>
            <param name="callback">A WaitCallback representing the method to execute.</param>
            <param name="ctx">Alternate execution context in which to run the thread.</param>
            <returns>Reference to queued thread</returns>
            <remarks>
            This differs from the normal thread pool QueueUserWorkItem function in that it does
            not return a success value determing if item was queued, but rather a reference to
            to the managed thread that was actually placed on the queue.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreadPool.QueueUserWorkItem(System.Threading.ContextCallback,System.Object,System.Threading.ExecutionContext)">
            <summary>
            Queues a work item for processing on the managed thread pool
            </summary>
            <param name="callback">A WaitCallback representing the method to execute.</param>
            <param name="state">An object containing data to be used by the method.</param>
            <param name="ctx">Alternate execution context in which to run the thread.</param>
            <returns>Reference to queued thread</returns>
            <remarks>
            This differs from the normal thread pool QueueUserWorkItem function in that it does
            not return a success value determing if item was queued, but rather a reference to
            to the managed thread that was actually placed on the queue.
            </remarks>
        </member>
        <member name="T:GSF.Threading.ManagedThreads">
            <summary>
            Maintains a reference to all managed threads
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedThreads.Add(GSF.Threading.ManagedThread)">
            <summary>
            Add an item to the active thread list
            </summary>
            <remarks>
            Typically only used by standard threads when user calls "Start"
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreads.Remove(GSF.Threading.ManagedThread)">
            <summary>
            Remove completed thread from active thread list
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedThreads.Queue(GSF.Threading.ManagedThread)">
            <summary>
            Queue thread for processing
            </summary>
            <remarks>
            Typically only used by queued threads to add work items to the queue
            </remarks>
        </member>
        <member name="M:GSF.Threading.ManagedThreads.Pop">
            <summary>
            Removes first item from the queue and transfers the item to the active thread list
            </summary>
            <returns>Next item to be processed</returns>
        </member>
        <member name="P:GSF.Threading.ManagedThreads.ActiveThreadStatus">
            <summary>
            Returns a descriptive status of all queued and active mananged threads
            </summary>
        </member>
        <member name="P:GSF.Threading.ManagedThreads.QueuedThreads">
            <summary>
            Returns a copy of the currently queued and active threads
            </summary>
        </member>
        <member name="M:GSF.Threading.ManagedThreads.Cancel(GSF.Threading.ManagedThread,System.Boolean,System.Object)">
            <summary>
            Removes a queued thread from thread pool if still queued, if allowAbort is True
            aborts the thread if executing (standard or queued)
            </summary>
            <param name="item">Thread to cancel</param>
            <param name="allowAbort">Set to True to abort thread if executing</param>
            <param name="stateInfo">An object that contains application-specific information, such as state, which can be used by the thread being aborted.</param>
        </member>
        <member name="T:GSF.Threading.WaitHandleExtensions">
            <summary>
            Defines extension functions related to manipulation wait handle objects.
            </summary>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},GSF.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="cancellationToken">A <see cref="T:GSF.Threading.CancellationToken"/> to observe, if any.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise the method never returns unless cancelled.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},System.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> to observe.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise the method never returns unless cancelled.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},System.Int32,GSF.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal, using an integer value to specify the maximum time interval,in milliseconds, to wait.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="timeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="cancellationToken">A <see cref="T:GSF.Threading.CancellationToken"/> to observe, if any.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},System.Int32,System.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal, using an integer value to specify the maximum time interval,in milliseconds, to wait.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="timeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> to observe.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},System.TimeSpan,GSF.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal, using a <see cref="T:System.TimeSpan"/> value to specify the maximum time interval to wait.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds, to wait indefinitely.</param>
            <param name="cancellationToken">A <see cref="T:GSF.Threading.CancellationToken"/> to observe, if any.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WaitHandleExtensions.WaitAll(System.Collections.Generic.IEnumerable{System.Threading.ManualResetEventSlim},System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Waits for all the specified <see cref="T:System.Threading.ManualResetEventSlim"/> elements to receive a signal, using a <see cref="T:System.TimeSpan"/> value to specify the maximum time interval to wait.
            </summary>
            <param name="resetEvents">Collection of <see cref="T:System.Threading.ManualResetEventSlim"/> elements to operate on.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds, to wait indefinitely.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> to observe.</param>
            <returns><c>true</c> when every <see cref="T:System.Threading.ManualResetEventSlim"/> element has received a signal; otherwise <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="resetEvents"/> is <c>null</c>.</exception>
            <remarks>
            Using <see cref="M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[])"/> will cause all <see cref="T:System.Threading.ManualResetEventSlim"/> elements
            to be upgraded to a standard <see cref="T:System.Threading.ManualResetEvent"/>, these overloads allow similar functionality without
            incurring unconditional inflation of the underlying <see cref="T:System.Threading.ManualResetEvent"/>.
            </remarks>
        </member>
        <member name="T:GSF.Threading.ActionExtensions">
            <summary>
            Defines extension methods for actions.
            </summary>
        </member>
        <member name="M:GSF.Threading.ActionExtensions.TryExecute(System.Action,System.Action{System.Exception})">
            <summary>
            Attempts to execute an action and processes exceptions using the given exception handler.
            </summary>
            <param name="action">The action to be executed.</param>
            <param name="exceptionHandler">The handler to be called in the event of an error.</param>
            <returns>True if the action was executed without errors; false otherwise.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="action"/> or <paramref name="exceptionHandler"/> is null</exception>
        </member>
        <member name="M:GSF.Threading.ActionExtensions.DelayAndExecute(System.Action,System.Threading.WaitHandle,System.Int32)">
            <summary>
            Execute an action on the thread pool after a specified number of milliseconds.
            </summary>
            <param name="action">The action to be executed.</param>
            <param name="waitObj">The wait handle to be used to cancel execution.</param>
            <param name="delay">The amount of time to wait before execution, in milliseconds.</param>
        </member>
        <member name="M:GSF.Threading.ActionExtensions.DelayAndExecute(System.Action,System.Int32)">
            <summary>
            Execute an action on the thread pool after a specified number of milliseconds.
            </summary>
            <param name="action">The action to be executed.</param>
            <param name="delay">The amount of time to wait before execution, in milliseconds.</param>
            <returns>A cancellation token that can be used to cancel the operation.</returns>
        </member>
        <member name="T:GSF.Threading.CancellationToken">
            <summary>
            Represents a token that can be used to cancel an asynchronous operation.
            </summary>
        </member>
        <member name="E:GSF.Threading.CancellationToken.Cancelled">
            <summary>
            Event that will be raised when this <see cref="T:GSF.Threading.CancellationToken"/> is cancelled.
            </summary>
        </member>
        <member name="P:GSF.Threading.CancellationToken.IsCancelled">
            <summary>
            Gets a value that indicates whether the operation has been cancelled.
            </summary>
        </member>
        <member name="M:GSF.Threading.CancellationToken.Cancel">
            <summary>
            Cancels the operation.
            </summary>
            <returns><c>true</c> if the operation was cancelled; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Threading.CancellationToken.op_Implicit(GSF.Threading.CancellationToken)~System.Threading.CancellationToken">
            <summary>
            Implicitly converts a GSF cancellation token to an associated <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="token">Existing GSF cancellation token that is converted to an associated <see cref="T:System.Threading.CancellationToken"/>.</param>
            <returns>A <see cref="T:System.Threading.CancellationToken"/> based on an existing GSF cancellation token.</returns>
        </member>
        <member name="M:GSF.Threading.CancellationToken.op_Implicit(GSF.Threading.CancellationToken)~System.Threading.CancellationTokenSource">
            <summary>
            Implicitly converts a GSF cancellation token to an associated <see cref="T:System.Threading.CancellationTokenSource"/>.
            </summary>
            <param name="token">Existing GSF cancellation token that is converted to an associated <see cref="T:System.Threading.CancellationTokenSource"/>.</param>
            <returns>A <see cref="T:GSF.Threading.CancellationToken"/> based on an existing GSF cancellation token.</returns>
        </member>
        <member name="T:GSF.Threading.CompatibleCancellationToken">
            <summary>
            Represents a compatible implementation of the <see cref="T:GSF.Threading.ICancellationToken"/> interface
            that interoperates with the <see cref="T:System.Threading.CancellationToken"/> and can be
            used to cancel an asynchronous operation.
            </summary>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.#ctor(System.Threading.CancellationTokenSource)">
            <summary>
            Creates a <see cref="T:GSF.Threading.CompatibleCancellationToken"/> based on an existing system cancellation token source.
            </summary>
            <param name="source">Existing system cancellation token source.</param>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.#ctor(System.Threading.CancellationToken)">
            <summary>
            Creates a <see cref="T:GSF.Threading.CompatibleCancellationToken"/> based on an existing system cancellation token.
            </summary>
            <param name="token">Existing system token.</param>
            <remarks>
            A <see cref="T:GSF.Threading.CompatibleCancellationToken"/> created from an existing system cancellation token
            cannot be cancelled since the source for the provided token will not be available.
            </remarks>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.#ctor(GSF.Threading.CancellationToken)">
            <summary>
            Creates a <see cref="T:GSF.Threading.CompatibleCancellationToken"/> based on an existing GSF cancellation token.
            </summary>
            <param name="token">Existing GSF token.</param>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.Finalize">
            <summary>
            Handle disposing of locally allocated resources, if any.
            </summary>
        </member>
        <member name="P:GSF.Threading.CompatibleCancellationToken.IsCancelled">
            <summary>
            Gets a value that indicates whether the operation has been cancelled.
            </summary>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.Cancel">
            <summary>
            Cancels the operation.
            </summary>
            <returns><c>true</c> if the operation was cancelled; otherwise <c>false</c>.</returns>
            <remarks>
            The token can only be cancelled if a <see cref="T:System.Threading.CancellationTokenSource"/> was provided.
            </remarks>
            <exception cref="T:System.InvalidOperationException"><see cref="T:System.Threading.CancellationTokenSource"/> not available, token cannot be cancelled.</exception>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.GetTokenSource">
            <summary>
            Gets a <see cref="T:System.Threading.CancellationTokenSource" /> associated with this <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.
            </summary>
            <returns>A <see cref="T:System.Threading.CancellationTokenSource" /> associated with this <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.</returns>
            <remarks>
            This function will return <c>null</c> when the <see cref="T:GSF.Threading.CompatibleCancellationToken"/> was created
            from an existing system cancellation token and not its source or a GSF cancellation token.
            </remarks>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.GetToken">
            <summary>
            Gets a <see cref="T:System.Threading.CancellationToken" /> associated with this <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.
            </summary>
            <returns>A <see cref="T:System.Threading.CancellationToken" /> associated with this <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.</returns>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.op_Implicit(System.Threading.CancellationToken)~GSF.Threading.CompatibleCancellationToken">
            <summary>
            Implicitly converts existing system cancellation token to a <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.
            </summary>
            <param name="token">Existing system cancellation token that is converted to a <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.</param>
            <returns>A <see cref="T:GSF.Threading.CompatibleCancellationToken"/> based on an existing system cancellation token.</returns>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.op_Implicit(System.Threading.CancellationTokenSource)~GSF.Threading.CompatibleCancellationToken">
            <summary>
            Implicitly converts existing system cancellation token source to a <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.
            </summary>
            <param name="source">Existing system cancellation token source that is converted to a <see cref="T:GSF.Threading.CompatibleCancellationToken"/>.</param>
            <returns>A <see cref="T:GSF.Threading.CompatibleCancellationToken"/> based on an existing system cancellation token source.</returns>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.op_Implicit(GSF.Threading.CompatibleCancellationToken)~System.Threading.CancellationToken">
            <summary>
            Implicitly converts a <see cref="T:GSF.Threading.CompatibleCancellationToken"/> to an associated <see cref="T:System.Threading.CancellationToken"/>.
            </summary>
            <param name="token">Existing GSF cancellation token that is converted to an associated <see cref="T:System.Threading.CancellationToken"/>.</param>
            <returns>A <see cref="T:System.Threading.CancellationToken"/> based on an existing GSF cancellation token.</returns>
        </member>
        <member name="M:GSF.Threading.CompatibleCancellationToken.op_Implicit(GSF.Threading.CompatibleCancellationToken)~System.Threading.CancellationTokenSource">
            <summary>
            Implicitly converts a <see cref="T:GSF.Threading.CompatibleCancellationToken"/> to an associated <see cref="T:System.Threading.CancellationTokenSource"/>.
            </summary>
            <param name="token">Existing GSF cancellation token that is converted to an associated <see cref="T:System.Threading.CancellationTokenSource"/>.</param>
            <returns>A <see cref="T:GSF.Threading.CancellationToken"/> based on an existing GSF cancellation token.</returns>
        </member>
        <member name="T:GSF.Threading.DedicatedSynchronizedOperation">
            <summary>
            A synchronized operation that uses its own dedicated thread. 
            </summary>
            <remarks>
            The action performed by the <see cref="T:GSF.Threading.DedicatedSynchronizedOperation"/> is executed on
            its own dedicated thread when running the operation asynchronously. When running on
            its own thread, the action is executed in a tight loop until all pending operations
            have been completed. This type of synchronized operation should be preferred if
            operations may take a long time, block the thread, or put it to sleep. It is also
            recommended to prefer this type of operation if the speed of the operation is not
            critical or if completion of the operation is critical, such as when saving data
            to a file.
            </remarks>
        </member>
        <member name="M:GSF.Threading.DedicatedSynchronizedOperation.#ctor(System.Action,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="isBackground">Specifies if this operation will be a background thread.</param>
        </member>
        <member name="M:GSF.Threading.DedicatedSynchronizedOperation.#ctor(System.Action,System.Action{System.Exception},System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
            <param name="isBackground">Specifies if this operation will be a background thread.</param>
        </member>
        <member name="M:GSF.Threading.DedicatedSynchronizedOperation.ExecuteActionAsync">
            <summary>
            Executes the action on a separate thread.
            </summary>
        </member>
        <member name="T:GSF.Threading.DelayedSynchronizedOperation">
            <summary>
            Represents a short-running synchronized operation that cannot run while it is already
            in progress. Async operations will execute on the thread-pool after the specified
            <see cref="P:GSF.Threading.DelayedSynchronizedOperation.Delay"/> in milliseconds.
            </summary>
            <remarks>
            The action performed by the <see cref="T:GSF.Threading.DelayedSynchronizedOperation"/> is executed on
            the <see cref="T:System.Threading.ThreadPool"/> when running the operation asynchronously. When the
            operation is set to pending, the action is executed in an asynchronous loop on the
            thread pool until all pending operations have been completed. Since the action is
            executed on the thread pool, it is best if it can be executed quickly, without
            blocking the thread or putting it to sleep. If completion of the operation is
            critical, such as when saving data to a file, this type of operation should not
            be used since thread pool threads are background threads and will not prevent the
            program from ending before the operation is complete.
            </remarks>
        </member>
        <member name="F:GSF.Threading.DelayedSynchronizedOperation.DefaultDelay">
            <summary>
            Defines the default value for the <see cref="P:GSF.Threading.DelayedSynchronizedOperation.Delay"/> property.
            </summary>
        </member>
        <member name="M:GSF.Threading.DelayedSynchronizedOperation.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.DelayedSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.DelayedSynchronizedOperation.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.DelayedSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="P:GSF.Threading.DelayedSynchronizedOperation.Delay">
            <summary>
            Gets or sets the amount of time to wait before execution, in milliseconds,
            for any asynchronous calls. Zero value will execute immediately.
            </summary>
            <remarks>
            Non asynchronous calls will not be delayed.
            </remarks>
        </member>
        <member name="M:GSF.Threading.DelayedSynchronizedOperation.ExecuteActionAsync">
            <summary>
            Executes the action on a separate thread after the specified <see cref="P:GSF.Threading.DelayedSynchronizedOperation.Delay"/>.
            </summary>
        </member>
        <member name="T:GSF.Threading.DisposableCallback">
            <summary>
            A struct that executes a certain action upon disposing.
            The intended use for this is inside of a using block to assist
            in the proper release of a lock.
            Being a struct, it is unsafe make copies of this struct
            as Dispose may be called multiple times.
            </summary>
        </member>
        <member name="M:GSF.Threading.DisposableCallback.#ctor(System.Action)">
            <summary>
            Creates a read lock
            </summary>
            <param name="callback"></param>
        </member>
        <member name="M:GSF.Threading.DisposableCallback.Dispose">
            <summary>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.Threading.EventTimer">
            <summary>
            A reoccurring timer that fires on a given interval. This event timer will always fire at the top of the specified interval.
            If the callback takes too long, the next interval will be skipped.
            </summary>
        </member>
        <member name="E:GSF.Threading.EventTimer.Elapsed">
            <summary>
            An event that fires every time the specified period elapses.
            </summary>
        </member>
        <member name="M:GSF.Threading.EventTimer.#ctor(System.TimeSpan,System.TimeSpan)">
            <summary>
            Creates a <see cref="T:GSF.Threading.EventTimer"/>
            </summary>
            <param name="period"></param>
            <param name="dayOffset"></param>
        </member>
        <member name="P:GSF.Threading.EventTimer.TimeUntilNextExecution">
            <summary>
            The amount of time before the next interval will occur.
            </summary>
        </member>
        <member name="M:GSF.Threading.EventTimer.ChangeTimer(System.TimeSpan,System.TimeSpan)">
            <summary>
            Modifies the timer. Note, it takes some time for this timer to go into effect.
            </summary>
            <param name="period"></param>
            <param name="dayOffset"></param>
        </member>
        <member name="M:GSF.Threading.EventTimer.TimerRunning(System.Object,GSF.EventArgs{GSF.Threading.ScheduledTaskRunningReason})">
            <summary>
            This timer will reliably fire the directory polling every interval.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:GSF.Threading.EventTimer.RunNow">
            <summary>
            Immediately executes the timer, not waiting for the elapsed interval.
            </summary>
        </member>
        <member name="M:GSF.Threading.EventTimer.Start(GSF.Threading.ThreadingMode)">
            <summary>
            Starts the watching
            </summary>
        </member>
        <member name="M:GSF.Threading.EventTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Diagnostics.DisposableLoggingClassBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Threading.EventTimer.Create(System.TimeSpan,System.TimeSpan)">
            <summary>
            Creates a <see cref="T:GSF.Threading.EventTimer"/> on the specified interval.
            </summary>
            <param name="period">How often the time will reset</param>
            <param name="dayOffset">The offset as represented in UTC time when the event should fire</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.EventTimer.CreateSeconds(System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.Threading.EventTimer"/> on the specified interval.
            </summary>
            <param name="periodInSecond">How often the time will reset</param>
            <param name="dayOffsetInSecond">The offset as represented in UTC time when the event should fire</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.EventTimer.CreateMinutes(System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.Threading.EventTimer"/> on the specified interval.
            </summary>
            <param name="periodInMinutes">How often the time will reset</param>
            <param name="dayOffsetInMinutes">The offset as represented in UTC time when the event should fire</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.EventTimer.CreateHours(System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.Threading.EventTimer"/> on the specified interval.
            </summary>
            <param name="periodInHours">How often the time will reset</param>
            <param name="dayOffsetInHours">The offset as represented in UTC time when the event should fire</param>
            <returns></returns>
        </member>
        <member name="T:GSF.Threading.ICancellationToken">
            <summary>
            Represents a token that can be used to cancel an asynchronous operation.
            </summary>
        </member>
        <member name="P:GSF.Threading.ICancellationToken.IsCancelled">
            <summary>
            Gets a value that indicates whether the operation has been cancelled.
            </summary>
        </member>
        <member name="M:GSF.Threading.ICancellationToken.Cancel">
            <summary>
            Cancels the operation.
            </summary>
            <returns><c>true</c> if the operation was cancelled; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:GSF.Threading.SynchronizedOperationType">
            <summary>
            Represents the available types of synchronized operations.
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.Short">
            <summary>
            <see cref="T:GSF.Threading.ShortSynchronizedOperation"/>
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.Long">
            <summary>
            <see cref="T:GSF.Threading.LongSynchronizedOperation"/>
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.LongBackground">
            <summary>
            <see cref="T:GSF.Threading.LongSynchronizedOperation"/> with IsBackground set to <c>true</c>
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.Mixed">
            <summary>
            <see cref="T:GSF.Threading.MixedSynchronizedOperation"/>
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.DedicatedForeground">
            <summary>
            <see cref="T:GSF.Threading.DedicatedSynchronizedOperation"/> with IsBackground set to <c>false</c>
            </summary>
        </member>
        <member name="F:GSF.Threading.SynchronizedOperationType.DedicatedBackground">
            <summary>
            <see cref="T:GSF.Threading.DedicatedSynchronizedOperation"/> with IsBackground set to <c>true</c>
            </summary>
        </member>
        <member name="T:GSF.Threading.ISynchronizedOperation">
            <summary>
            Represents an operation that cannot run while it is already in progress.
            </summary>
        </member>
        <member name="P:GSF.Threading.ISynchronizedOperation.IsRunning">
            <summary>
            Gets a value to indicate whether the synchronized
            operation is currently executing its action.
            </summary>
        </member>
        <member name="P:GSF.Threading.ISynchronizedOperation.IsPending">
            <summary>
            Gets a value to indiate whether the synchronized operation
            has an additional operation that is pending execution after
            the currently running action has completed.
            </summary>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.Run">
            <summary>
            Executes the action on this thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            <para>When the operation is marked as pending, it will run again after
            the operation that is currently running has completed. This is useful
            if an update has invalidated the operation that is currently running
            and will therefore need to be run again.</para>
            
            <para>This method does not guarantee that control will be returned to the
            thread that called it. If other threads continuously mark the operation as
            pending, this thread will continue to run the operation indefinitely.</para>
            </remarks>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.TryRun">
            <summary>
            Attempts to execute the action on this thread.
            Does nothing if the operation is already running.
            </summary>
            <remarks>
            This method does not guarantee that control will be returned to the thread
            that called it. If other threads continuously mark the operation as pending,
            this thread will continue to run the operation indefinitely.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.RunOnce">
            <summary>
            Executes the action on this thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again after the
            operation that is currently running has completed. This is useful if
            an update has invalidated the operation that is currently running and
            will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.RunOnceAsync">
            <summary>
            Executes the action on another thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again after the
            operation that is currently running has completed. This is useful if
            an update has invalidated the operation that is currently running and
            will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.TryRunOnce">
            <summary>
            Attempts to execute the action on this thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="M:GSF.Threading.ISynchronizedOperation.TryRunOnceAsync">
            <summary>
            Attempts to execute the action on another thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="T:GSF.Threading.LogicalThreadStatistics">
            <summary>
            Represents a set of statistics gathered about
            the execution time of actions on a logical thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadStatistics.MaxExecutionTime">
            <summary>
            Gets the execution time of the longest running action.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadStatistics.MinExecutionTime">
            <summary>
            Gets the execution time of the shortest running action.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadStatistics.TotalExecutionTime">
            <summary>
            Gets the total execution time of all actions executed on the logical thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadStatistics.ExecutionCount">
            <summary>
            Gets the total number of actions executed on the logical thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadStatistics.UpdateStatistics(System.TimeSpan)">
            <summary>
            Updates the statistics based on the execution time of a single action.
            </summary>
            <param name="executionTime">The execution time of the action.</param>
        </member>
        <member name="T:GSF.Threading.LogicalThread">
            <summary>
            Represents a thread of execution to which
            actions can be dispatched from other threads.
            </summary>
            <remarks>
            <para>
            This class provides a simple alternative to synchronization primitives
            such as wait handles and locks. Actions dispatched to a logical thread
            will be processed synchronously as though it was executed as consecutive
            method calls. All such actions can be dispatched from any thread in the
            system so method calls coming from multiple threads can be easily
            synchronized without locks, loops, wait handles, or timeouts.
            </para>
            
            <para>
            Note that the <see cref="T:GSF.Threading.LogicalThreadScheduler"/> implements its own
            thread pool to execute tasks pushed to logical threads. Executing
            long-running processes or using synchronization primitives with high
            contention or long timeouts can hinder the logical thread scheduler's
            ability to schedule the actions of other logical threads. Like other
            thread pool implementations, you can mitigate this by increasing the
            maximum thread count of the logical thread scheduler, however it is
            recommended to avoid using synchronization primitives and instead
            synchronize those operations by running them as separate actions on
            the same logical thread.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.Threading.LogicalThread.UnhandledException">
            <summary>
            Handler for unhandled exceptions on the thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThread.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThread"/> class.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThread.#ctor(GSF.Threading.LogicalThreadScheduler)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThread"/> class.
            </summary>
            <param name="scheduler">The <see cref="T:GSF.Threading.LogicalThreadScheduler"/> that created this thread.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="scheduler"/> is null.</exception>
        </member>
        <member name="P:GSF.Threading.LogicalThread.PriorityLevels">
            <summary>
            Gets the number of levels of priority
            supported by this logical thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThread.HasAction">
            <summary>
            Gets a flag that indicates whether the logical
            thread has any unprocessed actions left in its queue.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThread.ActivePriority">
            <summary>
            Gets or sets the priority at which the
            logical thread is queued by the scheduler.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThread.NextPriority">
            <summary>
            Gets the priority of the next action to be processed on this logical thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThread.NextExecutionToken">
            <summary>
            Gets or sets the cancellation token for the next time
            the thread's actions will be executed by the scheduler.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThread.Push(System.Action)">
            <summary>
            Pushes an action to the logical thread.
            </summary>
            <param name="action">The action to be executed on this thread.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThread.Push(System.Int32,System.Action)">
            <summary>
            Pushes an action to the logical thread.
            </summary>
            <param name="priority">The priority the action should be given when executing actions on the thread (higher numbers have higher priority).</param>
            <param name="action">The action to be executed on this thread.</param>
            <exception cref="T:System.ArgumentException"><paramref name="priority"/> is outside the range between 1 and <see cref="P:GSF.Threading.LogicalThread.PriorityLevels"/>.</exception>
        </member>
        <member name="M:GSF.Threading.LogicalThread.Clear">
            <summary>
            Clears all actions from the logical thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThread.SampleStatistics">
            <summary>
            Samples the statistics, providing current statistic
            values and resetting statistic counters.
            </summary>
            <returns>The current statistic values.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThread.Pull">
            <summary>
            Pulls an action from the logical thread's internal queue to be executed on a physical thread.
            </summary>
            <returns>An action from the logical thread's internal queue.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThread.TryActivate(System.Int32)">
            <summary>
            Attempts to activate the thread at the given priority.
            </summary>
            <param name="priority">The priority at which to activate the thread.</param>
            <returns>True if the thread's priority needs to be changed to the given priority; false otherwise.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThread.Deactivate">
            <summary>
            Completely deactivates the thread, making it available for reactivation at any priority.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThread.GetThreadLocal(System.Object)">
            <summary>
            Returns the thread local object with the given ID.
            </summary>
            <param name="key">The key used to look up the thread local object.</param>
            <returns>The value of the thread local object with the given ID.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThread.SetThreadLocal(System.Object,System.Object)">
            <summary>
            Sets the value of the thread local object with the given ID.
            </summary>
            <param name="key">The key used to look up the thread local object.</param>
            <param name="value">The new value for the thread local object.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThread.UpdateStatistics(System.TimeSpan)">
            <summary>
            Updates the statistics based on the execution time of a single action.
            </summary>
            <param name="executionTime">The execution time of the action.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThread.OnUnhandledException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Threading.LogicalThread.UnhandledException"/> event.
            </summary>
            <param name="ex">The unhandled exception.</param>
            <returns>True if there are any handlers attached to this event; false otherwise.</returns>
        </member>
        <member name="P:GSF.Threading.LogicalThread.CurrentThread">
            <summary>
            Gets the logical thread that is currently executing.
            </summary>
        </member>
        <member name="T:GSF.Threading.LogicalThreadExtensions">
            <summary>
            Defines extensions for the <see cref="T:GSF.Threading.LogicalThread"/> class.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.Join(GSF.Threading.LogicalThread)">
            <summary>
            Creates an awaitable that ensures the continuation is running on the logical thread.
            </summary>
            <param name="thread">The thread to join.</param>
            <returns>A context that, when awaited, runs on the logical thread.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.Join(GSF.Threading.LogicalThread,System.Int32)">
            <summary>
            Creates an awaitable that ensures the continuation is running on the logical thread.
            </summary>
            <param name="thread">The thread to join.</param>
            <param name="priority">The priority of the continuation when completing asynchronously.</param>
            <returns>A context that, when awaited, runs on the logical thread.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.Yield(GSF.Threading.LogicalThread)">
            <summary>
            Creates an awaitable that asynchronously yields
            to a new action on the logical thread when awaited.
            </summary>
            <param name="thread">The thread to yield to.</param>
            <returns>A context that, when awaited, will transition to a new action on the logical thread.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.Yield(GSF.Threading.LogicalThread,System.Int32)">
            <summary>
            Creates an awaitable that asynchronously yields
            to a new action on the logical thread when awaited.
            </summary>
            <param name="thread">The thread to yield to.</param>
            <param name="priority">The priority of the continuation.</param>
            <returns>A context that, when awaited, will transition to a new action on the logical thread.</returns>
        </member>
        <member name="T:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable">
            <summary>
            Provides an awaitable context for switching into a target environment.
            </summary>
            <remarks>
            This type is intended for compiler use only.
            </remarks>
        </member>
        <member name="T:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter">
            <summary>
            Provides an awaiter that switches into a target environment.
            </summary>
            <remarks>
            This type is intended for compiler use only.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter.#ctor(GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter"/> class.
            </summary>
            <param name="awaitable">The awaitable that spawned this awaiter.</param>
        </member>
        <member name="P:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter.IsCompleted">
            <summary>
            Gets whether a yield is not required.
            </summary>
            <remarks>
            This property is intended for compiler user rather than use directly in code.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter.OnCompleted(System.Action)">
            <summary>
            Posts the <paramref name="continuation"/> back to the current context.
            </summary>
            <param name="continuation">The action to invoke asynchronously.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null.</exception>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.LogicalThreadAwaiter.GetResult">
            <summary>
            Ends the await operation.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.#ctor(GSF.Threading.LogicalThread,System.Int32,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable"/> class.
            </summary>
            <param name="thread">The thread on which to push continuations.</param>
            <param name="priority">The priority of continuations pushed to the thread.</param>
            <param name="forceYield">Force continuations to complete asynchronously.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable.GetAwaiter">
            <summary>
            Gets an awaiter for this <see cref="T:GSF.Threading.LogicalThreadExtensions.LogicalThreadAwaitable"/>.
            </summary>
            <returns>An awaiter for this awaitable.</returns>
            <remarks>This method is intended for compiler user rather than use directly in code.</remarks>
        </member>
        <member name="T:GSF.Threading.LogicalThreadLocal`1">
            <summary>
            Represents a slot in the thread local memory space of each logical thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadLocal`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.#ctor(System.Func{`0})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadLocal`1"/> class.
            </summary>
            <param name="newObjectFactory">Factory to produce the initial value when accessing uninitialized values.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.Threading.LogicalThreadLocal`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadLocal`1.Value">
            <summary>
            Gets or sets the thread local object
            associated with the current logical thread.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadLocal`1.IsDisposed">
            <summary>
            Gets a flag that indicates whether this object has been disposed.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.Threading.LogicalThreadLocal`1"/> object.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.Access(System.Action)">
            <summary>
            Executes the given action in a protected code block that ensures all
            unmanaged resources get cleaned up after a call to <see cref="M:GSF.Threading.LogicalThreadLocal`1.Dispose"/>.
            </summary>
            <param name="action">The action to be executed.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.Access``1(System.Func{``0})">
            <summary>
            Executes the given function in a protected code block that ensures all
            unmanaged resources get cleaned up after a call to <see cref="M:GSF.Threading.LogicalThreadLocal`1.Dispose"/>.
            </summary>
            <param name="func">The function to be executed.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.TryGetSlot(GSF.Threading.LogicalThreadLocal{`0}.Slot@)">
            <summary>
            Attempts to get the instance of this slot from the current logical thread.
            </summary>
            <param name="slot">An instance of this slot.</param>
            <returns>True if an instance of this slot is successfully retrieved from the current logical thread.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.Threading.LogicalThreadLocal`1"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.AttachToDisposed">
            <summary>
            Attaches logic to dispose of the slot in
            the currently executing logical thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadLocal`1.OnDisposed(System.Boolean)">
            <summary>
            Invokes the <see cref="E:GSF.Threading.LogicalThreadLocal`1.Disposed"/> event handler.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="T:GSF.Threading.LogicalThreadOperation">
            <summary>
            Synchronized operation that executes on a logical thread.
            </summary>
            <remarks>
            This synchronized operation optionally supports a different usage pattern which will
            allow for asynchronous loops and signals to be passed between threads throughout an
            operation. The following is an example of how to implement a simple asynchronous loop
            between two threads using this class. Note that when used, the pattern requires more
            diligence on the user's part for handling exceptions and signaling when the operation
            is complete:
            
            <code>
            LogicalThread thread1 = new LogicalThread();
            LogicalThread thread2 = new LogicalThread();
            
            // Create logical thread operation with manually controlled call to RunIfPending
            LogicalThreadOperation operation = new LogicalThreadOperation(thread1, DoOperation, false);
            
            private void DoOperation()
            {
                ExecuteOnThread1();
                thread2.Push(() => operation.ExecuteAction(() =>
                {
                    ExecuteOnThread2();
                    operation.RunIfPending();
                }));
            });
            </code>
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.#ctor(GSF.Threading.LogicalThread,System.Action,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadOperation"/> class.
            </summary>
            <param name="thread">The thread on which to execute the operation's action.</param>
            <param name="action">The action to be executed.</param>
            <param name="autoRunIfPending">
            Set to <c>true</c> to execute <see cref="M:GSF.Threading.LogicalThreadOperation.RunIfPending"/> automatically; otherwise,
            set to <c>false</c> for user controlled call timing.
            </param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.#ctor(GSF.Threading.LogicalThread,System.Action,System.Int32,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadOperation"/> class.
            </summary>
            <param name="thread">The thread on which to execute the operation's action.</param>
            <param name="action">The action to be executed.</param>
            <param name="priority">The priority with which the action should be executed on the logical thread.</param>
            <param name="autoRunIfPending">
            Set to <c>true</c> to execute <see cref="M:GSF.Threading.LogicalThreadOperation.RunIfPending"/> automatically; otherwise, 
            set to <c>false</c> for user controlled call timing.
            </param>
            <exception cref="T:System.ArgumentException"><paramref name="priority"/> is outside the range between 1 and <see cref="P:GSF.Threading.LogicalThread.PriorityLevels"/>.</exception>
        </member>
        <member name="P:GSF.Threading.LogicalThreadOperation.IsRunning">
            <summary>
            Gets a value to indicate whether the operation is currently executing actions.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadOperation.IsPending">
            <summary>
            Gets a value to indicate whether the operation has an additional operation
            that is pending execution after the currently running operation has completed.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadOperation.AutoRunIfPending">
            <summary>
            Gets flag that determines if <see cref="M:GSF.Threading.LogicalThreadOperation.RunIfPending"/> will be called automatically.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadOperation.Priority">
            <summary>
            Gets or sets default priority for logical thread operation.
            </summary>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> is outside the range between 1 and <see cref="P:GSF.Threading.LogicalThread.PriorityLevels"/>.</exception>
            <remarks>
            Updates to default priority will only take effect during next <see cref="M:GSF.Threading.LogicalThread.Push(System.Int32,System.Action)"/> call.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.RunOnce">
            <summary>
            Executes the action on the current thread or marks the operation as
            pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again at the next
            call to <see cref="M:GSF.Threading.LogicalThreadOperation.RunIfPending"/>. This can be useful if an update to
            an object's state has invalidated the operation that is currently running
            and will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.RunOnceAsync">
            <summary>
            Executes the action on another thread or marks the operation as pending
            if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again at the next
            call to <see cref="M:GSF.Threading.LogicalThreadOperation.RunIfPending"/>. This can be useful if an update to
            an object's state has invalidated the operation that is currently running
            and will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.TryRunOnce">
            <summary>
            Attempts to execute the action on the current thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.TryRunOnceAsync">
            <summary>
            Attempts to execute the action on another thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.RunIfPending">
            <summary>
            Starts the operation over at the beginning if the operation is pending or sets
            the operation state back to not running so it can run again.
            </summary>
            <remarks>
            This method must be called at the end of an operation in order to set the state
            of the operation back to running or not running so that the operation can run again.
            The existence of this method makes this implementation different from other synchronized
            operations in that it requires more diligence on the user's part to signal when the
            operation is complete. In turn, this allows the user to implement complex operations
            that may involve asynchronous loops and signaling patterns that would not be possible
            with the <see cref="T:GSF.Threading.ISynchronizedOperation"/> interface.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.ExecuteAction(System.Action)">
            <summary>
            Executes an action once on the current thread.
            </summary>
            <param name="action"><see cref="T:System.Action"/> to run on current thread.</param>
            <remarks>
            This method provides exception handling for the action passed into this
            method with a couple of guarantees. The first is that regardless of what
            thread is executing the action passed into this method, the exception
            will be raised on the thread that the logical operation runs on. The
            second is that the RunIfPending method will be called if an exception
            does occur in the given action.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LogicalThreadOperation.RequeueAction(System.Int32)">
            <summary>
            If the operation is running, the action has yet to be executed,
            and the given priority level differs from the queued action's
            priority level, this method will requeue the action at the given
            priority level.
            </summary>
            <param name="priority">The priority at which the current operation should be requeued.</param>
        </member>
        <member name="T:GSF.Threading.LogicalThreadScheduler">
            <summary>
            Manages synchronization of actions by dispatching actions
            to logical threads to be processed synchronously.
            </summary>
        </member>
        <member name="E:GSF.Threading.LogicalThreadScheduler.UnhandledException">
            <summary>
            Triggered when an action managed by this
            synchronization manager throws an exception.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.#ctor(System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LogicalThreadScheduler"/> class.
            </summary>
            <param name="priorityLevels">The number of levels of priority supported by this logical thread scheduler.</param>
            <exception cref="T:System.ArgumentException"><paramref name="priorityLevels"/> is less than or equal to zero.</exception>
        </member>
        <member name="P:GSF.Threading.LogicalThreadScheduler.MaxThreadCount">
            <summary>
            Gets or sets the target for the maximum number of physical
            threads managed by this synchronization manager at any given time.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadScheduler.UseBackgroundThreads">
            <summary>
            Gets or sets the flag that determines whether the threads in
            the scheduler's thread pool should be background threads.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadScheduler.PriorityLevels">
            <summary>
            Gets the number of levels of priority
            supported by this scheduler.
            </summary>
        </member>
        <member name="P:GSF.Threading.LogicalThreadScheduler.ThreadCount">
            <summary>
            Gets the current number of active physical threads.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.CreateThread">
            <summary>
            Creates a new logical thread whose
            execution is managed by this scheduler.
            </summary>
            <returns>A new logical thread managed by this scheduler.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.SignalItemHandler(GSF.Threading.LogicalThread,System.Int32)">
            <summary>
            Signals the manager when a logical
            thread has new actions to be processed.
            </summary>
            <param name="thread">The thread with new actions to be processed.</param>
            <param name="priority">The priority at which the thread is being signaled.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.ActivatePhysicalThread">
            <summary>
            Activates a new physical thread if the thread
            count has not yet reached its maximum limit.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.StartNewPhysicalThread">
            <summary>
            Starts a new physical thread to
            process actions from logical threads.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.ProcessLogicalThreads">
            <summary>
            Processes the next available task from the least recently
            processed logical thread that is available for processing.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.Enqueue(GSF.Threading.LogicalThread)">
            <summary>
            Queues the given thread for execution.
            </summary>
            <param name="thread">The thread to be queued for execution.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.TryExecute(System.Action)">
            <summary>
            Attempts to execute the given action.
            </summary>
            <param name="action">The action to be executed.</param>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.DeactivatePhysicalThread">
            <summary>
            Decrements the thread count upon deactivation of a physical thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.TryHandleException(System.Exception)">
            <summary>
            Attempts to handle the exception via either the logical thread's
            exception handler or the scheduler's exception handler.
            </summary>
            <param name="unhandledException">The unhandled exception thrown by an action on the logical thread.</param>
            <returns>True if the exception could be handled; false otherwise.</returns>
        </member>
        <member name="M:GSF.Threading.LogicalThreadScheduler.OnUnhandledException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.Threading.LogicalThreadScheduler.UnhandledException"/> event.
            </summary>
            <param name="ex">The unhandled exception.</param>
            <returns>True if there are any handlers attached to this event; false otherwise.</returns>
        </member>
        <member name="T:GSF.Threading.LongSynchronizedOperation">
            <summary>
            Represents a long-running synchronized operation
            that cannot run while it is already in progress.
            </summary>
            <remarks>
            The action performed by the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> is executed on
            its own dedicated thread when running the operation asynchronously. When running on
            its own thread, the action is executed in a tight loop until all pending operations
            have been completed. This type of synchronized operation should be preferred if
            operations may take a long time, block the thread, or put it to sleep. It is also
            recommended to prefer this type of operation if the speed of the operation is not
            critical or if completion of the operation is critical, such as when saving data
            to a file.
            </remarks>
        </member>
        <member name="M:GSF.Threading.LongSynchronizedOperation.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.LongSynchronizedOperation.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="P:GSF.Threading.LongSynchronizedOperation.IsBackground">
            <summary>
            Gets or sets whether or not the thread
            executing the action is a background thread.
            </summary>
        </member>
        <member name="M:GSF.Threading.LongSynchronizedOperation.ExecuteActionAsync">
            <summary>
            Executes the action on a separate thread.
            </summary>
        </member>
        <member name="T:GSF.Threading.AsynchronousExecutionMode">
            <summary>
            Indicates modes of execution for the <see cref="T:GSF.Threading.MixedSynchronizedOperation"/>.
            </summary>
        </member>
        <member name="F:GSF.Threading.AsynchronousExecutionMode.Short">
            <summary>
            Executes asynchronous operations on the thread pool
            (same as <see cref="T:GSF.Threading.ShortSynchronizedOperation"/>).
            </summary>
        </member>
        <member name="F:GSF.Threading.AsynchronousExecutionMode.Long">
            <summary>
            Executes asynchronous operations on a dedicated background thread
            (same as <see cref="T:GSF.Threading.LongSynchronizedOperation"/>).
            </summary>
        </member>
        <member name="T:GSF.Threading.MixedSynchronizedOperation">
            <summary>
            Represents an operation that cannot run while it is already in progress.
            </summary>
            <remarks>
            The behavior of asynchronous executions will depend on the value of the
            <see cref="P:GSF.Threading.MixedSynchronizedOperation.AsynchronousExecutionMode"/> property. When using the short asynchronous
            execution mode, refer to the <see cref="T:GSF.Threading.ShortSynchronizedOperation"/> class for a
            description of the behavior of this class. When using the long asynchronous execution
            mode, refer to the <see cref="T:GSF.Threading.LongSynchronizedOperation"/> class. Actions executed
            by this class will always be executed on a background thread, even when using the
            long asynchronous execution mode.
            </remarks>
        </member>
        <member name="M:GSF.Threading.MixedSynchronizedOperation.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.MixedSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.MixedSynchronizedOperation.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.MixedSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="P:GSF.Threading.MixedSynchronizedOperation.AsynchronousExecutionMode">
            <summary>
            Gets or sets the mode of execution used to execute the action asynchronously.
            </summary>
        </member>
        <member name="P:GSF.Threading.MixedSynchronizedOperation.CurrentExecutionMode">
            <summary>
            Gets the execution mode of the currently executing action.
            </summary>
        </member>
        <member name="M:GSF.Threading.MixedSynchronizedOperation.ExecuteActionAsync">
            <summary>
            Executes the action on a separate thread.
            </summary>
        </member>
        <member name="T:GSF.Threading.NamespaceDoc">
            <summary>
            Contains classes used to define managed threads that can be used for debugging threads by providing 
            automatic tracking, total thread runtime and the ability to run threads in alternate execution contexts.
            </summary>
        </member>
        <member name="T:GSF.Threading.LoadingAdjustedTimestamp">
            <summary>
            This will provide the user with a timestamp based upon system loading. This timestamp will only move forward in time and may advance
            rapidly when trying to catch up with system time. 
            </summary>
            <remarks>
            The purpose for this class is to allow LagTime values to dynamically adjust based on perceived system performance.
            There were issues where the system would have multi second delays introduced based on exception handling or long garbage collection
            cycles that would cause all measurements to arrive outside the typical system lag time. This class
            attempts to detect when these events occur and provide increased lag time during these windows.
            </remarks>
        </member>
        <member name="E:GSF.Threading.LoadingAdjustedTimestamp.OnHighLoad">
            <summary>
            This event will be raised when the idle thread is falling behind, but the real-time thread is keeping up.
            This should only be used by certain diagnostics code to dump the current thread pool work items.
            </summary>
        </member>
        <member name="P:GSF.Threading.LoadingAdjustedTimestamp.CurrentTime">
            <summary>
            Gets the current loading Adjusted Time
            </summary>
        </member>
        <member name="T:GSF.Threading.RateLimiter">
            <summary>
            A rate limiting system based on tokes.
            </summary>
        </member>
        <member name="M:GSF.Threading.RateLimiter.#ctor(System.Double,System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.Threading.RateLimiter"/>
            </summary>
            <param name="tokensPerSecond">The number of tokens per second that can be generated. Must be greater than zero and less than 1 billion</param>
            <param name="maxTokensQueue">The maximum number of tokens in the queue. Must be at least 1</param>
        </member>
        <member name="M:GSF.Threading.RateLimiter.UpdateLimits(System.Double,System.Int32)">
            <summary>
            Updates the limits associated with this rate limiter. Note, after this update, the tokens will be completely resupplied.
            </summary>
            <param name="tokensPerSecond">The number of tokens per second that can be generated. Must be greater than zero and less than 1 billion</param>
            <param name="maxTokensQueue">The maximum number of tokens in the queue. Must be at least 1</param>
        </member>
        <member name="M:GSF.Threading.RateLimiter.TryTakeToken">
            <summary>
            Attempts to take a token from the rate limiter.
            </summary>
            <returns>true if token was successfully taken, False if all tokens were consumed.</returns>
        </member>
        <member name="T:GSF.Threading.ReaderWriterSpinLock">
            <summary>
            Represents a fast, lightweight reader/writer lock that uses spinning to perform locking. No recursive acquires or
            upgradable locks are allowed (i.e., all entered locks must be exited before entering another lock).
            </summary>
            <remarks>
            This reader/writer lock uses <see cref="T:System.Threading.SpinWait"/> to spin the CPU instead of engaging event based locking. As a result it
            should only be used in cases where lock times are expected to be very small, reads are very frequent and writes are rare.
            If hold times for write locks can be lengthy, it will be better to use <see cref="T:System.Threading.ReaderWriterLockSlim"/> instead to avoid
            unnecessary CPU utilization due to spinning incurred by waiting reads.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ReaderWriterSpinLock.EnterWriteLock">
            <summary>
            Enters the lock in write mode.
            </summary>
            <remarks>
            Upon successful acquisition of a write lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.ReaderWriterSpinLock.ExitWriteLock"/>.
            One <see cref="M:GSF.Threading.ReaderWriterSpinLock.ExitWriteLock"/> should be called for each <see cref="M:GSF.Threading.ReaderWriterSpinLock.EnterWriteLock"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ReaderWriterSpinLock.ExitWriteLock">
            <summary>
            Exits write mode.
            </summary>
        </member>
        <member name="M:GSF.Threading.ReaderWriterSpinLock.EnterReadLock">
            <summary>
            Enters the lock in read mode.
            </summary>
            <remarks>
            Upon successful acquisition of a read lock, use the <c>finally</c> block of a <c>try/finally</c> statement to call <see cref="M:GSF.Threading.ReaderWriterSpinLock.ExitReadLock"/>.
            One <see cref="M:GSF.Threading.ReaderWriterSpinLock.ExitReadLock"/> should be called for each <see cref="M:GSF.Threading.ReaderWriterSpinLock.EnterReadLock"/>.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ReaderWriterSpinLock.ExitReadLock">
            <summary>
            Exits read mode.
            </summary>
            <exception cref="T:System.InvalidOperationException">Cannot exit read lock when there are no readers.</exception>
        </member>
        <member name="T:GSF.Threading.ThreadingMode">
            <summary>
            Specifies the threading mode to use for the <see cref="T:GSF.Threading.ScheduledTask"/>
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadingMode.DedicatedForeground">
            <summary>
            A dedicated thread that is a foreground thread.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadingMode.DedicatedBackground">
            <summary>
            A dedicated thread that is a background thread.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadingMode.ThreadPool">
            <summary>
            A background thread from the thread pool.
            </summary>
        </member>
        <member name="T:GSF.Threading.ScheduledTaskRunningReason">
            <summary>
            Metadata about why this worker was called.
            </summary>
        </member>
        <member name="F:GSF.Threading.ScheduledTaskRunningReason.Running">
            <summary>
            A normal run was scheduled.
            </summary>
        </member>
        <member name="F:GSF.Threading.ScheduledTaskRunningReason.Disposing">
            <summary>
            Dispose was called and execution will terminate after this function call.
            </summary>
        </member>
        <member name="T:GSF.Threading.ScheduledTask">
            <summary>
            Represents a way to schedule a task to be executed on a separate thread immediately or after a given time delay.
            </summary>
        </member>
        <member name="E:GSF.Threading.ScheduledTask.Running">
            <summary>
            Occurs every time the task should run.
            </summary>
        </member>
        <member name="E:GSF.Threading.ScheduledTask.Disposing">
            <summary>
            Occurs right before this task is disposed.
            </summary>
        </member>
        <member name="E:GSF.Threading.ScheduledTask.UnhandledException">
            <summary>
            Occurs when <see cref="E:GSF.Threading.ScheduledTask.Running"/> or <see cref="E:GSF.Threading.ScheduledTask.Disposing"/> event throws an exception.
            </summary>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.#ctor(GSF.Threading.ThreadingMode,System.Threading.ThreadPriority,System.Boolean)">
            <summary>
            Creates a <see cref="T:GSF.Threading.ScheduledTask"/>.
            </summary>
            <param name="threadMode">The manner in which the scheduled task executes.</param>
            <param name="priority">The thread priority to assign if a dedicated thread is used. This is ignored if using the thread-pool.</param>
            <param name="disposeOnShutdown">Adds a handler to <see cref="T:GSF.Threading.ShutdownHandler"/> that requires this class to be disposed
            when the application is shutdown. Note: If this object has been garbage collected, this will have no effect.</param>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.Finalize">
            <summary>
            Cleans up the <see cref="T:GSF.Threading.ThreadContainerBase"/> thread since that class likely will never be garbage collected.
            </summary>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.IgnoreShutdownEvent">
            <summary>
            For foreground threads, a shutdown handler is registered to dispose of the Thread so it doesn't keep the process running. 
            However, for the Logger, shutting down this thread will prevent shutdown messages from showing up in the logger. 
            By calling this method, it declares that the coder will dispose of this class when it is finished and does not want the 
            Shutdown handler to do it.
            </summary>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.Start">
            <summary>
            Starts the task immediately, or if one was scheduled, starts the scheduled task immediately
            </summary>
            <remarks>
            <para>
            If this is called after a <see cref="M:GSF.Threading.ScheduledTask.Start(System.Int32)"/> the timer will be canceled
            and the process will still start immediately. 
            </para>
            <para>
            This method is safe to call from any thread, including the worker thread.
            If disposed, this method will no nothing.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.Start(System.Int32)">
            <summary>
            Starts a timer to run the task after a provided interval. 
            </summary>
            <param name="delay">the delay in milliseconds before the task should run</param>
            <remarks>
            <para>
            If a timer is currently pending, this function will do nothing. Do not use this
            function to reset or restart an existing timer.
            </para>
            <para>
            If called while working, a subsequent timer will be scheduled, but delay will not
            start until after the worker has completed.
            </para>
            <para>
            This method is safe to call from any thread, including the worker thread.
            If disposed, this method will no nothing.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.Threading.ScheduledTask.Dispose">
            <summary>
            Starts the disposing process of exiting the worker thread. 
            </summary>
            <remarks>
            <para>Callback will be invoked one more time. Duplicate calls are ignored.</para>
            <para>
            Unless called from the worker thread, this method will block until the dispose
            has successfully completed.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.Threading.SharedTimerScheduler">
            <summary>
            Represents a timer manager which is the scheduler of <see cref="T:GSF.Threading.SharedTimer"/>.
            </summary>
            <remarks>
            A <see cref="T:GSF.Threading.SharedTimer"/> with the same scheduler will use the same ThreadPool thread to process
            all of the <see cref="T:GSF.Threading.SharedTimer"/> instances in series when they have a common interval. Call
            order, based on registration sequence, will be preserved.
            </remarks>
        </member>
        <member name="F:GSF.Threading.SharedTimerScheduler.SharedTimerInstance.m_sumOfCallbacks">
            Total number of callbacks that have occurred
        </member>
        <member name="F:GSF.Threading.SharedTimerScheduler.SharedTimerInstance.m_sharedTimersCount">
            Count of the number of timer callbacks that exists in this factory
        </member>
        <member name="M:GSF.Threading.SharedTimerScheduler.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.SharedTimerScheduler"/> class.
            </summary>
        </member>
        <member name="P:GSF.Threading.SharedTimerScheduler.IsDisposed">
            <summary>
            Gets flag that determines if this <see cref="T:GSF.Threading.SharedTimerScheduler"/> instance has been disposed.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimerScheduler.CreateTimer(System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.Threading.SharedTimer"/> using the current <see cref="T:GSF.Threading.SharedTimerScheduler"/>.
            </summary>
            <param name="interval">The interval of the timer, default is 100.</param>
            <returns>A shared timer instance that fires at the given interval.</returns>
        </member>
        <member name="M:GSF.Threading.SharedTimerScheduler.RegisterCallback(System.Int32,System.Action{System.DateTime})">
            <summary>
            Registers the given callback with the timer running at the given interval.
            </summary>
            <param name="interval">The interval at which to run the timer.</param>
            <param name="callback">The action to be performed when the timer is triggered.</param>
            <returns>
            The weak reference callback that will be executed when this timer fires. To unregister
            the callback, call <see cref="M:GSF.Threading.WeakAction.Clear"/>.
            </returns>
        </member>
        <member name="M:GSF.Threading.SharedTimerScheduler.Dispose">
            <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
        </member>
        <member name="T:GSF.Threading.ShortSynchronizedOperation">
            <summary>
            Represents a short-running synchronized operation
            that cannot run while it is already in progress.
            </summary>
            <remarks>
            The action performed by the <see cref="T:GSF.Threading.ShortSynchronizedOperation"/> is executed on
            the <see cref="T:System.Threading.ThreadPool"/> when running the operation asynchronously. When the
            operation is set to pending, the action is executed in an asynchronous loop on the
            thread pool until all pending operations have been completed. Since the action is
            executed on the thread pool, it is best if it can be executed quickly, without
            blocking the thread or putting it to sleep. If completion of the operation is
            critical, such as when saving data to a file, this type of operation should not
            be used since thread pool threads are background threads and will not prevent the
            program from ending before the operation is complete.
            </remarks>
        </member>
        <member name="M:GSF.Threading.ShortSynchronizedOperation.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.ShortSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.ShortSynchronizedOperation.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.ShortSynchronizedOperation"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="M:GSF.Threading.ShortSynchronizedOperation.ExecuteActionAsync">
            <summary>
            Executes the action in an asynchronous loop on
            the thread pool, as long as the operation is pending.
            </summary>
        </member>
        <member name="T:GSF.Threading.ShutdownHandlerOrder">
            <summary>
            The order in which the specified callback should occur when shutting down.
            </summary>
        </member>
        <member name="F:GSF.Threading.ShutdownHandlerOrder.First">
            <summary>
            This queue is processed first. Unless there is a compelling reason to execute first, select the Default one. 
            </summary>
        </member>
        <member name="F:GSF.Threading.ShutdownHandlerOrder.Default">
            <summary>
            This shutdown order occurs after First, but before Last. 
            </summary>
        </member>
        <member name="F:GSF.Threading.ShutdownHandlerOrder.Last">
            <summary>
            This queue is processed last. Items such as flushing application logs should go here.
            </summary>
        </member>
        <member name="T:GSF.Threading.ShutdownHandler">
            <summary>
            This class will monitor the state to the application and raise events when it detects that the application is about to shutdown.
            </summary>
        </member>
        <member name="P:GSF.Threading.ShutdownHandler.IsShuttingDown">
            <summary>
            Gets if this process is shutting down.
            </summary>
        </member>
        <member name="P:GSF.Threading.ShutdownHandler.HasShutdown">
            <summary>
            Gets if this process has already shut down.
            </summary>
        </member>
        <member name="M:GSF.Threading.ShutdownHandler.Initialize">
            <summary>
            Initializes the shutdown handler. This is recommended to put in main loop of the program, but it is not critical.
            </summary>
        </member>
        <member name="M:GSF.Threading.ShutdownHandler.TryRegisterCallback(System.Action,GSF.Threading.ShutdownHandlerOrder)">
            <summary>
            Attempts Registers a callback that will be called
            when the application is shutdown.
            </summary>
            <param name="callback">the callback when the shutdown occurs</param>
            <param name="shutdownOrder">the order that the callback will occur.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.ShutdownHandler.InitiateSafeShutdown">
            <summary>
            Requests that certain components initiate a safe shutdown.
            </summary>
            <remarks>
            This method should only be called when the main thread exits. Calling this outside
            of the application exiting could result in unpredictable behavior.
            </remarks>
        </member>
        <member name="T:GSF.Threading.SingleOccurrenceAction">
            <summary>
            A helper class that will properly coordinate any number of <see cref="T:System.Action"/>s
            from different threads.
            </summary>
            <remarks>
            This class is commonly used to properly coordinate the disposal of object.
            
            Remarks: Adapted from GSF.Threading.ReaderWriterSpinLock
            </remarks>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.Unsignaled">
            <summary>
            Means that no attempt to signal this class has been made.
            </summary>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.Invalid">
            <summary>
            Means that a <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteWithoutWait(System.Action)"/> was called and the 
            current state variables are invalid. Spin and wait for a valid state.
            </summary>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.RunCallbackOnSignalThread">
            <summary>
            Means that <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteAndWait(System.Action)"/> was called and the callback
            will be called by this thread once all blockers have finished.
            </summary>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.RunCallbackByBlockerThread">
            <summary>
            Means that <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteWithoutWait(System.Action)"/> was called and
            if there were any blockers, the last blocker will execute the callback.
            Otherwise, the signaling thread will execute the callback
            </summary>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.RunningCallback">
            <summary>
            Indicates that the callback is executing. Only a valid state when
            SignalWithoutWait was called.
            </summary>
        </member>
        <member name="F:GSF.Threading.SingleOccurrenceAction.State.Signaled">
            <summary>
            The completed signaled state.
            </summary>
        </member>
        <member name="P:GSF.Threading.SingleOccurrenceAction.IsCallbackPendingOnBlocks">
            <summary>
            Gets if the signal action is currently pending. 
            This means all future calls to TryBlockAction will fail.
            </summary>
        </member>
        <member name="P:GSF.Threading.SingleOccurrenceAction.IsCallbackExecuting">
            <summary>
            Gets if the callback is executing
            </summary>
        </member>
        <member name="P:GSF.Threading.SingleOccurrenceAction.IsSignalingCompleted">
            <summary>
            Gets if all actions associated with the signaling of this class
            is complete.
            </summary>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.ExecuteAndWait(System.Action)">
            <summary>
            Signals this class and waits for all blockers to exit before calling the <see param="callback"/>..
            If called concurrently, the calling thread blocks until the <see param="callback"/> completes.
            If called from within the <see param="callback"/>, the function returns immediately.
            
            The same thread calling this method will always call the <see param="callback"/>.
            
            Only one callback will be executed by this class and it will be the first one to call 
            either <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteWithoutWait(System.Action)"/> or <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteAndWait(System.Action)"/>.
            </summary>
            <param name="callback">the callback to execute</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.ExecuteWithoutWait(System.Action)">
            <summary>
            Registers this callback to occur once all blocking call complete.
            This function will return immediately and the callback may or may not be run.
            
            Only one callback will be executed by this class and it will be the first one to call 
            either <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteWithoutWait(System.Action)"/> or <see cref="M:GSF.Threading.SingleOccurrenceAction.ExecuteAndWait(System.Action)"/>.
            </summary>
            <param name="callback">the callback to execute</param>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.TryBlockAction(System.Boolean@)">
            <summary>
            Attempts to block this class from being signaled. Be sure to call within a using block.
            </summary>
            <param name="success">A bool to notify if entering the block was a success</param>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.TryBlockAction(System.Action)">
            <summary>
            Attempts to block this class from being signaled. 
            </summary>
            <param name="executeIfSuccessful">A callback to execute if the block was successful</param>
            <returns>
            True if the method was executed, false otherwise.
            </returns>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.BlockAction(System.Action,System.Action)">
            <summary>
            Attempts to block this class from being signaled. 
            </summary>
            <param name="executeIfSuccessful">A callback to execute if the block was successful</param>
            <param name="executeIfFailed">A callback to execute if the block was unsuccessful</param>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.BlockAction``1(System.Func{``0},System.Func{``0})">
            <summary>
            Attempts to block this class from being signaled. 
            </summary>
            <param name="executeIfSuccessful">A callback to execute if the block was successful</param>
            <param name="executeIfFailed">A callback to execute if the block was unsuccessful</param>
        </member>
        <member name="M:GSF.Threading.SingleOccurrenceAction.ExitSignalBlock">
            <summary>
            Exits the block on the reader.
            </summary>
            <exception cref="T:System.InvalidOperationException">Cannot exit read lock when there are no readers.</exception>
        </member>
        <member name="T:GSF.Threading.StateMachine">
            <summary>
            Helps facilitate a multithreaded state machine.
            </summary>
            <remarks>
            State machine variables must be integers since <see cref="T:System.Threading.Interlocked"/> methods require premitive types.
            </remarks>
        </member>
        <member name="M:GSF.Threading.StateMachine.#ctor(System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Threading.StateMachine"/>
            </summary>
            <param name="initialState">the state to initially set to</param>
        </member>
        <member name="M:GSF.Threading.StateMachine.TryChangeState(System.Int32,System.Int32)">
            <summary>
            Attempts to change the state of this machine from <see param="prevState"/> to <see param="nextState"/>.
            </summary>
            <param name="prevState">The state to change from</param>
            <param name="nextState">The state to change to</param>
            <returns>True if the state changed from the previous state to the next state. 
            False if unsuccessful.</returns>
        </member>
        <member name="P:GSF.Threading.StateMachine.State">
            <summary>
            Gets the current state of the State Machine. 
            </summary>
        </member>
        <member name="M:GSF.Threading.StateMachine.SetState(System.Int32)">
            <summary>
            Sets the value of the state.
            </summary>
            <param name="state"></param>
        </member>
        <member name="M:GSF.Threading.StateMachine.op_Implicit(GSF.Threading.StateMachine)~System.Int32">
            <summary>
            Implicitly conversion of the state to the integer value of the state.
            </summary>
            <param name="machine"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Threading.SharedTimer">
            <summary>
            Represents a timer class that will group registered timer event callbacks that operate on the same
            interval in order to optimize thread pool queuing.
            </summary>
            <remarks>
            <para>
            Externally the <see cref="T:GSF.Threading.SharedTimer"/> operations similar to the <see cref="T:System.Timers.Timer"/>.
            Internally the timer pools callbacks with the same <see cref="P:GSF.Threading.SharedTimer.Interval"/> into a single timer where
            each callback is executed on the same thread, per instance of the <see cref="T:GSF.Threading.SharedTimerScheduler"/>. 
            </para>
            <para>
            Any long running callbacks that have a risk of long delays should not use <see cref="T:GSF.Threading.SharedTimer"/>
            as this will effect the reliability of all of the other <see cref="T:GSF.Threading.SharedTimer"/> instances for a
            given <see cref="T:GSF.Threading.SharedTimerScheduler"/>.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.Threading.SharedTimer.Elapsed">
            <summary>
            Occurs when the timer interval elapses.
            </summary>
        </member>
        <member name="E:GSF.Threading.SharedTimer.UnhandledExceptions">
            <summary>
            Occurs when <see cref="E:GSF.Threading.SharedTimer.Elapsed"/> event throws an exception.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimer.#ctor(GSF.Threading.SharedTimerScheduler,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Threading.SharedTimer"/>.
            </summary>
            <param name="scheduler">The scheduler to use.</param>
            <param name="interval">The interval of the timer, default is 100.</param>
        </member>
        <member name="P:GSF.Threading.SharedTimer.AutoReset">
            <summary>
            Gets or sets flag that indicates whether the <see cref="T:GSF.Threading.SharedTimer" /> should raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event only
            once <c>false</c> or repeatedly <c>true</c>.
            </summary>
            <returns>
            <c>true</c> the <see cref="T:GSF.Threading.SharedTimer" /> should raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event each time the interval elapses; otherwise,
            <c>false</c> if it should raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event only once, after the first time the interval elapses.
            The default is <c>true</c>.
            </returns>
        </member>
        <member name="P:GSF.Threading.SharedTimer.Enabled">
            <summary>
            Gets or sets flag that indicates whether the <see cref="T:GSF.Threading.SharedTimer" /> should raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event.
            </summary>
            <returns>
            <c>true</c> if the <see cref="T:GSF.Threading.SharedTimer" /> should raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event; otherwise, <c>false</c>.
            The default is <c>false</c>.
            </returns>
        </member>
        <member name="P:GSF.Threading.SharedTimer.Interval">
            <summary>
            Gets or sets the interval at which to raise the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event.
            </summary>
            <returns>The time, in milliseconds, between <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> events.</returns>
            <remarks>
            The value must be greater than zero, and less than or equal to <see cref="F:System.Int32.MaxValue" />.
            The default is 100 milliseconds.
            </remarks>
        </member>
        <member name="M:GSF.Threading.SharedTimer.Close">
            <summary>
            Stops the timer.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimer.Dispose">
            <summary>
            Stops the timer and prevents reuse of the class.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimer.Start">
            <summary>
            Starts raising the <see cref="E:GSF.Threading.SharedTimer.Elapsed" /> event by setting <see cref="P:GSF.Threading.SharedTimer.Enabled" /> to <c>true</c>.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimer.Stop">
            <summary>
            Stops raising the <see cref="E:GSF.Threading.SharedTimer.Elapsed"/> event by setting <see cref="P:GSF.Threading.SharedTimer.Enabled" /> to <c>false</c>.
            </summary>
        </member>
        <member name="M:GSF.Threading.SharedTimer.TimerCallback(System.DateTime)">
            <summary>
            Callback from <see cref="T:GSF.Threading.SharedTimerScheduler"/>.
            </summary>
            <param name="state">The time that the callback was signaled.</param>
        </member>
        <member name="T:GSF.Threading.SynchronizedOperationBase">
            <summary>
            Base class for operations that cannot run while they is already in progress.
            </summary>
            <remarks>
            This class handles the synchronization between the methods defined in the
            <see cref="T:GSF.Threading.ISynchronizedOperation"/> interface. Implementers should only need
            to implement the <see cref="M:GSF.Threading.SynchronizedOperationBase.ExecuteActionAsync"/> method to provide a mechanism
            for executing the action on a separate thread.
            </remarks>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.#ctor(System.Action)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.SynchronizedOperationBase"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.#ctor(System.Action,System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.SynchronizedOperationBase"/> class.
            </summary>
            <param name="action">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="P:GSF.Threading.SynchronizedOperationBase.IsRunning">
            <summary>
            Gets a value to indicate whether the synchronized
            operation is currently executing its action.
            </summary>
        </member>
        <member name="P:GSF.Threading.SynchronizedOperationBase.IsPending">
            <summary>
            Gets a value to indiate whether the synchronized operation
            has an additional operation that is pending execution after
            the currently running action has completed.
            </summary>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.Run">
            <summary>
            Executes the action on this thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            <para>When the operation is marked as pending, it will run again after
            the operation that is currently running has completed. This is useful
            if an update has invalidated the operation that is currently running
            and will therefore need to be run again.</para>
            
            <para>This method does not guarantee that control will be returned to the
            thread that called it. If other threads continuously mark the operation as
            pending, this thread will continue to run the operation indefinitely.</para>
            </remarks>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.TryRun">
            <summary>
            Attempts to execute the action on this thread.
            Does nothing if the operation is already running.
            </summary>
            <remarks>
            This method does not guarantee that control will be returned to the thread
            that called it. If other threads continuously mark the operation as pending,
            this thread will continue to run the operation indefinitely.
            </remarks>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.RunOnce">
            <summary>
            Executes the action on this thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again after the
            operation that is currently running has completed. This is useful if
            an update has invalidated the operation that is currently running and
            will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.RunOnceAsync">
            <summary>
            Executes the action on another thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again after the
            operation that is currently running has completed. This is useful if
            an update has invalidated the operation that is currently running and
            will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.TryRunOnce">
            <summary>
            Attempts to execute the action on this thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.TryRunOnceAsync">
            <summary>
            Attempts to execute the action on another thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.ExecuteAction">
            <summary>
            Executes the action once on the current thread.
            </summary>
            <returns>True if the action was pending and needs to run again; false otherwise.</returns>
        </member>
        <member name="M:GSF.Threading.SynchronizedOperationBase.ExecuteActionAsync">
             <summary>
             Executes the action on a separate thread.
             </summary>
             <remarks>
             Implementers should call <see cref="M:GSF.Threading.SynchronizedOperationBase.ExecuteAction"/> on a separate thread
             and check the return value. If it returns true, that means it needs to run
             again. The following is a sample implementation using a regular dedicated
             thread.
             
             <code>
             protected override void ExecuteActionAsync()
             {
                 Thread actionThread = new Thread(() =>
                 {
                     while (ExecuteAction())
                     {
                     }
                 });
            
                 actionThread.Start();
             }
             </code>
             </remarks>
        </member>
        <member name="T:GSF.Threading.TaskSynchronizedOperation">
            <summary>
            Represents a task-based synchronized operation
            that cannot run while it is already in progress.
            </summary>
            <remarks>
            The action performed by the <see cref="T:GSF.Threading.TaskSynchronizedOperation"/> is executed using
            <see cref="M:System.Threading.Tasks.Task.Run(System.Func{System.Threading.Tasks.Task})"/>. Pending actions run when the task returned by the
            asynchronous action is completed. This synchronized operation only supports the async
            versions of the <see cref="T:GSF.Threading.ISynchronizedOperation"/> interface because the async action
            cannot be executed synchronously.
            </remarks>
        </member>
        <member name="M:GSF.Threading.TaskSynchronizedOperation.#ctor(System.Func{System.Threading.Tasks.Task})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.TaskSynchronizedOperation"/> class.
            </summary>
            <param name="asyncAction">The action to be performed during this operation.</param>
        </member>
        <member name="M:GSF.Threading.TaskSynchronizedOperation.#ctor(System.Func{System.Threading.Tasks.Task},System.Action{System.Exception})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Threading.TaskSynchronizedOperation"/> class.
            </summary>
            <param name="asyncAction">The action to be performed during this operation.</param>
            <param name="exceptionAction">The action to be performed if an exception is thrown from the action.</param>
        </member>
        <member name="P:GSF.Threading.TaskSynchronizedOperation.IsRunning">
            <summary>
            Gets a value to indicate whether the synchronized
            operation is currently executing its action.
            </summary>
        </member>
        <member name="P:GSF.Threading.TaskSynchronizedOperation.IsPending">
            <summary>
            Gets a value to indiate whether the synchronized operation
            has an additional operation that is pending execution after
            the currently running action has completed.
            </summary>
        </member>
        <member name="M:GSF.Threading.TaskSynchronizedOperation.RunOnceAsync">
            <summary>
            Executes the action on another thread or marks the
            operation as pending if the operation is already running.
            </summary>
            <remarks>
            When the operation is marked as pending, it will run again after the
            operation that is currently running has completed. This is useful if
            an update has invalidated the operation that is currently running and
            will therefore need to be run again.
            </remarks>
        </member>
        <member name="M:GSF.Threading.TaskSynchronizedOperation.TryRunOnceAsync">
            <summary>
            Attempts to execute the action on another thread.
            Does nothing if the operation is already running.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.CallbackArgs.StartDisposalCallSuccessful">
            <summary>
            Gets if StartDisposal() method is the only item that triggered this run.
            </summary>
        </member>
        <member name="T:GSF.Threading.ThreadContainerBase.State">
            <summary>
            State variables for the internal state machine.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.NotRunning">
            <summary>
            Indicates that the task is not running.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.ScheduledToRunAfterDelay">
            <summary>
            Indicates that the task is scheduled to execute after a user specified delay
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.ScheduledToRun">
            <summary>
            Indicates the task has been queue for immediate execution, but has not started running yet.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.Running">
            <summary>
            Once in a running state, only the worker thread can change its state.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.AfterRunning">
            <summary>
            Once reaching this state, the effect of RunAgain being set will no longer be valid.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.State.Disposed">
            <summary>
            A disposed state
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerBase.m_runAgainAfterDelay">
            <summary>
            A value less than 0 means false. 
            </summary>
        </member>
        <member name="M:GSF.Threading.ThreadContainerBase.StartDisposal">
            <summary>
            Same as Start() except notifies on the callback during a race condition that this is the one that was first to schedule the task.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Threading.ThreadContainerBase.IgnoreShutdownEvent">
            <summary>
            For foreground threads, a shutdown handler is registered to dispose of the Thread so it doesn't keep the process running. 
            However, for the Logger, shutting down this thread will prevent shutdown messages from showing up in the logger. 
            By calling this method, it declares that the coder will dispose of this class when it is finished and does not want the 
            Shutdown handler to do it.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerThreadpool.m_registeredHandle">
            <summary>
            Handle that is created when telling the threadpool to do a delayed start.
            </summary>
        </member>
        <member name="F:GSF.Threading.ThreadContainerThreadpool.m_waitObject">
            <summary>
            The reset event that allows the timer to be short circuited.
            </summary>
        </member>
        <member name="T:GSF.Threading.WeakAction">
            <summary>
            Provides a weak referenced <see cref="T:System.Action"/> delegate.
            </summary>
            <remarks>
            This class will store the information necessary so the callback
            object will have a weak reference to it. This information is compiled
            an can be quickly executed without the overhead of using reflection.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WeakAction.#ctor(System.Action)">
            <summary>
            Creates a WeakAction.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="M:GSF.Threading.WeakAction.TryInvoke">
            <summary>
            Attempts to invoke the delegate to a weak reference object.
            </summary>
            <returns><c>true</c> if successful; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Threading.WeakAction.Clear">
            <summary>
            Clears <see cref="T:System.Action"/> callback target.
            </summary>
        </member>
        <member name="T:GSF.Threading.WeakAction`1">
            <summary>
            Provides a weak referenced <see cref="T:System.Action"/> delegate.
            </summary>
            <remarks>
            This class will store the information necessary so the callback
            object will have a weak reference to it. This information is compiled
            an can be quickly executed without the overhead of using reflection.
            </remarks>
        </member>
        <member name="M:GSF.Threading.WeakAction`1.#ctor(System.Action{`0})">
            <summary>
            Creates a WeakAction.
            </summary>
            <param name="callback">The callback.</param>
        </member>
        <member name="M:GSF.Threading.WeakAction`1.TryInvoke(`0)">
            <summary>
            Attempts to invoke the delegate to a weak reference object.
            </summary>
            <returns><c>true</c> if successful; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Threading.WeakAction`1.Clear">
            <summary>
            Clears <see cref="T:System.Action"/> callback target.
            </summary>
        </member>
        <member name="T:GSF.TimeSpanExtensions">
            <summary>
            Extends the TimeSpan Class
            </summary>
        </member>
        <member name="M:GSF.TimeSpanExtensions.ToElapsedTimeString(System.TimeSpan,System.Int32,System.Double)">
            <summary>
            Converts the <see cref="T:System.TimeSpan"/> value into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits.
            </summary>
            <param name="value">The <see cref="T:System.TimeSpan"/> to process.</param>
            <param name="secondPrecision">Number of fractional digits to display for seconds. Defaults to 2.</param>
            <param name="minimumSubSecondResolution">Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.</param>
            <remarks>Set second precision to -1 to suppress seconds display.</remarks>
            <returns>
            The string representation of the value of this <see cref="T:System.TimeSpan"/>, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <example>
              DateTime g_start = DateTime.UtcNow;
              DateTime EndTime = DateTime.UtcNow;
              TimeSpan duration = EndTime.Subtract(g_start);
              Console.WriteLine("Elapsed Time = " + duration.ToElapsedTimeString());
            </example>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="T:GSF.Trackable`1">
            <summary>
            Represents the change history for a property.
            </summary>
            <remarks>
            <para>
            This class is primarily designed to track changes to the
            property of an object, as in the following example.
            </para>
            
            <code>
            public class MyClass
            {
                private Trackable&lt;string&gt; m_trackableText = new Trackable&lt;string&gt;(nameof(Text), true);
                
                public string Text
                {
                    get
                    {
                        return m_trackableText.CurrentValue;
                    }
                    set
                    {
                        m_trackableText.CurrentValue = value;
                    }
                }
            }
            </code>
            </remarks>
        </member>
        <member name="M:GSF.Trackable`1.#ctor(System.String,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Trackable`1"/> class.
            </summary>
            <param name="propertyName">The name of the property being tracked.</param>
            <param name="autoTrack">Determines the behavior of the setter for the <see cref="P:GSF.Trackable`1.CurrentValue"/> property. Set to false to track only the original and current values.</param>
        </member>
        <member name="M:GSF.Trackable`1.#ctor(System.String,`0,System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.Trackable`1"/> class.
            </summary>
            <param name="propertyName">The name of the property being tracked.</param>
            <param name="initialValue">The initial value of the property.</param>
            <param name="autoTrack">Determines the behavior of the setter for the <see cref="P:GSF.Trackable`1.CurrentValue"/> property. Set to false to track only the original and current values.</param>
        </member>
        <member name="P:GSF.Trackable`1.PropertyName">
            <summary>
            Gets the name of the property being tracked.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.CurrentValue">
            <summary>
            Gets or sets the current value after all changes have been applied to the property.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.OriginalValue">
            <summary>
            Gets the original value before the first change was made to the property.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.IsChanged">
            <summary>
            Gets a value to indicate whether the property's value has been
            changed since the last time the current value was committed.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.ChangeList">
            <summary>
            Gets the list of changes to the property's value,
            starting from its original value and up to the current value.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.GSF#ITrackable#OriginalValue">
            <summary>
            Gets the original value before the first change was made to the property.
            </summary>
        </member>
        <member name="P:GSF.Trackable`1.GSF#ITrackable#CurrentValue">
            <summary>
            Gets the current value after all changes have been applied to the property.
            </summary>
        </member>
        <member name="M:GSF.Trackable`1.SetCurrentValue(`0,System.Boolean)">
            <summary>
            Sets the current value of the property.
            </summary>
            <param name="value">The new value of the property.</param>
            <param name="overwrite">True to track the change; false to overwrite the previous change. Does not overwrite the original value.</param>
        </member>
        <member name="M:GSF.Trackable`1.AcceptChanges">
            <summary>
            Erases all history in the change list and commits
            the current value as the new original value.
            </summary>
        </member>
        <member name="M:GSF.Trackable`1.Revert">
            <summary>
            Erases all history in the change list and reverts
            to the original value before the changes were made.
            </summary>
        </member>
        <member name="M:GSF.Trackable`1.Reset">
            <summary>
            Erases all history in the change list and sets
            the original value back to its initial value.
            </summary>
        </member>
        <member name="M:GSF.Trackable`1.ToString">
            <summary>
            Returns a string that represents the current value.
            </summary>
            <returns>A string that represents the current value.</returns>
        </member>
        <member name="T:GSF.TransformEqualityComparer`1">
            <summary>
            Equality comparer that compares objects by the results of a transformation.
            </summary>
            <typeparam name="T">The type of the source objects to be compared.</typeparam>
        </member>
        <member name="M:GSF.TransformEqualityComparer`1.#ctor(System.Func{`0,System.Object})">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TransformEqualityComparer`1"/> class.
            </summary>
            <param name="transformFunction">The function used to transform source objects to the type used for comparison.</param>
        </member>
        <member name="M:GSF.TransformEqualityComparer`1.Equals(`0,`0)">
            <summary>
            Determines whether the specified objects are equal.
            </summary>
            <param name="x">The first object of type <typeparamref name="T"/> to compare.</param>
            <param name="y">The second object of type <typeparamref name="T"/> to compare.</param>
            <returns>
            true if the specified objects are equal; otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TransformEqualityComparer`1.GetHashCode(`0)">
            <summary>
            Returns a hash code for the specified object.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>
            <returns>
            A hash code for the specified object.
            </returns>
            <exception cref="T:System.ArgumentNullException">The type of <paramref name="obj"/> is a reference type and <paramref name="obj"/> is null.</exception>
        </member>
        <member name="T:GSF.TypeExtensions">
            <summary>
            Extensions to all <see cref="T:System.Type"/> objects.
            </summary>
            <summary>
            Extensions to all <see cref="T:System.Type"/> objects.
            </summary>
        </member>
        <member name="M:GSF.TypeExtensions.LoadImplementations(System.Type)">
            <summary>
            Loads public types from assemblies in the application binaries directory that implement the specified 
            <paramref name="type"/> either through class inheritance or interface implementation.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> that must be implemented by the public types.</param>
            <returns>Public types that implement the specified <paramref name="type"/>.</returns>
        </member>
        <member name="M:GSF.TypeExtensions.LoadImplementations(System.Type,System.Boolean)">
            <summary>
            Loads public types from assemblies in the application binaries directory that implement the specified 
            <paramref name="type"/> either through class inheritance or interface implementation.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> that must be implemented by the public types.</param>
            <param name="excludeAbstractTypes">true to exclude public types that are abstract; otherwise false.</param>
            <returns>Public types that implement the specified <paramref name="type"/>.</returns>
        </member>
        <member name="M:GSF.TypeExtensions.LoadImplementations(System.Type,System.String)">
            <summary>
            Loads public types from assemblies in the specified <paramref name="binariesDirectory"/> that implement 
            the specified <paramref name="type"/> either through class inheritance or interface implementation.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> that must be implemented by the public types.</param>
            <param name="binariesDirectory">The directory containing the assemblies to be processed.</param>
            <returns>Public types that implement the specified <paramref name="type"/>.</returns>
        </member>
        <member name="M:GSF.TypeExtensions.LoadImplementations(System.Type,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Loads public types from assemblies in the specified <paramref name="binariesDirectory"/> that implement 
            the specified <paramref name="type"/> either through class inheritance or interface implementation.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> that must be implemented by the public types.</param>
            <param name="binariesDirectory">The directory containing the assemblies to be processed.</param>
            <param name="excludeAbstractTypes">true to exclude public types that are abstract; otherwise false.</param>
            <param name="validateReferences">True to validate references of loaded assemblies before attempting to instantiate types; false otherwise.</param>
            <param name="executeStaticConstructors">True to execute static constructors of loaded implementations; false otherwise.</param>
            <returns>Public types that implement the specified <paramref name="type"/>.</returns>
        </member>
        <member name="M:GSF.TypeExtensions.IsNumeric(System.Type)">
            <summary>
            Determines if the specified type is a native structure that represents a numeric value.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> being tested.</param>
            <returns><c>true</c> if the specified type is a native structure that represents a numeric value.</returns>
            <remarks>
            For this method a boolean value is not considered numeric even though it can be thought of as a bit.
            This expression returns <c>true</c> if the type is one of the following:<br/><br/>
                SByte, Byte, Int16, UInt16, Int24, UInt24, Int32, UInt32, Int64, UInt64, Single, Double, Decimal
            </remarks>
        </member>
        <member name="M:GSF.TypeExtensions.GetFriendlyClassName(System.Type)">
            <summary>
            Gets the friendly class name of the provided type, trimming generic parameters.
            </summary>
            <param name="type">Type to get friendly class name for.</param>
            <returns>Friendly class name of the provided type, or <see cref="F:System.String.Empty"/> if <paramref name="type"/> is <c>null</c>.</returns>
        </member>
        <member name="M:GSF.TypeExtensions.GetRootType(System.Type)">
            <summary>
            Gets the root type in the inheritance hierarchy from which the specified <paramref name="type"/> inherits.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> whose root type is to be found.</param>
            <returns>The root type in the inheritance hierarchy from which the specified <paramref name="type"/> inherits.</returns>
            <remarks>
            Unless input <paramref name="type"/> is <see cref="T:System.Object"/> or <see cref="T:System.MarshalByRefObject"/>, the returned type will never 
            be <see cref="T:System.Object"/> or <see cref="T:System.MarshalByRefObject"/>, even though all types ultimately inherit from either one of them.
            </remarks>
        </member>
        <member name="M:GSF.TypeExtensions.GetReflectedTypeName(System.Type,System.Boolean)">
            <summary>
            Gets a C#-compatible proper type name, resolving generic type names using reflection with no backticks (`), for the specified <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> whose name is to be resolved.</param>
            <param name="includeNamespaces">Flag that indicates if namespaces should be included in the type name.</param>
            <returns>
            A C#-compatible proper type name, resolving generic type names using reflection with no backticks (`), for the specified <paramref name="type"/>.
            </returns>
            <remarks>
            This method will return a C#-compatible proper type name, resolving generic type names using reflection, which creates a valid,
            useable type name versus what <see cref="P:System.Type.FullName"/> returns. For example, <see cref="P:System.Type.FullName"/> will return something like:
            <c>System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]</c>
            with a backtick (`) to indicate a generic type and noisy assembly info. Even <c>Type.Name</c> returns <c>List`1</c> with a backtick (`). For the
            same type, this method would instead return: <c>System.Collections.Generic.List&lt;System.String&gt;</c> which is a valid, usable C# type name.
            You can also set the <paramref name="includeNamespaces"/> parameter to <c>false</c> to remove namespaces from the type name, which yields:
            <c>List&lt;String&gt;</c> for the same example.
            </remarks>
        </member>
        <member name="T:GSF.USTimeZones">
            <summary>
            Defines a few common United States time zones.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Atlantic">
            <summary>
            Gets the Atlantic time zone.
            </summary>
            <remarks>This time zone is used by the Commonwealth of Puerto Rico and the United States Virgin Islands.</remarks>
        </member>
        <member name="P:GSF.USTimeZones.Eastern">
            <summary>
            Gets the Eastern time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Central">
            <summary>
            Gets the Central time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Mountain">
            <summary>
            Gets the Mountain time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Pacific">
            <summary>
            Gets the Pacific time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Alaskan">
            <summary>
            Gets the Alaskan time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.Hawaiian">
            <summary>
            Gets the Hawaiian time zone.
            </summary>
        </member>
        <member name="P:GSF.USTimeZones.WestPacific">
            <summary>
            Gets the West Pacific time zone.
            </summary>
            <remarks>
            <para>This time zone is used by Guam and the Commonwealth of the Northern Mariana Islands.</para>
            <para>This is also known as the Chamorro time zone.</para>
            </remarks>
        </member>
        <member name="P:GSF.USTimeZones.Samoa">
            <summary>
            Gets the Samoa time zone.
            </summary>
            <remarks>This time zone is used by the American Samoa.</remarks>
        </member>
        <member name="T:GSF.Validation.EmailAddressValidator">
            <summary>
            Represents a validator that can be used to ensure the validity of an email address.
            </summary>
        </member>
        <member name="M:GSF.Validation.EmailAddressValidator.Validate(System.Object,System.String@)">
            <summary>
            Determines whether or not the specified <paramref name="value"/> is a valid email address.
            </summary>
            <param name="value">The value to be validated.</param>
            <param name="validationError">Error message returned if the <paramref name="value"/> is invalid.</param>
            <returns><strong>true</strong> if the <paramref name="value"/> is valid; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="T:GSF.Validation.IValidator">
            <summary>
            Defines a value validator.
            </summary>
        </member>
        <member name="M:GSF.Validation.IValidator.Validate(System.Object,System.String@)">
            <summary>
            Determines whether or not the specified <paramref name="value"/> is valid.
            </summary>
            <param name="value">The value to be validated.</param>
            <param name="validationError">Error message returned if the <paramref name="value"/> is invalid.</param>
            <returns><strong>true</strong> if the <paramref name="value"/> is valid; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="T:GSF.Validation.NamespaceDoc">
            <summary>
            Contains classes that facilitate the validation of data.
            </summary>
        </member>
        <member name="T:GSF.Validation.NonNullStringValidator">
            <summary>
            Represents a validator that can be used to check for <see cref="T:System.String"/>s that are null, empty, or consists only of whitespaces.
            </summary>
        </member>
        <member name="M:GSF.Validation.NonNullStringValidator.Validate(System.Object,System.String@)">
            <summary>
            Determines whether or not the specified <paramref name="value"/> is a valid string that is not null, empty or consists only of whitespaces.
            </summary>
            <param name="value">The value to be validated.</param>
            <param name="validationError">Error message returned if the <paramref name="value"/> is invalid.</param>
            <returns><strong>true</strong> if the <paramref name="value"/> is valid; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="T:GSF.Validation.NumericRangeValidator">
            <summary>
            Represents a validator that can be used to ensure that a numeric value falls within a specific range.
            </summary>
        </member>
        <member name="M:GSF.Validation.NumericRangeValidator.#ctor(System.Decimal,System.Decimal)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Validation.NumericRangeValidator"/> class.
            </summary>
            <param name="minimum">The minimum allowed numeric value.</param>
            <param name="maximum">The maximum allowed numeric value.</param>
        </member>
        <member name="M:GSF.Validation.NumericRangeValidator.Validate(System.Object,System.String@)">
            <summary>
            Determines whether or not the specified <paramref name="value"/> is a valid number that falls within the specified range.
            </summary>
            <param name="value">The value to be validated.</param>
            <param name="validationError">Error message returned if the <paramref name="value"/> is invalid.</param>
            <returns><strong>true</strong> if the <paramref name="value"/> is valid; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="T:GSF.Validation.ValidationService">
            <summary>
            A class that facilitates value validation using <see cref="T:GSF.Validation.IValidator"/> implementations.
            </summary>
            <example>
            This example shows how to use <see cref="T:GSF.Validation.ValidationService"/> for input validation:
            <code>
            using System;
            using System.Collections.Generic;
            using GSF.Validation;
            
            class Program
            {
                static void Main(string[] args)
                {
                    // Dictionary where captured user input is saved.
                    Dictionary&lt;string, string&gt; input = new Dictionary&lt;string, string&gt;();
            
                    // Validation service that will validate user input.
                    ValidationService validation = new ValidationService(delegate(string source)
                        {
                            string value;
                            if (input.TryGetValue(source, out value))
                                return input[source];
                            else
                                return string.Empty;
                        });
            
                    // Add validation rules to the validation service.
                    validation.AddValidation("Name", new NonNullStringValidator());
                    validation.AddValidation("Email", new EmailAddressValidator());
            
                    // Capture user input.
                    Console.Write("Enter name: ");
                    input["Name"] = Console.ReadLine();
                    Console.Write("Enter email: ");
                    input["Email"] = Console.ReadLine();
                    Console.WriteLine("");
                
                    // Validate user input.
                    string errors;
                    if (!validation.Validate(out errors))
                        Console.WriteLine(errors);
                    else
                        Console.WriteLine("No validation errors were found!");
            
                    Console.ReadLine();
                }
            }
            </code>
            </example>
            <seealso cref="T:GSF.Validation.IValidator"/>
        </member>
        <member name="M:GSF.Validation.ValidationService.#ctor(System.Func{System.String,System.Object})">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.Validation.ValidationService"/> class.
            </summary>
            <param name="valueLookupHandler"><see cref="T:System.Delegate"/> that will lookup the value to be validated.</param>
        </member>
        <member name="M:GSF.Validation.ValidationService.AddValidation(System.String,GSF.Validation.IValidator)">
            <summary>
            Adds a new validation.
            </summary>
            <param name="source">The source that will provide the value to be validated.</param>
            <param name="validator">The <see cref="T:GSF.Validation.IValidator"/> that will validate the value.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> or <paramref name="validator"/> is null.</exception>
        </member>
        <member name="M:GSF.Validation.ValidationService.Validate(System.String@)">
            <summary>
            Executes all validations.
            </summary>
            <param name="validationErrors">Errors messages returned by one or more of the validations.</param>
            <returns><strong>true</strong> if the validation completes without errors; otherwise <strong>false</strong>.</returns>
        </member>
        <member name="T:GSF.Xml.NamespaceDoc">
            <summary>
            Contains extension functions used to simplify and standardize usage of standard Xml objects.
            </summary>
        </member>
        <member name="T:GSF.Xml.XmlExtensions">
            <summary>
            Defines extension functions related to Xml elements.
            </summary>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetXmlNode(System.Xml.XmlDocument,System.String)">
            <summary>Gets an XML node from given path, creating the entire path if it does not exist.</summary>
            <remarks>This overload just allows the start of the given XML document by using its root element.</remarks>
            <param name="xmlDoc">An <see cref="T:System.Xml.XmlDocument"/> to query.</param>
            <param name="xpath">A <see cref="T:System.String"/> xpath query.</param>
            <returns>An <see cref="T:System.Xml.XmlNode"/> corresponding to the xpath query.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetXmlNode(System.Xml.XmlDocument,System.String,System.Boolean@)">
            <summary>Gets an XML node from given path, creating the entire path if it does not exist.</summary>
            <remarks>
            <para>This overload just allows the start of the given XML document by using its root element.</para>
            <para>Note that the <paramref name="isDirty" /> parameter will be set to True if any items were added to
            the tree.</para>
            </remarks>
            <param name="xmlDoc">An <see cref="T:System.Xml.XmlDocument"/> to query.</param>
            <param name="xpath">A <see cref="T:System.String"/> xpath query.</param>
            <param name="isDirty">A <see cref="T:System.Boolean"/> value indicating if items were added to the tree.</param>
            <returns>An <see cref="T:System.Xml.XmlNode"/> corresponding to the xpath query.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetXmlNode(System.Xml.XmlNode,System.String)">
            <summary>Gets an XML node from given path, creating the entire path if it does not exist.</summary>
            <param name="parentNode">An <see cref="T:System.Xml.XmlNode"/> parent node to query.</param>
            <param name="xpath">A <see cref="T:System.String"/> xpath query.</param>
            <returns>An <see cref="T:System.Xml.XmlNode"/> corresponding to the xpath query.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetXmlNode(System.Xml.XmlNode,System.String,System.Boolean@)">
            <summary>Gets an XML node from given path, creating the entire path if it does not exist.</summary>
            <remarks>Note that the <paramref name="isDirty" /> parameter will be set to True if any items were added to
            the tree.</remarks>
            <param name="parentNode">An <see cref="T:System.Xml.XmlNode"/> parent node to query.</param>
            <param name="xpath">A <see cref="T:System.String"/> xpath query.</param>
            <param name="isDirty">A <see cref="T:System.Boolean"/> value indicating if items were added to the tree.</param>
            <returns>An <see cref="T:System.Xml.XmlNode"/> corresponding to the xpath query.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetAttributeValue(System.Xml.XmlNode,System.String)">
            <summary>Safely gets or sets an XML node's attribute.</summary>
            <remarks>If you get an attribute that does not exist, null will be returned.</remarks>
            <param name="name">A <see cref="T:System.String"/> name of the value to get.</param>
            <param name="node">A <see cref="T:System.Xml.XmlNode"/> to query.</param>
            <returns>A <see cref="T:System.String"/> value returned for the attribute's value.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.SetAttributeValue(System.Xml.XmlNode,System.String,System.String)">
            <summary>Safely sets an XML node's attribute.</summary>
            <remarks>If you assign a value to an attribute that does not exist, the attribute will be created.</remarks>
            <param name="name">A <see cref="T:System.String"/> indicating the node name to use.</param>
            <param name="node">An <see cref="T:System.Xml.XmlNode"/> node to operate on.</param>
            <param name="value">A <see cref="T:System.String"/> value to set the node attribute's value to.</param>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.GetDataSet(System.String)">
            <summary>
            Gets a data set object from an XML data set formatted as a String.
            </summary>
            <param name="xmlData">XML data string in standard DataSet format.</param>
            <returns>A <see cref="T:System.Data.DataSet"/> object.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.ApplyXSLTransform(System.String,System.String)">
            <summary>
            Transforms an XML document using the given XSL template.
            </summary>
            <param name="document">The document to be transformed.</param>
            <param name="transform">The template that defines how the data should be transformed.</param>
            <returns>The result of the transformation.</returns>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.TransformAll(System.Xml.Linq.XDocument,System.Xml.Linq.XName,System.Func{System.Xml.Linq.XElement,System.Object})">
            <summary>
            Transforms all elements in the given document matching the given
            <paramref name="name"/> using the given <paramref name="selector"/>
            function to perform the transformation.
            </summary>
            <param name="document">The document to be modified.</param>
            <param name="name">The name of the elements to be transformed.</param>
            <param name="selector">The function that defines the transformation.</param>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.TransformAll(System.Xml.Linq.XDocument,System.Xml.Linq.XName,System.Func{System.Xml.Linq.XElement,System.Int32,System.Object})">
            <summary>
            Transforms all elements in the given document matching the given
            <paramref name="name"/> using the given <paramref name="selector"/>
            function to perform the transformation.
            </summary>
            <param name="document">The document to be modified.</param>
            <param name="name">The name of the elements to be transformed.</param>
            <param name="selector">The function that defines the transformation.</param>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.Format(System.Xml.Linq.XElement)">
            <summary>
            Formats the contents of an XML element and returns the result.
            </summary>
            <param name="element">The elements whose contents are to be formatted.</param>
            <returns>The formatted contents of the elements.</returns>
            <remarks>
            The format to be used is determined by the <c>type</c> and <c>spec</c>
            attributes of the element. The <c>type</c> attribute should be the fully
            qualified type name of an <see cref="T:System.IFormattable"/> type. The <c>spec</c>
            attribute defines the format string to be used when formatting the contents.
            If <c>type</c> or <c>spec</c> are not defined or if <c>type</c> resovles to
            a type that is not <see cref="T:System.IFormattable"/>, the contents are not formatted
            and are returned as-is.
            </remarks>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.WhereAttribute(System.Collections.Generic.IEnumerable{System.Xml.Linq.XElement},System.String)">
            <summary>
            Finds all attributes in an enumeration of <see cref="T:System.Xml.Linq.XElement"/> items that match the specified <paramref name="attributeName"/>.
            </summary>
            <param name="source">Set of <see cref="T:System.Xml.Linq.XElement"/> values to search.</param>
            <param name="attributeName">Attribute name to match.</param>
            <returns>Matching sets of <see cref="T:System.Xml.Linq.XElement"/> items and associated attribute values.</returns>
            <remarks>
            When used in conjunction with the <see cref="M:GSF.Xml.XmlExtensions.Is(System.Collections.Generic.IEnumerable{System.Tuple{System.Xml.Linq.XElement,System.String}},System.String,System.Boolean)"/> extension, allows for expressions like:
            <code>
            var globals = XDocument.Load(configFile)
                .Descendants("SettingsGroup")
                .WhereAttribute("Type").Is("Globals");
            </code>
            </remarks>
        </member>
        <member name="M:GSF.Xml.XmlExtensions.Is(System.Collections.Generic.IEnumerable{System.Tuple{System.Xml.Linq.XElement,System.String}},System.String,System.Boolean)">
            <summary>
            Finds all attributes queried from <see cref="M:GSF.Xml.XmlExtensions.WhereAttribute(System.Collections.Generic.IEnumerable{System.Xml.Linq.XElement},System.String)"/> that match <paramref name="attributeValue"/>.
            </summary>
            <param name="source">Attributes queried from <see cref="M:GSF.Xml.XmlExtensions.WhereAttribute(System.Collections.Generic.IEnumerable{System.Xml.Linq.XElement},System.String)"/> extension.</param>
            <param name="attributeValue">Attribute value to match.</param>
            <param name="ignoreCase">Flag that determines if attribute value match is case sensitive.</param>
            <returns><see cref="T:System.Xml.Linq.XElement"/> items that match <paramref name="attributeValue"/>.</returns>
            <remarks>
            When used in conjunction with the <see cref="M:GSF.Xml.XmlExtensions.WhereAttribute(System.Collections.Generic.IEnumerable{System.Xml.Linq.XElement},System.String)"/> extension, allows for expressions like:
            <code>
            var globals = XDocument.Load(configFile)
                .Descendants("SettingsGroup")
                .WhereAttribute("Type").Is("Globals");
            </code>
            </remarks>
        </member>
        <member name="T:GSF.ArrayExtensions">
            <summary>
            Defines extension functions related to <see cref="T:System.Array"/> manipulation.
            </summary>
        </member>
        <member name="M:GSF.ArrayExtensions.ValidateParameters``1(``0[],System.Int32,System.Int32)">
            <summary>
            Validates that the specified <paramref name="startIndex"/> and <paramref name="length"/> are valid within the given <paramref name="array"/>.
            </summary>
            <param name="array">Array to validate.</param>
            <param name="startIndex">0-based start index into the <paramref name="array"/>.</param>
            <param name="length">Valid number of items within <paramref name="array"/> from <paramref name="startIndex"/>.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="array"/> length.
            </exception>
        </member>
        <member name="M:GSF.ArrayExtensions.BlockCopy``1(``0[],System.Int32,System.Int32)">
            <summary>
            Returns a copy of the specified portion of the <paramref name="array"/> array.
            </summary>
            <param name="array">Source array.</param>
            <param name="startIndex">Offset into <paramref name="array"/> array.</param>
            <param name="length">Length of <paramref name="array"/> array to copy at <paramref name="startIndex"/> offset.</param>
            <returns>A array of data copied from the specified portion of the source array.</returns>
            <remarks>
            <para>
            Returned array will be extended as needed to make it the specified <paramref name="length"/>, but
            it will never be less than the source array length - <paramref name="startIndex"/>.
            </para>
            <para>
            If an existing array of primitives is already available, using the <see cref="M:System.Buffer.BlockCopy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/> directly
            instead of this extension method may be optimal since this method always allocates a new return array.
            Unlike <see cref="M:System.Buffer.BlockCopy(System.Array,System.Int32,System.Array,System.Int32,System.Int32)"/>, however, this function also works with non-primitive types.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of valid indexes for the source array -or-
            <paramref name="length"/> is less than 0.
            </exception>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[],``0[])">
            <summary>
            Combines arrays together into a single array.
            </summary>
            <param name="source">Source array.</param>
            <param name="other">Other array to combine to <paramref name="source"/> array.</param>
            <returns>Combined arrays.</returns>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[],System.Int32,System.Int32,``0[],System.Int32,System.Int32)">
            <summary>
            Combines specified portions of arrays together into a single array.
            </summary>
            <param name="source">Source array.</param>
            <param name="sourceOffset">Offset into <paramref name="source"/> array to begin copy.</param>
            <param name="sourceCount">Number of bytes to copy from <paramref name="source"/> array.</param>
            <param name="other">Other array to combine to <paramref name="source"/> array.</param>
            <param name="otherOffset">Offset into <paramref name="other"/> array to begin copy.</param>
            <param name="otherCount">Number of bytes to copy from <paramref name="other"/> array.</param>
            <returns>Combined specified portions of both arrays.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="sourceOffset"/> or <paramref name="otherOffset"/> is outside the range of valid indexes for the associated array -or-
            <paramref name="sourceCount"/> or <paramref name="otherCount"/> is less than 0 -or- 
            <paramref name="sourceOffset"/> or <paramref name="otherOffset"/>, 
            and <paramref name="sourceCount"/> or <paramref name="otherCount"/> do not specify a valid section in the associated array.
            </exception>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[],``0[],``0[])">
            <summary>
            Combines arrays together into a single array.
            </summary>
            <param name="source">Source array.</param>
            <param name="other1">First array to combine to <paramref name="source"/> array.</param>
            <param name="other2">Second array to combine to <paramref name="source"/> array.</param>
            <returns>Combined arrays.</returns>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[],``0[],``0[],``0[])">
            <summary>
            Combines arrays together into a single array.
            </summary>
            <param name="source">Source array.</param>
            <param name="other1">First array to combine to <paramref name="source"/> array.</param>
            <param name="other2">Second array to combine to <paramref name="source"/> array.</param>
            <param name="other3">Third array to combine to <paramref name="source"/> array.</param>
            <returns>Combined arrays.</returns>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[],``0[],``0[],``0[],``0[])">
            <summary>
            Combines arrays together into a single array.
            </summary>
            <param name="source">Source array.</param>
            <param name="other1">First array to combine to <paramref name="source"/> array.</param>
            <param name="other2">Second array to combine to <paramref name="source"/> array.</param>
            <param name="other3">Third array to combine to <paramref name="source"/> array.</param>
            <param name="other4">Fourth array to combine to <paramref name="source"/> array.</param>
            <returns>Combined arrays.</returns>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine``1(``0[][])">
            <summary>
            Combines array of arrays together into a single array.
            </summary>
            <param name="arrays">Array of arrays to combine.</param>
            <returns>Combined arrays.</returns>
            <remarks>
            <para>
            Only use this function if you need a copy of the combined arrays, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined arrays.
            </para>
            <para>
            This function can easily throw an out of memory exception if there is not enough
            contiguous memory to create an array sized with the combined lengths.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.IndexOfSequence``1(``0[],``0[])">
            <summary>
            Searches for the specified <paramref name="sequenceToFind"/> and returns the index of the first occurrence within the <paramref name="array"/>.
            </summary>
            <param name="array">Array to search.</param>
            <param name="sequenceToFind">Sequence of items to search for.</param>
            <returns>The zero-based index of the first occurrence of the <paramref name="sequenceToFind"/> in the <paramref name="array"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.ArrayExtensions.IndexOfSequence``1(``0[],``0[],System.Int32)">
            <summary>
            Searches for the specified <paramref name="sequenceToFind"/> and returns the index of the first occurrence within the range of elements in the <paramref name="array"/>
            that starts at the specified index.
            </summary>
            <param name="array">Array to search.</param>
            <param name="sequenceToFind">Sequence of items to search for.</param>
            <param name="startIndex">Start index in the <paramref name="array"/> to start searching.</param>
            <returns>The zero-based index of the first occurrence of the <paramref name="sequenceToFind"/> in the <paramref name="array"/>, if found; otherwise, -1.</returns>
        </member>
        <member name="M:GSF.ArrayExtensions.IndexOfSequence``1(``0[],``0[],System.Int32,System.Int32)">
            <summary>
            Searches for the specified <paramref name="sequenceToFind"/> and returns the index of the first occurrence within the range of elements in the <paramref name="array"/>
            that starts at the specified index and contains the specified number of elements.
            </summary>
            <param name="array">Array to search.</param>
            <param name="sequenceToFind">Sequence of items to search for.</param>
            <param name="startIndex">Start index in the <paramref name="array"/> to start searching.</param>
            <param name="length">Number of bytes in the <paramref name="array"/> to search through.</param>
            <returns>The zero-based index of the first occurrence of the <paramref name="sequenceToFind"/> in the <paramref name="array"/>, if found; otherwise, -1.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="sequenceToFind"/> is null or has zero length.
            </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> is outside the range of valid indexes for the source array -or-
            <paramref name="length"/> is less than 0.
            </exception>
        </member>
        <member name="M:GSF.ArrayExtensions.CompareTo``1(``0[],``0[])">
            <summary>Returns comparison results of two binary arrays.</summary>
            <param name="source">Source array.</param>
            <param name="other">Other array to compare to <paramref name="source"/> array.</param>
            <remarks>
            Note that if both arrays are <c>null</c> the arrays will be considered equal.
            If one array is <c>null</c> and the other array is not <c>null</c>, the non-null array will be considered larger.
            If the array lengths are not equal, the array with the larger length will be considered larger.
            If the array lengths are equal, the arrays will be compared based on content.
            </remarks>
            <returns>
            <para>
            A signed integer that indicates the relative comparison of <paramref name="source"/> array and <paramref name="other"/> array.
            </para>
            <para>
            <list type="table">
                <listheader>
                    <term>Return Value</term>
                    <description>Description</description>
                </listheader>
                <item>
                    <term>Less than zero</term>
                    <description>Source array is less than other array.</description>
                </item>
                <item>
                    <term>Zero</term>
                    <description>Source array is equal to other array.</description>
                </item>
                <item>
                    <term>Greater than zero</term>
                    <description>Source array is greater than other array.</description>
                </item>
            </list>
            </para>
            </returns>
        </member>
        <member name="M:GSF.ArrayExtensions.CompareTo``1(``0[],System.Int32,``0[],System.Int32,System.Int32)">
            <summary>
            Returns comparison results of two binary arrays.
            </summary>
            <param name="source">Source array.</param>
            <param name="sourceOffset">Offset into <paramref name="source"/> array to begin compare.</param>
            <param name="other">Other array to compare to <paramref name="source"/> array.</param>
            <param name="otherOffset">Offset into <paramref name="other"/> array to begin compare.</param>
            <param name="count">Number of bytes to compare in both arrays.</param>
            <remarks>
            Note that if both arrays are <c>null</c> the arrays will be considered equal.
            If one array is <c>null</c> and the other array is not <c>null</c>, the non-null array will be considered larger.
            </remarks>
            <returns>
            <para>
            A signed integer that indicates the relative comparison of <paramref name="source"/> array and <paramref name="other"/> array.
            </para>
            <para>
            <list type="table">
                <listheader>
                    <term>Return Value</term>
                    <description>Description</description>
                </listheader>
                <item>
                    <term>Less than zero</term>
                    <description>Source array is less than other array.</description>
                </item>
                <item>
                    <term>Zero</term>
                    <description>Source array is equal to other array.</description>
                </item>
                <item>
                    <term>Greater than zero</term>
                    <description>Source array is greater than other array.</description>
                </item>
            </list>
            </para>
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="sourceOffset"/> or <paramref name="otherOffset"/> is outside the range of valid indexes for the associated array -or-
            <paramref name="count"/> is less than 0 -or- 
            <paramref name="sourceOffset"/> or <paramref name="otherOffset"/> and <paramref name="count"/> do not specify a valid section in the associated array.
            </exception>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine(System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Combines buffers together as a single image.
            </summary>
            <param name="source">Source buffer.</param>
            <param name="other1">First buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other2">Second buffer to combine to <paramref name="source"/> buffer.</param>
            <returns>Combined buffers.</returns>
            <exception cref="T:System.InvalidOperationException">Cannot create a byte array with more than 2,147,483,591 elements.</exception>
            <remarks>
            Only use this function if you need a copy of the combined buffers, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined buffers.
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine(System.Byte[],System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Combines buffers together as a single image.
            </summary>
            <param name="source">Source buffer.</param>
            <param name="other1">First buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other2">Second buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other3">Third buffer to combine to <paramref name="source"/> buffer.</param>
            <returns>Combined buffers.</returns>
            <exception cref="T:System.InvalidOperationException">Cannot create a byte array with more than 2,147,483,591 elements.</exception>
            <remarks>
            Only use this function if you need a copy of the combined buffers, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined buffers.
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine(System.Byte[],System.Byte[],System.Byte[],System.Byte[],System.Byte[])">
            <summary>
            Combines buffers together as a single image.
            </summary>
            <param name="source">Source buffer.</param>
            <param name="other1">First buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other2">Second buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other3">Third buffer to combine to <paramref name="source"/> buffer.</param>
            <param name="other4">Fourth buffer to combine to <paramref name="source"/> buffer.</param>
            <returns>Combined buffers.</returns>
            <exception cref="T:System.InvalidOperationException">Cannot create a byte array with more than 2,147,483,591 elements.</exception>
            <remarks>
            Only use this function if you need a copy of the combined buffers, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined buffers.
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.Combine(System.Byte[][])">
            <summary>
            Combines an array of buffers together as a single image.
            </summary>
            <param name="buffers">Array of byte buffers.</param>
            <returns>Combined buffers.</returns>
            <exception cref="T:System.InvalidOperationException">Cannot create a byte array with more than 2,147,483,591 elements.</exception>
            <remarks>
            Only use this function if you need a copy of the combined buffers, it will be optimal
            to use the Linq function <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/> if you simply need to
            iterate over the combined buffers.
            </remarks>
        </member>
        <member name="M:GSF.ArrayExtensions.ReadStructure``1(System.Byte[])">
            <summary>
            Reads a structure from a byte array.
            </summary>
            <typeparam name="T">Type of structure to read.</typeparam>
            <param name="bytes">Bytes containing structure.</param>
            <returns>A structure from <paramref name="bytes"/>.</returns>
        </member>
        <member name="M:GSF.ArrayExtensions.ReadStructure``1(System.IO.BinaryReader)">
            <summary>
            Reads a structure from a <see cref="T:System.IO.BinaryReader"/>.
            </summary>
            <typeparam name="T">Type of structure to read.</typeparam>
            <param name="reader"><see cref="T:System.IO.BinaryReader"/> positioned at desired structure.</param>
            <returns>A structure read from <see cref="T:System.IO.BinaryReader"/>.</returns>
        </member>
        <member name="T:GSF.EnabledState">
            <summary>
            Enumeration that represents a state of either "automatic", "on" or "off".
            </summary>
        </member>
        <member name="F:GSF.EnabledState.Auto">
            <summary>
            Represents the automatic, i.e., default, state.
            </summary>
        </member>
        <member name="F:GSF.EnabledState.On">
            <summary>
            Represents the on, i.e., enabled, state.
            </summary>
        </member>
        <member name="F:GSF.EnabledState.Off">
            <summary>
            Represents the off, i.e., disabled, state.
            </summary>
        </member>
        <member name="T:GSF.RadixCodec">
            <summary>
            Represents a radix value codec for conversion of base-10 integer values to and from other base values.
            </summary>
            <remarks>
            <para>
            The primary use case of this class is to provide compact string-based encodings of integer values, e.g.,
            storing an unsigned 32-bit integer value in a string-based database field that only holds 6 characters;
            the maximum <see cref="T:System.UInt32"/> value of 4294967295 requires 10 characters of storage as a string.
            </para>
            <para>
            </para>
            The codec algorithm for <see cref="T:GSF.RadixCodec"/> works much like base-64 encoding but with variable base
            sizes and an integer source data focus, not a byte-array. The encoded base value strings are not intended
            to provide binary compression, many of the radix value encodings of integers produced by this class will
            have a byte-size that is greater than native bytes that make up integer. Since the encodings produced by
            this class do not manage arbitrary sized bytes arrays nor do they include padding, the encodings are not
            intended to comply with RFC 3548.
            </remarks>
        </member>
        <member name="F:GSF.RadixCodec.Digits">
            <summary>
            Defines the available digits for a radix value codec.
            </summary>
            <remarks>
            Characters must be unique. Length determines radix, i.e., target base value.
            </remarks>
        </member>
        <member name="P:GSF.RadixCodec.Radix">
            <summary>
            Gets the radix, i.e., target base value, for this <see cref="T:GSF.RadixCodec"/>.
            </summary>
        </member>
        <member name="M:GSF.RadixCodec.#ctor(System.String,System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.RadixCodec"/>.
            </summary>
            <param name="digits">Digits to use for radix values.</param>
            <param name="caseSensitive">Determines if alphabetic radix <paramref name="digits"/> are case sensitive.</param>
            <remarks>
            Length of <paramref name="digits"/> will be radix, i.e., target base value.
            </remarks>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.Int16)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.UInt16)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(GSF.Int24)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(GSF.UInt24)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.Int32)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.UInt32)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.Int64)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Encode(System.UInt64)">
            <summary>
            Converts integer value to a radix value.
            </summary>
            <param name="value">Integer value to convert.</param>
            <returns>Radix value string.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.Int16@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.UInt16@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,GSF.Int24@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,GSF.UInt24@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.Int32@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.UInt32@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.Int64@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.TryDecode(System.String,System.UInt64@)">
            <summary>
            Attempts to convert a radix value to an integer value.
            </summary>
            <param name="radixValue">Radix value to convert.</param>
            <param name="value">Decoded integer value.</param>
            <returns><c>true</c> if decode succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.RadixCodec.Decode``1(System.String)">
            <summary>
            Converts a radix value to an integer value.
            </summary>
            <typeparam name="T">Integer type to convert</typeparam>
            <param name="radixValue">Radix value to convert.</param>
            <returns>Decoded integer value.</returns>
            <exception cref="T:System.ArgumentNullException">Radix value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">Invalid radix value character.</exception>
            <exception cref="T:System.OverflowException">Decoded radix value overflowed integer type.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Only integer types Int16, UInt16, Int24, UInt24, Int32, UInt32, Int64 and UInt64 are supported.</exception>
        </member>
        <member name="M:GSF.RadixCodec.Decode(System.Type,System.String)">
            <summary>
            Converts a radix value to an integer value.
            </summary>
            <param name="type">Integer type to convert.</param>
            <param name="radixValue">Radix value to convert.</param>
            <returns>Decoded integer value.</returns>
            <exception cref="T:System.ArgumentNullException">Radix value is <c>null</c>.</exception>
            <exception cref="T:System.ArgumentException">Invalid radix value character.</exception>
            <exception cref="T:System.OverflowException">Decoded radix value overflowed integer type.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">Only integer types Int16, UInt16, Int24, UInt24, Int32, UInt32, Int64 and UInt64 are supported.</exception>
        </member>
        <member name="P:GSF.RadixCodec.Radix2">
            <summary>
            Gets a radix-2 value (binary) encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "1111111111111111111111111111111", 31 characters
            int.MinValue encodes to "-10000000000000000000000000000000", 33 characters
            uint.MaxValue encodes to "11111111111111111111111111111111", 32 characters
            long.MaxValue encodes to "111111111111111111111111111111111111111111111111111111111111111", 63 characters
            long.MinValue encodes to "-1000000000000000000000000000000000000000000000000000000000000000", 65 characters
            ulong.MaxValue encodes to "1111111111111111111111111111111111111111111111111111111111111111", 64 characters
            </remarks>                                                  12
        </member>
        <member name="P:GSF.RadixCodec.Radix8">
            <summary>
            Gets a radix-8 value (octal) encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "17777777777", 11 characters
            int.MinValue encodes to "-20000000000", 12 characters
            uint.MaxValue encodes to "37777777777", 11 characters
            long.MaxValue encodes to "777777777777777777777", 21 characters
            long.MinValue encodes to "-1000000000000000000000", 23 characters
            ulong.MaxValue encodes to "1777777777777777777777", 22 characters
            </remarks>                                                  12345678
        </member>
        <member name="P:GSF.RadixCodec.Radix16">
            <summary>
            Gets a radix-16 value (hex) encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "7FFFFFFF", 8 characters
            int.MinValue encodes to "-80000000", 9 characters
            uint.MaxValue encodes to "FFFFFFFF", 8 characters
            long.MaxValue encodes to "7FFFFFFFFFFFFFFF", 16 characters
            long.MinValue encodes to "-8000000000000000", 17 characters
            ulong.MaxValue encodes to "FFFFFFFFFFFFFFFF", 16 characters
            </remarks>                                                    1234567890123456
        </member>
        <member name="P:GSF.RadixCodec.Radix32">
            <summary>
            Gets a radix-32 value encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "1VVVVVV", 7 characters
            int.MinValue encodes to "-2000000", 8 characters
            uint.MaxValue encodes to "3VVVVVV", 7 characters
            long.MaxValue encodes to "7VVVVVVVVVVVV", 13 characters
            long.MinValue encodes to "-8000000000000", 14 characters
            ulong.MaxValue encodes to "FVVVVVVVVVVVV", 13 characters
            </remarks>                                                    12345678901234567890123456789012
        </member>
        <member name="P:GSF.RadixCodec.Radix36">
            <summary>
            Gets a radix-36 value encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "ZIK0ZJ", 6 characters -- ideal 32-bit integer size for minimal case insensitive digit set
            int.MinValue encodes to "-ZIK0ZK", 7 characters
            uint.MaxValue encodes to "1Z141Z3", 7 characters
            long.MaxValue encodes to "1Y2P0IJ32E8E7", 13 characters
            long.MinValue encodes to "-1Y2P0IJ32E8E8", 14 characters
            ulong.MaxValue encodes to "3W5E11264SGSF", 13 characters
            </remarks>                                                    123456789012345678901234567890123456
        </member>
        <member name="P:GSF.RadixCodec.Radix64">
            <summary>
            Gets a radix-64 value encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "1/////", 6 characters
            int.MinValue encodes to "-200000", 7 characters
            uint.MaxValue encodes to "3/////", 6 characters
            long.MaxValue encodes to "7//////////", 11 characters
            long.MinValue encodes to "-80000000000", 12 characters
            ulong.MaxValue encodes to "F//////////", 11 characters
            </remarks>                                                    1234567890123456789012345678901234567890123456789012345678901234
        </member>
        <member name="P:GSF.RadixCodec.Radix64B">
            <summary>
            Gets a radix-64 value encoding with the standard Base64 character sequence (results are unpadded).
            </summary>
            <remarks>
            int.MaxValue encodes to "B/////", 6 characters
            int.MinValue encodes to "-CAAAAA", 7 characters
            uint.MaxValue encodes to "D/////", 6 characters
            long.MaxValue encodes to "H//////////", 11 characters
            long.MinValue encodes to "-IAAAAAAAAAA", 12 characters
            ulong.MaxValue encodes to "P//////////", 11 characters
            </remarks>                                                      1234567890123456789012345678901234567890123456789012345678901234
        </member>
        <member name="P:GSF.RadixCodec.Radix86">
            <summary>
            Gets a radix-86 value encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "$S2Jx", 5 characters
            int.MinValue encodes to "-$S2Jy", 6 characters -- base 86 reduces 32-bit integer sizes to a maximum of 6 characters
            uint.MaxValue encodes to "1qu4dh", 6 characters
            long.MaxValue encodes to "1X2qL^UmlIt", 11 characters
            long.MinValue encodes to "-1X2qL^UmlIu", 12 characters
            ulong.MaxValue encodes to "2&amp;5Sh]zLIbZ", 11 characters
            </remarks>                                                    1234567890123456789012345678901234567890123456789012345678901234567890123456
        </member>
        <member name="P:GSF.RadixCodec.Radix256">
            <summary>
            Gets a radix-256 value encoding.
            </summary>
            <remarks>
            int.MaxValue encodes to "Āƀƀƀ", 4 characters
            int.MinValue encodes to "-ā000", 5 characters -- base 256 reduces 32-bit integer sizes to a maximum of 5 characters
            uint.MaxValue encodes to "ƀƀƀƀ", 4 characters -- base 256 reduces 32-bit unsigned integer sizes to a maximum of 4 characters
            long.MaxValue encodes to "Āƀƀƀƀƀƀƀ", 8 characters
            long.MinValue encodes to "-ā0000000", 9 characters
            ulong.MaxValue encodes to "ƀƀƀƀƀƀƀƀ", 8 characters
            </remarks>
        </member>
        <member name="P:GSF.RadixCodec.Radix65535">
            <summary>
            Gets a radix-65535 value encoding. This is the largest supported radix.
            </summary>
            <remarks>
            int.MaxValue encodes to "魴魳", 2 characters
            int.MinValue encodes to "-魴魴", 3 characters -- base 65535 reduces 32-bit integer sizes to a maximum of 3 characters (not 3 bytes)
            uint.MaxValue encodes to "120", 3 characters
            long.MaxValue encodes to "魵魶魵魳", 4 characters
            long.MinValue encodes to "-魵魶魵魴", 5 characters
            ulong.MaxValue encodes to "14640", 5 characters
            </remarks>
        </member>
        <member name="T:GSF.BigEndian">
            <summary>
            Defines a set of big-endian byte order interoperability functions.
            </summary>
            <remarks>
            This class is setup to support aggressive in-lining of big endian conversions. Bounds
            will not be checked as part of this function call, if bounds are violated, the exception
            will be thrown at the <see cref="T:System.Array"/> level.
            </remarks>
        </member>
        <member name="M:GSF.BigEndian.ToBoolean(System.Byte*)">
            <summary>
            Returns a <see cref="T:System.Boolean"/> value converted from one byte at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes.</param>
            <returns>true if the byte at startIndex in value is nonzero; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToChar(System.Byte*)">
            <summary>
            Returns a Unicode character converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A character formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToDouble(System.Byte*)">
            <summary>
            Returns a double-precision floating point number converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A double-precision floating point number formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt16(System.Byte*)">
            <summary>
            Returns a 16-bit signed integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 16-bit signed integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt24(System.Byte*)">
            <summary>
            Returns a 24-bit signed integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt32(System.Byte*)">
            <summary>
            Returns a 32-bit signed integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 32-bit signed integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt64(System.Byte*)">
            <summary>
            Returns a 64-bit signed integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 64-bit signed integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToSingle(System.Byte*)">
            <summary>
            Returns a single-precision floating point number converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A single-precision floating point number formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt16(System.Byte*)">
            <summary>
            Returns a 16-bit unsigned integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 16-bit unsigned integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt24(System.Byte*)">
            <summary>
            Returns a 24-bit unsigned integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt32(System.Byte*)">
            <summary>
            Returns a 32-bit unsigned integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 32-bit unsigned integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt64(System.Byte*)">
            <summary>
            Returns a 64-bit unsigned integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 64-bit unsigned integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToDecimal(System.Byte*)">
            <summary>
            Returns a 128-bit decimal converted from 16 bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 128-bit decimal formed by 16 bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToBoolean(System.Byte[],System.Int32)">
            <summary>
            Returns a <see cref="T:System.Boolean"/> value converted from one byte at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes.</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>true if the byte at startIndex in value is nonzero; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToChar(System.Byte[],System.Int32)">
            <summary>
            Returns a Unicode character converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A character formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Returns a double-precision floating point number converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A double-precision floating point number formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit signed integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit signed integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit signed integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit signed integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit signed integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit signed integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit signed integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Returns a single-precision floating point number converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A single-precision floating point number formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit unsigned integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit unsigned integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit unsigned integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit unsigned integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit unsigned integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit unsigned integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit unsigned integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.ToDecimal(System.Byte[],System.Int32)">
            <summary>
            Returns a 128-bit decimal converted from 16 bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 128-bit decimal formed by 16 bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.BigEndian.GetBytes``1(``0)">
            <summary>
            Returns the specified value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Boolean)">
            <summary>
            Returns the specified <see cref="T:System.Boolean"/> value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Char)">
            <summary>
            Returns the specified Unicode character value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The Unicode character value to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Double)">
            <summary>
            Returns the specified double-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Int16)">
            <summary>
            Returns the specified 16-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(GSF.Int24)">
            <summary>
            Returns the specified 24-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Int32)">
            <summary>
            Returns the specified 32-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Int64)">
            <summary>
            Returns the specified 64-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Single)">
            <summary>
            Returns the specified single-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.UInt16)">
            <summary>
            Returns the specified 16-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(GSF.UInt24)">
            <summary>
            Returns the specified 24-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.UInt32)">
            <summary>
            Returns the specified 32-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.UInt64)">
            <summary>
            Returns the specified 64-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.BigEndian.GetBytes(System.Decimal)">
            <summary>
            Returns the specified 128-bit decimal value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 16.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes``1(``0,System.Byte[],System.Int32)">
            <summary>
            Copies the specified primitive type value as an array of bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
            <returns>Length of bytes copied into array based on size of <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Boolean,System.Byte[],System.Int32)">
            <summary>
            Copies the specified <see cref="T:System.Boolean"/> value as an array of 1 byte in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Char,System.Byte[],System.Int32)">
            <summary>
            Copies the specified Unicode character value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The Unicode character value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Double,System.Byte[],System.Int32)">
            <summary>
            Copies the specified double-precision floating point value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit signed integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(GSF.Int24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit signed integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit signed integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit signed integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Single,System.Byte[],System.Int32)">
            <summary>
            Copies the specified single-precision floating point value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit unsigned integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(GSF.UInt24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit unsigned integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit unsigned integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit unsigned integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Decimal,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 128-bit decimal value as an array of 16 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes``1(``0,System.Byte*)">
            <summary>
            Copies the specified primitive type value as an array of bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
            <returns>Length of bytes copied into array based on size of <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Boolean,System.Byte*)">
            <summary>
            Copies the specified <see cref="T:System.Boolean"/> value as an array of 1 byte in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Char,System.Byte*)">
            <summary>
            Copies the specified Unicode character value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The Unicode character value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Double,System.Byte*)">
            <summary>
            Copies the specified double-precision floating point value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int16,System.Byte*)">
            <summary>
            Copies the specified 16-bit signed integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(GSF.Int24,System.Byte*)">
            <summary>
            Copies the specified 24-bit signed integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int32,System.Byte*)">
            <summary>
            Copies the specified 32-bit signed integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Int64,System.Byte*)">
            <summary>
            Copies the specified 64-bit signed integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Single,System.Byte*)">
            <summary>
            Copies the specified single-precision floating point value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt16,System.Byte*)">
            <summary>
            Copies the specified 16-bit unsigned integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(GSF.UInt24,System.Byte*)">
            <summary>
            Copies the specified 24-bit unsigned integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt32,System.Byte*)">
            <summary>
            Copies the specified 32-bit unsigned integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.UInt64,System.Byte*)">
            <summary>
            Copies the specified 64-bit unsigned integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.BigEndian.CopyBytes(System.Decimal,System.Byte*)">
            <summary>
            Copies the specified 128-bit decimal value as an array of 16 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="T:GSF.BitMath">
            <summary>
            Contains some random and useful functions.
            </summary>
        </member>
        <member name="M:GSF.BitMath.IsPowerOfTwo(System.Int32)">
            <summary>
            Determines if the number is a power of 2.
            </summary>
            <param name="value">The value to check power of two properties</param>
            <returns></returns>
            <exception cref="T:System.ArgumentOutOfRangeException">If <see pref="value"/> is less than zero</exception>
        </member>
        <member name="M:GSF.BitMath.IsPowerOfTwo(System.Int64)">
            <summary>
            Determines if the number is a power of 2.
            </summary>
            <param name="value">The value to check power of two properties</param>
            <exception cref="T:System.ArgumentOutOfRangeException">If <see pref="value"/> is less than zero</exception>
        </member>
        <member name="M:GSF.BitMath.IsPowerOfTwo(System.UInt32)">
            <summary>
            Determines if the number is a power of 2.
            </summary>
            <param name="value">The value to check power of two properties</param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.IsPowerOfTwo(System.UInt64)">
            <summary>
            Determines if the number is a power of 2.
            </summary>
            <param name="value">The value to check power of two properties</param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CountBitsSet(System.UInt32)">
            <summary>
            Counts the number of bits that are set
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CountBitsSet(System.UInt64)">
            <summary>
            Counts the number of bits that are set
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CountBitsCleared(System.UInt32)">
            <summary>
            Counts the number of bits that are not set
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CountBitsCleared(System.UInt64)">
            <summary>
            Counts the number of bits that are not set
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.RoundUpToNearestPowerOfTwo(System.UInt64)">
            <summary>
            Rounds a number up to the nearest power of 2.
            If the value is a power of two, the same value is returned.
            If the value is larger than the largest power of 2. It is rounded down.
            </summary>
            <param name="value"></param>
            <returns></returns>
            <remarks>
            Method based on a method found at: http://graphics.stanford.edu/~seander/bithacks.htm
            Subtitle: Round up to the next highest power of 2 
            </remarks>
        </member>
        <member name="M:GSF.BitMath.RoundUpToNearestPowerOfTwo(System.UInt32)">
            <summary>
            Rounds a number up to the nearest power of 2.
            If the value is a power of two, the same value is returned.
            If the value is larger than the largest power of 2. It is rounded down.
            </summary>
            <param name="value"></param>
            <returns></returns>
            <remarks>
            Method based on a method found at: http://graphics.stanford.edu/~seander/bithacks.htm
            Subtitle: Round up to the next highest power of 2 
            </remarks>
        </member>
        <member name="M:GSF.BitMath.RoundDownToNearestPowerOfTwo(System.UInt64)">
            <summary>
            Rounds a number down to the nearest power of 2.
            If the value is a power of two, the same value is returned.
            If value is zero, one is returned.
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.RoundDownToNearestPowerOfTwo(System.UInt32)">
            <summary>
            Rounds a number down to the nearest power of 2.
            If the value is a power of two, the same value is returned.
            If value is zero, 1 is returned.
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CreateBitMask(System.Int32)">
            <summary>
            Creates a bit mask for a number with the given number of bits.
            </summary>
            <param name="bitCount"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.CountTrailingZeros(System.UInt32)">
            <summary>
            Counts the number of consecutive 0's starting from the lowest bit working up.
            </summary>
            <remarks>
            Unfortunately, c# cannot call the cpu instruction ctz
            Example from http://en.wikipedia.org/wiki/Find_first_set
            </remarks>
        </member>
        <member name="M:GSF.BitMath.CountTrailingZeros(System.UInt64)">
            <summary>
            Counts the number of consecutive 0's starting from the lowest bit working up.
            </summary>
            <remarks>
            Unfortunately, c# cannot call the cpu instruction ctz
            Example from http://en.wikipedia.org/wiki/Find_first_set
            </remarks>
        </member>
        <member name="M:GSF.BitMath.CountLeadingZeros(System.UInt32)">
            <summary>
            Counts the number of consecutive 0's starting from the highest bit working down.
            </summary>
            <param name="value"></param>
            <returns></returns>
            <remarks>
            Unfortunately, c# cannot call the cpu instruction clz
            Example from http://en.wikipedia.org/wiki/Find_first_set
            </remarks>
        </member>
        <member name="M:GSF.BitMath.CountLeadingZeros(System.UInt64)">
            <summary>
            Counts the number of consecutive 0's starting from the highest bit working down.
            </summary>
            <remarks>
            Unfortunately, c# cannot call the cpu instruction clz
            Example from http://en.wikipedia.org/wiki/Find_first_set
            </remarks>
        </member>
        <member name="M:GSF.BitMath.CountTrailingOnes(System.UInt32)">
            <summary>
            Counts the number of consecutive 1's starting from the lowest bit working up.
            </summary>
        </member>
        <member name="M:GSF.BitMath.CountTrailingOnes(System.UInt64)">
            <summary>
            Counts the number of consecutive 1's starting from the lowest bit working up.
            </summary>
        </member>
        <member name="M:GSF.BitMath.CountLeadingOnes(System.UInt32)">
            <summary>
            Counts the number of consecutive 1's starting from the highest bit working down.
            </summary>
        </member>
        <member name="M:GSF.BitMath.CountLeadingOnes(System.UInt64)">
            <summary>
            Counts the number of consecutive 1's starting from the highest bit working down.
            </summary>
        </member>
        <member name="M:GSF.BitMath.GetSetBitPositions(System.UInt64)">
            <summary>
            Returns the bit position for every bit that is set in the provided value.
            Bit positions are defined as 0-63;
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.GetSetBitPositions(System.UInt32)">
            <summary>
            Returns the bit position for every bit that is set in the provided value.
            Bit positions are defined as 0-31;
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.GetClearedBitPositions(System.UInt32)">
            <summary>
            Returns the bit position for every bit that is cleared in the provided value.
            Bit positions are defined as 0-31;
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.BitMath.GetClearedBitPositions(System.UInt64)">
            <summary>
            Returns the bit position for every bit that is cleared in the provided value.
            Bit positions are defined as 0-63;
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="T:GSF.CharExtensions">
            <summary>
            Defines extension functions related to character manipulation.
            </summary>
        </member>
        <member name="M:GSF.CharExtensions.RegexEncode(System.Char)">
            <summary>
            Encodes the specified Unicode character in proper Regular Expression format.
            </summary>
            <param name="item">Unicode character to encode in Regular Expression format.</param>
            <returns>Specified Unicode character in proper Regular Expression format.</returns>
        </member>
        <member name="M:GSF.CharExtensions.IsWordTerminator(System.Char)">
            <summary>
            Tests a character to determine if it marks the end of a typical English word.
            </summary>
            <param name="value">Input character to check.</param>
            <returns><c>true</c> if character is a work separator.</returns>
            <remarks>
            Performs no testing for ASCII codes &gt; 127.<br/>
            Does not separate words based on punctuation of ' %  - _  <br/>
            However does include the angle bracket symbols &lt; &gt; as separators<br/>
            <br/>
            For reference the standard char tests are:
            <ul>
            <li>"IsSperator (1) == simple space (32 or 160) only.</li>
            <li>IsPunctuation (23) == . , ! ? : ; " ' [ ] { } ( ) \ / @ % # * &amp; - _  (plus other char's &gt; 127)</li>
            <li>IsSymbol (8) == $ + &lt; &gt; = ^ ` ~</li>
            <li>IsWhiteSpace (6) == control char's 9 thru 13, plus 32 -- TAB, LF, VT, FF, CR, SP</li>
            </ul>
            </remarks>
        </member>
        <member name="M:GSF.CharExtensions.IsNumeric(System.Char)">
            <summary>
            Tests a character to determine if is a common part of a numeric string (digits or one of "+ - , .")
            </summary>
            <param name="value">The character to check.</param>
            <returns><c>true</c> if numeric character.</returns>
        </member>
        <member name="M:GSF.CharExtensions.IsAnyOf(System.Char,System.Collections.Generic.IEnumerable{System.Char})">
            <summary>
            Determines if a character matches any character in a sent array.
            </summary>
            <param name="value">The character to check.</param>
            <param name="testChars">The array of characters to test.</param>
            <returns>Boolean value indicating a that the character is in the array.</returns>
        </member>
        <member name="M:GSF.CharExtensions.IsInRange(System.Char,System.Char,System.Char)">
            <summary>
            Tests a character to determine if it is between a specified character range
            </summary>
            <param name="value">Input character to process.</param>
            <param name="startOfRange">Beginning of range character.</param>
            <param name="endOfRange">End of range character.</param>
            <returns><c>true</c> is the character is within the range.</returns>
        </member>
        <member name="M:GSF.CharExtensions.ToLower(System.Char)">
            <summary>
            Converts <paramref name="value"/> to lower case
            </summary>
            <returns>
            <paramref name="value"/> converted to lower case
            </returns>
        </member>
        <member name="M:GSF.CharExtensions.ToUpper(System.Char)">
            <summary>
            Converts <paramref name="value"/> to upper case
            </summary>
            <returns>
            <paramref name="value"/> converted to upper case
            </returns>
        </member>
        <member name="M:GSF.CharExtensions.IsHex(System.Char)">
            <summary>
            Returns true if char is hexadecimal digit.
            </summary>
            <param name="value">The character to be tested.</param>
            <returns>true if char is hexadecimal digit; false otherwise</returns>
        </member>
        <member name="M:GSF.CharExtensions.ConvertHexToInt(System.Char)">
            <summary>
            Converts a hexadecimal character to the integer equivalent.
            </summary>
            <param name="value">A valid hexadecimal character.</param>
            <returns>The integer equivalent of the given hexadecimal character.</returns>
        </member>
        <member name="M:GSF.CharExtensions.ConvertHexToBitArray(System.Char)">
            <summary>
            Converts a hexadecimal character to a 4-bit integer equivalent.
            </summary>
            <param name="value">A valid hexadecimal character.</param>
            <returns>A 4-bit <see cref="T:System.Collections.BitArray"/> representing the integer equivalent of the given hexadecimal character.</returns>
        </member>
        <member name="T:GSF.ComplexNumber">
            <summary>
            Represents a complex number.
            </summary>
        </member>
        <member name="M:GSF.ComplexNumber.#ctor(System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.ComplexNumber"/> from the given rectangular values. 
            </summary>
            <param name="real">The real component of the <see cref="T:GSF.ComplexNumber"/>.</param>
            <param name="imaginary">The imaginary component of the <see cref="T:GSF.ComplexNumber"/>.</param>
        </member>
        <member name="M:GSF.ComplexNumber.#ctor(GSF.Units.Angle,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.ComplexNumber"/> from the given polar values.
            </summary>
            <param name="angle">The <see cref="P:GSF.ComplexNumber.Angle"/> component, in radians, of the <see cref="T:GSF.ComplexNumber"/>.</param>
            <param name="magnitude">The magnitude (or absolute value) component of the <see cref="T:GSF.ComplexNumber"/>.</param>
        </member>
        <member name="M:GSF.ComplexNumber.#ctor(GSF.ComplexNumber)">
            <summary>
            Creates a <see cref="T:GSF.ComplexNumber"/> from the given <see cref="T:GSF.ComplexNumber"/>.
            </summary>
            <param name="z"><see cref="T:GSF.ComplexNumber"/> to be copied.</param>
        </member>
        <member name="P:GSF.ComplexNumber.Real">
            <summary>
            Gets or sets the real component of this <see cref="T:GSF.ComplexNumber"/>.
            </summary>
        </member>
        <member name="P:GSF.ComplexNumber.Imaginary">
            <summary>
            Gets or sets the imaginary component of this <see cref="T:GSF.ComplexNumber"/>.
            </summary>
        </member>
        <member name="P:GSF.ComplexNumber.Magnitude">
            <summary>
            Gets or sets the magnitude (a.k.a. the modulus or absolute value) of this <see cref="T:GSF.ComplexNumber"/>.
            </summary>
        </member>
        <member name="P:GSF.ComplexNumber.Angle">
            <summary>
            Gets or sets the <see cref="P:GSF.ComplexNumber.Angle"/> (a.k.a. the argument) in radians of this <see cref="T:GSF.ComplexNumber"/>.
            </summary>
        </member>
        <member name="P:GSF.ComplexNumber.Conjugate">
            <summary>
            Gets the complex conjugate of this <see cref="T:GSF.ComplexNumber"/>.
            </summary>
        </member>
        <member name="P:GSF.ComplexNumber.AllAssigned">
            <summary>
            Gets a boolean value indicating if each composite value of the <see cref="T:GSF.ComplexNumber"/> (i.e., real and imaginary) has been assigned a value.
            </summary>
            <returns>True, if all composite values have been assigned a value; otherwise, false.</returns>
        </member>
        <member name="P:GSF.ComplexNumber.NoneAssigned">
            <summary>
            Gets a boolean value indicating if each composite value of the <see cref="T:GSF.ComplexNumber"/> (i.e., real and imaginary) has not been assigned a value.
            </summary>
            <returns>True, if none of the composite values have been assigned a value; otherwise, false.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if <paramref name="obj"/> is an instance of ComplexNumber and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.ComplexNumber.Equals(GSF.ComplexNumber)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified ComplexNumber value.
            </summary>
            <param name="obj">A <see cref="T:GSF.ComplexNumber"/> to compare to this instance.</param>
            <returns>
            True if <paramref name="obj"/> has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.ComplexNumber.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.ComplexNumber.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this <see cref="T:GSF.ComplexNumber"/> instance.
            </returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Implicit(System.Double)~GSF.ComplexNumber">
            <summary>
            Implicitly converts a <see cref="T:System.Double"/> to a <see cref="T:GSF.ComplexNumber"/>.
            </summary>
            <param name="value">Operand.</param>
            <returns>ComplexNumber representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Implicit(GSF.ComplexNumber)~System.Numerics.Complex">
            <summary>
            Implicitly converts a <see cref="T:GSF.ComplexNumber"/> to a .NET <see cref="T:System.Numerics.Complex"/> value.
            </summary>
            <param name="value">Operand.</param>
            <returns>Complex representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Implicit(System.Numerics.Complex)~GSF.ComplexNumber">
            <summary>
            Implicitly converts a .NET <see cref="T:System.Numerics.Complex"/> value to a <see cref="T:GSF.ComplexNumber"/>.
            </summary>
            <param name="value">Operand.</param>
            <returns>Complex representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Equality(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean representing the result of the addition operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Inequality(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean representing the result of the inequality operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_UnaryNegation(GSF.ComplexNumber)">
            <summary>
            Returns the negated value.
            </summary>
            <param name="z">Left hand operand.</param>
            <returns>ComplexNumber representing the result of the unary negation operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Addition(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the addition operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Subtraction(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the subtraction operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Multiply(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the multiplication operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Division(GSF.ComplexNumber,GSF.ComplexNumber)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the division operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.Pow(GSF.ComplexNumber,System.Double)">
            <summary>
             Returns specified <see cref="T:GSF.ComplexNumber"/> raised to the specified power.
            </summary>
            <param name="z">Complex number to be raised to power <paramref name="y"/>.</param>
            <param name="y">Power to raise <see cref="T:GSF.ComplexNumber"/> <paramref name="z"/>.</param>
             <returns>ComplexNumber representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.op_Exponent(GSF.ComplexNumber,System.Double)">
             <summary>
             Returns result of first value raised to power of second value.
             </summary>
            <param name="z">Complex number to be raised to power <paramref name="y"/>.</param>
            <param name="y">Power to raise <see cref="T:GSF.ComplexNumber"/> <paramref name="z"/>.</param>
             <returns>ComplexNumber representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.ComplexNumber.Parse(System.String)">
            <summary>
            Converts the string representation of a complex number to its complex number equivalent.
            </summary>
            <param name="str">A string that contains a number to convert.</param>
            <returns>A complex number that is equivalent to the numeric value or symbols specified in <paramref name="str"/>.</returns>
        </member>
        <member name="T:GSF.DateTimeRounding">
            <summary>
            Responsible for rounding measurements to their nearest time bucket.
            For example: a 30 sample per second value of 5.1666766 would round to 5.1666667
            </summary>
        </member>
        <member name="M:GSF.DateTimeRounding.Round(System.DateTime)">
            <summary>
            Rounds the specified timestamp
            </summary>
            <param name="time"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.DateTimeRounding.Round(System.Int64)">
            <summary>
            Rounds the specified timestamp
            </summary>
            <param name="time"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.DateTimeRounding.Create(System.Int32)">
            <summary>
            Creates a <see cref="T:GSF.DateTimeRounding"/>
            </summary>
            <param name="samplesPerSecond">the samples per second for the rounding algorithm</param>
            <returns></returns>
        </member>
        <member name="T:GSF.EmptyArray`1">
            <summary>
            Contains an empty array object.
            </summary>
            <typeparam name="T">the type of the empty array.</typeparam>
        </member>
        <member name="F:GSF.EmptyArray`1.Empty">
            <summary>
            An empty array of the specified type.
            </summary>
        </member>
        <member name="T:GSF.Encoding7Bit">
            <summary>
            Contains 7 bit encoding functions
            </summary>
        </member>
        <member name="M:GSF.Encoding7Bit.GetSizeInt15(System.Int16)">
            <summary>
            Gets the number of bytes required to write the provided value.
            </summary>
            <param name="value1">the value to measure</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureInt15(System.Byte*)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Measure15(System.Byte*,System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Measure15(System.Byte[],System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.WriteInt15(System.Byte*,System.Int16)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="value1">the value to write. Cannot be negative</param>
            <returns>The number of bytes required to store the value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.WriteInt15(System.Byte*,System.Int32@,System.Int16)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.WriteInt15(System.Byte[],System.Int32@,System.Int16)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.WriteInt15(System.Action{System.Byte},System.Int16)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">a delegate to a write byte method</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadInt15(System.Byte*,System.Int32@)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadInt15(System.Byte[],System.Int32@)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadInt15(System.IO.Stream)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">A stream to read from.</param>
            <returns>the value</returns>
            <remarks>
            This method will check for the end of the stream
            </remarks>
            <exception cref="T:System.IO.EndOfStreamException">Occurs if the end of the stream was reached.</exception>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadInt15(System.Func{System.Byte})">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">A delegate where to read the next byte</param>
            <returns>the value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.GetSize(System.UInt32)">
            <summary>
            Gets the number of bytes required to write the provided value.
            </summary>
            <param name="value1">the value to measure</param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt32(System.Byte*)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt32(System.Byte*,System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt32(System.Byte[],System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte*,System.UInt32)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="value1">the value to write</param>
            <returns>The number of bytes required to store the value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte*,System.Int32@,System.UInt32)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte[],System.Int32@,System.UInt32)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Action{System.Byte},System.UInt32)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">a delegate to a write byte method</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt32(System.Byte*,System.Int32@)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt32(System.Byte[],System.Int32@)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt32(System.IO.Stream)">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">A stream to read from.</param>
            <returns>the value</returns>
            <remarks>
            This method will check for the end of the stream
            </remarks>
            <exception cref="T:System.IO.EndOfStreamException">Occurs if the end of the stream was reached.</exception>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt32(System.Func{System.Byte})">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">A delegate where to read the next byte</param>
            <returns>the value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.GetSize(System.UInt64)">
            <summary>
            Gets the number of bytes required to write the provided value.
            </summary>
            <param name="value1">the value to measure</param>
            <returns>The number of bytes needed to store the provided value.</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt64(System.Byte*)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt64(System.Byte*,System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.MeasureUInt64(System.Byte[],System.Int32)">
            <summary>
            Gets the number of bytes for the supplied value in the stream.
            </summary>
            <param name="stream"></param>
            <param name="position"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte*,System.UInt64)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="value1">the value to write</param>
            <returns>The number of bytes required to store the value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte*,System.Int32@,System.UInt64)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Byte[],System.Int32@,System.UInt64)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">a reference parameter to the starting position. 
            This field will be updated. when the function returns</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.Write(System.Action{System.Byte},System.UInt64)">
            <summary>
            Writes the 7-bit encoded value to the provided stream.
            </summary>
            <param name="stream">a delegate to a write byte method</param>
            <param name="value1">the value to write</param>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt64(System.Byte*,System.Int32@)">
            <summary>
            Reads a 7-bit encoded ulong.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt64(System.Byte[],System.Int32@)">
            <summary>
            Reads a 7-bit encoded ulong.
            </summary>
            <param name="stream">the stream</param>
            <param name="position">the position in the stream. Position will be updated after reading</param>
            <returns>The value</returns>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt64(System.IO.Stream)">
            <summary>
            Reads a 7-bit encoded ulong.
            </summary>
            <param name="stream">A stream to read from.</param>
            <returns>the value</returns>
            <remarks>
            This method will check for the end of the stream
            </remarks>
            <exception cref="T:System.IO.EndOfStreamException">Occurs if the end of the stream was reached.</exception>
        </member>
        <member name="M:GSF.Encoding7Bit.ReadUInt64(System.Func{System.Byte})">
            <summary>
            Reads a 7-bit encoded uint.
            </summary>
            <param name="stream">A delegate where to read the next byte</param>
            <returns>the value</returns>
        </member>
        <member name="T:GSF.EnumExtensions">
            <summary>
            Defines extension methods related to enumerations.
            </summary>
        </member>
        <member name="M:GSF.EnumExtensions.GetDescription(System.Enum,System.Boolean)">
            <summary>
            Retrieves the description of the value that this <see cref="T:System.Enum"/> represents extracted from the <see cref="T:System.ComponentModel.DescriptionAttribute"/>, or the enumeration name
            if no description is available.
            </summary>
            <param name="enumeration"><see cref="T:System.Enum"/> to operate on.</param>
            <param name="defaultToName">When <c>true</c>, return enum name when no description attribute exists; otherwise, return <c>null</c>.</param>
            <returns>
            Description of the <see cref="T:System.Enum"/> if specified, otherwise the <see cref="T:System.String"/> representation of this <paramref name="enumeration"/> or
            <c>null</c> if <paramref name="defaultToName"/> is <c>false</c>.</returns>
        </member>
        <member name="M:GSF.EnumExtensions.GetEnumValueOrDefault``1(System.Object,System.Object)">
            <summary>
            Gets the enumeration constant for this value, if defined in the enumeration, or a default value.
            </summary>
            <typeparam name="T">Type of enumeration.</typeparam>
            <param name="value">Value to attempt to return from enumeration.</param>
            <param name="defaultValue">Value to return if enumeration value is not found.</param>
            <returns>Enumeration value specified, if found, or a default value.</returns>
            <remarks>
            If a default value is not defined, first enumeration value will be used.
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">
            <typeparamref name="T"/> is not an enum. -or-
            The type of <paramref name="value"/> is not of type <typeparamref name="T"/>. -or-
            The type of <paramref name="value"/> is not an underlying type of <typeparamref name="T"/>.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="value"/> is not type <see cref="T:System.SByte"/>, <see cref="T:System.Int16"/>,
            <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>, <see cref="T:System.Byte"/>, <see cref="T:System.UInt16"/>,
            <see cref="T:System.UInt32"/>, or <see cref="T:System.UInt64"/>, or <see cref="T:System.String"/>.
            </exception>
        </member>
        <member name="M:GSF.EnumExtensions.GetEnumValueOrDefault(System.Object,System.Type,System.Object)">
            <summary>
            Gets the enumeration constant for value, if defined in the enumeration, or a default value.
            </summary>
            <param name="value">Value to attempt to return from enumeration.</param>
            <param name="type"><see cref="T:System.Type"/> of the enumeration.</param>
            <param name="defaultValue">Value to return if enumeration value is not found.</param>
            <returns>Enumeration value specified, if found, or a default value.</returns>
            <remarks>
            If a default value is not defined, first enumeration value will be used.
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="type"/> or <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">
            <paramref name="type"/> is not an enum. -or-
            The type of <paramref name="value"/> is not of type <paramref name="type"/>. -or-
            The type of <paramref name="value"/> is not an underlying type of <paramref name="type"/>.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            <paramref name="value"/> is not type <see cref="T:System.SByte"/>, <see cref="T:System.Int16"/>,
            <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>, <see cref="T:System.Byte"/>, <see cref="T:System.UInt16"/>,
            <see cref="T:System.UInt32"/>, or <see cref="T:System.UInt64"/>, or <see cref="T:System.String"/>.
            </exception>
        </member>
        <member name="M:GSF.EnumExtensions.GetEnumValueByDescription(System.String,System.Type,System.Boolean)">
            <summary>
            Gets the enumeration of the specified <paramref name="type"/> whose description matches this <paramref name="description"/>.
            </summary>
            <param name="description">Description to be used for lookup of the enumeration.</param>
            <param name="type"><see cref="T:System.Type"/> of the enumeration.</param>
            <param name="ignoreCase"><c>true</c> to ignore case during the comparison; otherwise, <c>false</c>.</param>
            <returns>An enumeration of the specified <paramref name="type"/> if a match is found, otherwise null.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="type"/> is not an enumeration.</exception>
        </member>
        <member name="M:GSF.EnumExtensions.GetEnumValueByName(System.String,System.Type,System.Boolean)">
            <summary>
            Gets the enumeration value with the specified name.
            </summary>
            <param name="name">Name to search for.</param>
            <param name="type"><see cref="T:System.Type"/> of the enumeration.</param>
            <param name="ignoreCase"><c>true</c> to ignore case during the comparison; otherwise, <c>false</c>.</param>
            <returns>Specific value of the enumerated constant in terms of its underlying type associated with the specified <paramref name="name"/>, or <c>null</c>
            if no matching enumerated value was found.</returns>
        </member>
        <member name="M:GSF.EnumExtensions.GetFormattedName(System.Enum)">
            <summary>
            Retrieves a formatted name of the value that this <see cref="T:System.Enum"/> represents for visual display.
            </summary>
            <param name="enumeration"><see cref="T:System.Enum"/> to operate on.</param>
            <returns>Formatted enumeration name of the specified value for visual display.</returns>
        </member>
        <member name="T:GSF.EventArgs`1">
            <summary>
            Represents a generic event arguments class with one data argument.
            </summary>
            <typeparam name="T">Type of data argument for this event arguments instance.</typeparam>
        </member>
        <member name="F:GSF.EventArgs`1.Argument">
            <summary>
            Gets or sets the data argument for the event using <see cref="T:GSF.EventArgs`1"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`1"/> class.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`1"/> class.
            </summary>
            <param name="argument">The argument data for the event.</param>
        </member>
        <member name="T:GSF.EventArgs`2">
            <summary>
            Represents a generic event arguments class with two data arguments.
            </summary>
            <typeparam name="T1">The type of the first data argument for this event arguments instance.</typeparam>
            <typeparam name="T2">The type of the second data argument for this event arguments instance.</typeparam>
        </member>
        <member name="F:GSF.EventArgs`2.Argument1">
            <summary>
            Gets or sets the first data argument for the event using <see cref="T:GSF.EventArgs`2"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`2.Argument2">
            <summary>
            Gets or sets the second data argument for the event using <see cref="T:GSF.EventArgs`2"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`2"/> class.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`2.#ctor(`0,`1)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`2"/> class.
            </summary>
            <param name="argument1">The first data argument for the event.</param>
            <param name="argument2">The second data argument for the event.</param>
        </member>
        <member name="T:GSF.EventArgs`3">
            <summary>
            Represents a generic event arguments class with three data arguments.
            </summary>
            <typeparam name="T1">The type of the first data argument for this event arguments instance.</typeparam>
            <typeparam name="T2">The type of the second data argument for this event arguments instance.</typeparam>
            <typeparam name="T3">The type of the third data argument for this event arguments instance.</typeparam>
        </member>
        <member name="F:GSF.EventArgs`3.Argument1">
            <summary>
            Gets or sets the first data argument for the event using <see cref="T:GSF.EventArgs`3"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`3.Argument2">
            <summary>
            Gets or sets the second data argument for the event using <see cref="T:GSF.EventArgs`3"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`3.Argument3">
            <summary>
            Gets or sets the third data argument for the event using <see cref="T:GSF.EventArgs`3"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`3.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`3"/> class.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`3.#ctor(`0,`1,`2)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`3"/> class.
            </summary>
            <param name="argument1">The first data argument for the event.</param>
            <param name="argument2">The second data argument for the event.</param>
            <param name="argument3">The third data argument for the event.</param>
        </member>
        <member name="T:GSF.EventArgs`4">
            <summary>
            Represents a generic event arguments class with three data arguments.
            </summary>
            <typeparam name="T1">The type of the first data argument for this event arguments instance.</typeparam>
            <typeparam name="T2">The type of the second data argument for this event arguments instance.</typeparam>
            <typeparam name="T3">The type of the third data argument for this event arguments instance.</typeparam>
            <typeparam name="T4">The type of the fourth data argument for this event arguments instance.</typeparam>
        </member>
        <member name="F:GSF.EventArgs`4.Argument1">
            <summary>
            Gets or sets the first data argument for the event using <see cref="T:GSF.EventArgs`4"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`4.Argument2">
            <summary>
            Gets or sets the second data argument for the event using <see cref="T:GSF.EventArgs`4"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`4.Argument3">
            <summary>
            Gets or sets the third data argument for the event using <see cref="T:GSF.EventArgs`4"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="F:GSF.EventArgs`4.Argument4">
            <summary>
            Gets or sets the fourth data argument for the event using <see cref="T:GSF.EventArgs`4"/> for its <see cref="T:System.EventArgs"/>.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`4.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`4"/> class.
            </summary>
        </member>
        <member name="M:GSF.EventArgs`4.#ctor(`0,`1,`2,`3)">
            <summary>
            Initializes a new instance of the <see cref="T:GSF.EventArgs`3"/> class.
            </summary>
            <param name="argument1">The first data argument for the event.</param>
            <param name="argument2">The second data argument for the event.</param>
            <param name="argument3">The third data argument for the event.</param>
            <param name="argument4">The fourth data argument for the event.</param>
        </member>
        <member name="T:GSF.GuidExtensions">
            <summary>
            Extension methods for <see cref="T:System.Guid"/>.
            </summary>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcBytes(System.Guid,System.Byte[],System.Int32)">
            <summary>
            Encodes a <see cref="T:System.Guid"/> following RFC 4122.
            </summary>
            <param name="guid">The <see cref="T:System.Guid"/> to serialize.</param>
            <param name="buffer">Destination buffer to hold serialized <paramref name="guid"/>.</param>
            <param name="startingIndex">Starting index in <paramref name="buffer"/>.</param>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcBytes(System.Guid,System.Byte*)">
            <summary>
            Encodes a <see cref="T:System.Guid"/> following RFC 4122.
            </summary>
            <param name="guid">The <see cref="T:System.Guid"/> to serialize.</param>
            <param name="buffer">Destination buffer to hold serialized <paramref name="guid"/>.</param>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcBytes(System.Guid)">
            <summary>
            Encodes a <see cref="T:System.Guid"/> following RFC 4122.
            </summary>
            <param name="guid"><see cref="T:System.Guid"/> to serialize.</param>
            <returns>A <see cref="T:System.Byte"/> array that represents a big-endian encoded <see cref="T:System.Guid"/>.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcGuid(System.Byte[])">
            <summary>
            Decodes a <see cref="T:System.Guid"/> following RFC 4122
            </summary>
            <param name="buffer">Buffer containing a serialized big-endian encoded <see cref="T:System.Guid"/>.</param>
            <returns><see cref="T:System.Guid"/> deserialized from <paramref name="buffer"/>.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcGuid(System.Byte*)">
            <summary>
            Decodes a <see cref="T:System.Guid"/> following RFC 4122
            </summary>
            <param name="buffer">Buffer containing a serialized big-endian encoded <see cref="T:System.Guid"/>.</param>
            <returns><see cref="T:System.Guid"/> deserialized from <paramref name="buffer"/>.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToRfcGuid(System.Byte[],System.Int32)">
            <summary>
            Decodes a <see cref="T:System.Guid"/> following RFC 4122
            </summary>
            <param name="buffer">Buffer containing a serialized big-endian encoded <see cref="T:System.Guid"/>.</param>
            <param name="startingIndex">Starting index in <paramref name="buffer"/>.</param>
            <returns><see cref="T:System.Guid"/> deserialized from <paramref name="buffer"/>.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToLittleEndianBytes(System.Guid)">
            <summary>
            Gets the little endian encoded bytes.
            </summary>
            <param name="guid">the <see cref="T:System.Guid"/> to serialize</param>
            <returns>A <see cref="T:System.Byte"/>[] that represents a big endian encoded Guid.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.CopyLittleEndianBytes(System.Guid,System.Byte[],System.Int32)">
            <summary>
            Writes a Guid in Little Endian byte order.
            </summary>
            <param name="guid">the <see cref="T:System.Guid"/> to serialize</param>
            <param name="buffer">where to store the <paramref name="guid"/></param>
            <param name="startingIndex">the starting index in <paramref name="buffer"/></param>
        </member>
        <member name="M:GSF.GuidExtensions.CopyLittleEndianBytes(System.Guid,System.Byte*)">
            <summary>
            Writes a Guid in Little Endian byte order.
            </summary>
            <param name="guid">the <see cref="T:System.Guid"/> to serialize</param>
            <param name="buffer">where to store the <paramref name="guid"/></param>
        </member>
        <member name="M:GSF.GuidExtensions.ToLittleEndianGuid(System.Byte[])">
            <summary>
            Reads a Guid in Little Endian byte order.
            </summary>
            <param name="buffer">where to read the <see cref="T:System.Guid"/>.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToLittleEndianGuid(System.Byte[],System.Int32)">
            <summary>
            Mimicks the encoding that was present in LittleEndianOrder on a Little Endian CPU. 
            </summary>
            <param name="buffer">where to read the <see cref="T:System.Guid"/>.</param>
            <param name="startingIndex">the starting index in <paramref name="buffer"/></param>
            <returns></returns>
        </member>
        <member name="M:GSF.GuidExtensions.ToLittleEndianGuid(System.Byte*)">
            <summary>
            Reads a Guid in Little Endian byte order.
            </summary>
            <param name="buffer">where to read the <see cref="T:System.Guid"/>.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.GuidExtensions.__ToBigEndianOrderBytes(System.Guid)">
            <summary>
            Mimicks the encoding that was present in BigEndianOrder. 
            </summary>
            <param name="guid">the <see cref="T:System.Guid"/> to serialize</param>
            <returns>A <see cref="T:System.Byte"/>[] that represents a big endian encoded Guid.</returns>
        </member>
        <member name="M:GSF.GuidExtensions.__ToBigEndianOrderBytes(System.Guid,System.Byte[],System.Int32)">
            <summary>
            Mimicks the encoding that was present in BigEndianOrder. 
            </summary>
            <param name="guid">the <see cref="T:System.Guid"/> to serialize</param>
            <param name="buffer">where to store the <paramref name="guid"/></param>
            <param name="startingIndex">the starting index in <paramref name="buffer"/></param>
        </member>
        <member name="M:GSF.GuidExtensions.__ToBigEndianOrderGuid(System.Byte[])">
            <summary>
            Mimicks the encoding that was present in BigEndianOrder. 
            </summary>
            <param name="buffer">where to read the <see cref="T:System.Guid"/>.</param>
            <returns></returns>
        </member>
        <member name="M:GSF.GuidExtensions.__ToBigEndianOrderGuid(System.Byte[],System.Int32)">
            <summary>
            Mimicks the encoding that was present in BigEndianOrder. 
            </summary>
            <param name="buffer">where to read the <see cref="T:System.Guid"/>.</param>
            <param name="startingIndex">the starting index in <paramref name="buffer"/></param>
            <returns></returns>
        </member>
        <member name="T:GSF.Immutable.IImmutableObject">
            <summary>
            Represents an object that can be configured as read only and thus made immutable.  
            </summary>
        </member>
        <member name="P:GSF.Immutable.IImmutableObject.IsReadOnly">
            <summary>
            Get/Sets if a class is readonly.  Once it has been set as readonly, it is immutable and must be cloned to me modified.
            </summary>
        </member>
        <member name="M:GSF.Immutable.IImmutableObject.CloneEditable">
            <summary>
            Makes a clone of this object and allows it to be edited.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.IImmutableObject.CloneReadonly">
            <summary>
            Makes a readonly clone of this object. Returns the same object if it is already marked as readonly.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Immutable.IImmutableObject`1">
            <summary>
            Represents an object that can be configured as read only and thus made immutable.  
            The origional contents of this class will not be editable once <see cref="P:GSF.Immutable.IImmutableObject.IsReadOnly"/> is set to true.
            In order to modify the contest of this object, a clone of the object must be created with <see cref="M:GSF.Immutable.IImmutableObject`1.CloneEditable"/>.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Immutable.IImmutableObject`1.CloneEditable">
            <summary>
            Makes a clone of this object and allows it to be edited.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.IImmutableObject`1.CloneReadonly">
            <summary>
            Makes a readonly clone of this object. Returns the same object if it is already marked as readonly.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Immutable.ImmutableArray`1">
            <summary>
            A array that can be modified until <see cref="P:GSF.Immutable.ImmutableObjectBase`1.IsReadOnly"/> is set to true. Once this occurs,
            the array itself can no longer be modified.  Remember, this does not cause objects contained in this class to be Immutable 
            unless they implement <see cref="T:GSF.Immutable.IImmutableObject"/>.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.#ctor(System.Int32,System.Func{`0,`0})">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Func{`0,`0})">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.GetEnumerator">
            <summary>Returns an enumerator that iterates through the collection.</summary>
            <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator that iterates through a collection.</summary>
            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#Generic#ICollection{T}#Add(`0)">
            <summary>Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#Generic#ICollection{T}#Clear">
            <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only. </exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.Contains(`0)">
            <summary>Determines whether the <see cref="T:System.Collections.Generic.ICollection`1" /> contains a specific value.</summary>
            <returns>true if <paramref name="item" /> is found in the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false.</returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.CopyTo(`0[],System.Int32)">
            <summary>Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.</summary>
            <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#Generic#ICollection{T}#Remove(`0)">
            <summary>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>true if <paramref name="item" /> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false. This method also returns false if <paramref name="item" /> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="P:GSF.Immutable.ImmutableArray`1.Count">
            <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.SetMembersAsReadOnly">
            <summary>
            Sets members as readonly 
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.CloneMembersAsEditable">
            <summary>
            CloneMembersAsEditable
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.IndexOf(`0)">
            <summary>Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1" />.</summary>
            <returns>The index of <paramref name="item" /> if found in the list; otherwise, -1.</returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#Generic#IList{T}#Insert(System.Int32,`0)">
            <summary>Inserts an item to the <see cref="T:System.Collections.Generic.IList`1" /> at the specified index.</summary>
            <param name="index">The zero-based index at which <paramref name="item" /> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1" />.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
              <paramref name="index" /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableArray`1.System#Collections#Generic#IList{T}#RemoveAt(System.Int32)">
            <summary>Removes the <see cref="T:System.Collections.Generic.IList`1" /> item at the specified index.</summary>
            <param name="index">The zero-based index of the item to remove.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
              <paramref name="index" /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        </member>
        <member name="P:GSF.Immutable.ImmutableArray`1.Item(System.Int32)">
            <summary>Gets or sets the element at the specified index.</summary>
            <returns>The element at the specified index.</returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">
              <paramref name="index" /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        </member>
        <member name="T:GSF.Immutable.ImmutableDictionary`2">
            <summary>
            A dictionary that can be modified until <see cref="P:GSF.Immutable.ImmutableObjectBase`1.IsReadOnly"/> is set to true. Once this occurs,
            the dictionary itself can no longer be modified.  Remember, this does not cause objects contained in this class to be Immutable 
            unless they implement <see cref="T:GSF.Immutable.IImmutableObject"/>.
            </summary>
            <typeparam name="TKey"></typeparam>
            <typeparam name="TValue"></typeparam>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableDictionary`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.#ctor(System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableDictionary`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.#ctor(System.Collections.Generic.Dictionary{`0,`1})">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableDictionary`2"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator that iterates through a collection.</summary>
            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.Clear">
            <summary>Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only. </exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>Determines whether the <see cref="T:System.Collections.Generic.ICollection`1" /> contains a specific value.</summary>
            <returns>true if <paramref name="item" /> is found in the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false.</returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
            <summary>Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.</summary>
            <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
            <summary>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>true if <paramref name="item" /> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false. This method also returns false if <paramref name="item" /> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="P:GSF.Immutable.ImmutableDictionary`2.Count">
            <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.SetMembersAsReadOnly">
            <summary>
            SetMembersAsReadOnly
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.CloneMembersAsEditable">
            <summary>
            CloneMembersAsEditable
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.ContainsKey(`0)">
            <summary>Determines whether the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the specified key.</summary>
            <returns>true if the <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the key; otherwise, false.</returns>
            <param name="key">The key to locate in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="key" /> is null.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.Add(`0,`1)">
            <summary>Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
            <param name="key">The object to use as the key of the element to add.</param>
            <param name="value">The object to use as the value of the element to add.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="key" /> is null.</exception>
            <exception cref="T:System.ArgumentException">An element with the same key already exists in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IDictionary`2" /> is read-only.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.Remove(`0)">
            <summary>Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
            <returns>true if the element is successfully removed; otherwise, false.  This method also returns false if <paramref name="key" /> was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
            <param name="key">The key of the element to remove.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="key" /> is null.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IDictionary`2" /> is read-only.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableDictionary`2.TryGetValue(`0,`1@)">
            <summary>Gets the value associated with the specified key.</summary>
            <returns>true if the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" /> contains an element with the specified key; otherwise, false.</returns>
            <param name="key">The key whose value to get.</param>
            <param name="value">When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the <paramref name="value" /> parameter. This parameter is passed uninitialized.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="key" /> is null.</exception>
        </member>
        <member name="P:GSF.Immutable.ImmutableDictionary`2.Item(`0)">
            <summary>Gets or sets the element with the specified key.</summary>
            <returns>The element with the specified key.</returns>
            <param name="key">The key of the element to get or set.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="key" /> is null.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and <paramref name="key" /> is not found.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IDictionary`2" /> is read-only.</exception>
        </member>
        <member name="P:GSF.Immutable.ImmutableDictionary`2.Keys">
            <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
            <returns>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the keys of the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
        </member>
        <member name="P:GSF.Immutable.ImmutableDictionary`2.Values">
            <summary>Gets an <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2" />.</summary>
            <returns>An <see cref="T:System.Collections.Generic.ICollection`1" /> containing the values in the object that implements <see cref="T:System.Collections.Generic.IDictionary`2" />.</returns>
        </member>
        <member name="T:GSF.Immutable.ImmutableList`1">
            <summary>
            A list that can be modified until <see cref="P:GSF.Immutable.ImmutableObjectBase`1.IsReadOnly"/> is set to true. Once this occurs,
            the list itself can no longer be modified.  Remember, this does not cause objects contained in this class to be Immutable 
            unless they implement <see cref="T:GSF.Immutable.IImmutableObject"/>.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.#ctor(System.Func{`0,`0})">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableList`1"/>.
            </summary>
            <param name="formatter">Allows items to be formatted when inserted into a list.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.#ctor(System.Int32,System.Func{`0,`0})">
            <summary>
            Creates a new <see cref="T:GSF.Immutable.ImmutableList`1"/>.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.GetEnumerator">
            <summary>Returns an enumerator that iterates through the collection.</summary>
            <returns>A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.</returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Returns an enumerator that iterates through a collection.</summary>
            <returns>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.Add(`0)">
            <summary>Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1" /> is read-only.</exception>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the elements of the specified collection to the end of the <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="collection">The collection whose elements should be added to the end of the <see cref="T:System.Collections.Generic.List`1"/>. 
            The collection itself cannot be null, but it can contain elements that are null</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.Clear">
            <summary>Removes all items from the collection.</summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.Contains(`0)">
            <summary>Determines whether the <see cref="T:System.Collections.Generic.ICollection`1" /> contains a specific value.</summary>
            <returns>true if <paramref name="item" /> is found in the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false.</returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.CopyTo(`0[],System.Int32)">
            <summary>Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.</summary>
            <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.Remove(`0)">
            <summary>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>true if <paramref name="item" /> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false. This method also returns false if <paramref name="item" /> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="P:GSF.Immutable.ImmutableList`1.Count">
            <summary>Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</summary>
            <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1" />.</returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.SetMembersAsReadOnly">
            <summary>
            Requests that member fields be set to readonly. 
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.CloneMembersAsEditable">
            <summary>
            Request that member fields be cloned and marked as editable.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.IndexOf(`0)">
            <summary>Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1" />.</summary>
            <returns>The index of <paramref name="item" /> if found in the list; otherwise, -1.</returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.Insert(System.Int32,`0)">
            <summary>Inserts an item to the <see cref="T:System.Collections.Generic.IList`1" /> at the specified index.</summary>
            <param name="index">The zero-based index at which <paramref name="item" /> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1" />.</param>
        </member>
        <member name="M:GSF.Immutable.ImmutableList`1.RemoveAt(System.Int32)">
            <summary>Removes the <see cref="T:System.Collections.Generic.IList`1" /> item at the specified index.</summary>
            <param name="index">The zero-based index of the item to remove.</param>
        </member>
        <member name="P:GSF.Immutable.ImmutableList`1.Item(System.Int32)">
            <summary>Gets or sets the element at the specified index.</summary>
            <returns>The element at the specified index.</returns>
            <param name="index">The zero-based index of the element to get or set.</param>
        </member>
        <member name="T:GSF.Immutable.ImmutableObjectAutoBase`1">
            <summary>
            Represents an object that can be configured as read only and thus made immutable.  
            This class will automatically clone any field that implements <see cref="T:GSF.Immutable.IImmutableObject"/>
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectAutoBase`1.SetMembersAsReadOnly">
            <summary>
            Requests that member fields be set to readonly. 
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectAutoBase`1.CloneMembersAsEditable">
            <summary>
            Request that member fields be cloned and marked as editable.
            </summary>
        </member>
        <member name="T:GSF.Immutable.ImmutableObjectBase`1">
            <summary>
            Represents an object that can be configured as read only and thus made immutable.  
            The origional contents of this class will not be editable once <see cref="P:GSF.Immutable.ImmutableObjectBase`1.IsReadOnly"/> is set to true.
            In order to modify the contest of this object, a clone of the object must be created with <see cref="M:GSF.Immutable.ImmutableObjectBase`1.CloneEditable"/>.
            </summary>
            <typeparam name="T"></typeparam>
            <remarks>
            For a classes that implement this, all setters should call <see cref="M:GSF.Immutable.ImmutableObjectBase`1.TestForEditable"/> before 
            setting the value. 
            </remarks>
        </member>
        <member name="P:GSF.Immutable.ImmutableObjectBase`1.IsReadOnly">
            <summary>
            Gets/Sets if this class is immutable and thus read only. Once
            setting to readonly, the class becomes immutable.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.TestForEditable">
            <summary>
            Test if the class has been marked as readonly. Throws an exception if editing cannot occur.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.SetMembersAsReadOnly">
            <summary>
            Requests that member fields be set to readonly. 
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.CloneMembersAsEditable">
            <summary>
            Request that member fields be cloned and marked as editable.
            </summary>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.CloneEditable">
            <summary>
            Creates a clone of this class that is editable.
            A clone is always created, even if this class is already editable.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.GSF#Immutable#IImmutableObject#CloneReadonly">
            <summary>
            Makes a readonly clone of this object. Returns the same object if it is already marked as readonly.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.GSF#Immutable#IImmutableObject#CloneEditable">
            <summary>
            Makes a clone of this object and allows it to be edited.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.CloneReadonly">
            <summary>
            Makes a readonly clone of the object.
            If the class is currently marked as readonly, the current instance is returned.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.Immutable.ImmutableObjectBase`1.Clone">
            <summary>
            Returns a clone of this class.
            If the class is marked as readonly, it returns the current instance.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Int24">
            <summary>Represents a 3-byte, 24-bit signed integer.</summary>
            <remarks>
            <para>
            This class behaves like most other intrinsic signed integers but allows a 3-byte, 24-bit integer implementation
            that is often found in many digital-signal processing arenas and different kinds of protocol parsing.  A signed
            24-bit integer is typically used to save storage space on disk where its value range of -8388608 to 8388607 is
            sufficient, but the signed Int16 value range of -32768 to 32767 is too small.
            </para>
            <para>
            This structure uses an Int32 internally for storage and most other common expected integer functionality, so using
            a 24-bit integer will not save memory.  However, if the 24-bit signed integer range (-8388608 to 8388607) suits your
            data needs you can save disk space by only storing the three bytes that this integer actually consumes.  You can do
            this by calling the Int24.GetBytes function to return a three byte binary array that can be serialized to the desired
            destination and then calling the Int24.GetValue function to restore the Int24 value from those three bytes.
            </para>
            <para>
            All the standard operators for the Int24 have been fully defined for use with both Int24 and Int32 signed integers;
            you should find that without the exception Int24 can be compared and numerically calculated with an Int24 or Int32.
            Necessary casting should be minimal and typical use should be very simple - just as if you are using any other native
            signed integer.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Int24.BitMask">
            <summary>High byte bit-mask used when a 24-bit integer is stored within a 32-bit integer. This field is constant.</summary>
        </member>
        <member name="M:GSF.Int24.#ctor(GSF.Int24)">
            <summary>Creates 24-bit signed integer from an existing 24-bit signed integer.</summary>
            <param name="value">24-but signed integer to create new Int24 from.</param>
        </member>
        <member name="M:GSF.Int24.#ctor(System.Int32)">
            <summary>Creates 24-bit signed integer from a 32-bit signed integer.</summary>
            <param name="value">32-bit signed integer to use as new 24-bit signed integer value.</param>
            <exception cref="T:System.OverflowException">Source values outside 24-bit min/max range will cause an overflow exception.</exception>
        </member>
        <member name="M:GSF.Int24.#ctor(System.Byte[],System.Int32)">
            <summary>Creates 24-bit signed integer from three bytes at a specified position in a byte array.</summary>
            <param name="value">An array of bytes.</param>
            <param name="startIndex">The starting position within <paramref name="value"/>.</param>
            <remarks>
            <para>You can use this constructor in-lieu of a System.BitConverter.ToInt24 function.</para>
            <para>Bytes endian order assumed to match that of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is greater than <paramref name="value"/> length.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> length from <paramref name="startIndex"/> is too small to represent a <see cref="T:GSF.UInt24"/>.</exception>
        </member>
        <member name="M:GSF.Int24.GetBytes">
            <summary>Returns the Int24 value as an array of three bytes.</summary>
            <returns>An array of bytes with length 3.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.GetBytes function.</para>
            <para>Bytes will be returned in endian order of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
        </member>
        <member name="M:GSF.Int24.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not an Int32 or Int24.</exception>
        </member>
        <member name="M:GSF.Int24.CompareTo(GSF.Int24)">
            <summary>
            Compares this instance to a specified 24-bit signed integer and returns an indication of their
            relative values.
            </summary>
            <param name="value">An integer to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Int24.CompareTo(System.Int32)">
            <summary>
            Compares this instance to a specified 32-bit signed integer and returns an indication of their
            relative values.
            </summary>
            <param name="value">An integer to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Int24.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of Int32 or Int24 and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Int24.Equals(GSF.Int24)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified Int24 value.
            </summary>
            <param name="obj">An Int24 value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Int24.Equals(System.Int32)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified Int32 value.
            </summary>
            <param name="obj">An Int32 value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Int24.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Int24.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeroes.
            </returns>
        </member>
        <member name="M:GSF.Int24.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Int24.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Int24.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Int24.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its 24-bit signed integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A 24-bit signed integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than Int24.MinValue or greater than Int24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Int24.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its 24-bit signed integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <returns>
            A 24-bit signed integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than Int24.MinValue or greater than Int24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Int24.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its 24-bit
            signed integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A 24-bit signed integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than Int24.MinValue or greater than Int24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Int24.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its 24-bit
            signed integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A 24-bit signed integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than Int24.MinValue or greater than Int24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Int24.TryParse(System.String,GSF.Int24@)">
            <summary>
            Converts the string representation of a number to its 24-bit signed integer equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the 24-bit signed integer value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than Int24.MinValue or greater than Int24.MaxValue.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Int24.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Int24@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            24-bit signed integer equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <param name="result">
            When this method returns, contains the 24-bit signed integer value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than Int24.MinValue or greater than
            Int24.MaxValue. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Int24.GetTypeCode">
            <summary>
            Returns the System.TypeCode for value type System.Int32 (there is no defined type code for an Int24).
            </summary>
            <returns>The enumerated constant, System.TypeCode.Int32.</returns>
            <remarks>
            There is no defined Int24 type code and since an Int24 will easily fit inside an Int32, the
            Int32 type code is returned.
            </remarks>
        </member>
        <member name="M:GSF.Int24.op_Equality(GSF.Int24,GSF.Int24)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean value indicating equality.</returns>
        </member>
        <member name="M:GSF.Int24.op_Equality(System.Int32,GSF.Int24)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean value indicating equality.</returns>
        </member>
        <member name="M:GSF.Int24.op_Equality(GSF.Int24,System.Int32)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean value indicating equality.</returns>
        </member>
        <member name="M:GSF.Int24.op_Inequality(GSF.Int24,GSF.Int24)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating the result of the inequality.</returns>
        </member>
        <member name="M:GSF.Int24.op_Inequality(System.Int32,GSF.Int24)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating the result of the inequality.</returns>
        </member>
        <member name="M:GSF.Int24.op_Inequality(GSF.Int24,System.Int32)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating the result of the inequality.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThan(GSF.Int24,GSF.Int24)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThan(System.Int32,GSF.Int24)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThan(GSF.Int24,System.Int32)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThanOrEqual(GSF.Int24,GSF.Int24)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThanOrEqual(System.Int32,GSF.Int24)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LessThanOrEqual(GSF.Int24,System.Int32)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was less than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThan(GSF.Int24,GSF.Int24)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThan(System.Int32,GSF.Int24)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThan(GSF.Int24,System.Int32)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThanOrEqual(GSF.Int24,GSF.Int24)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than or equal to the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThanOrEqual(System.Int32,GSF.Int24)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than or equal to the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_GreaterThanOrEqual(GSF.Int24,System.Int32)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Boolean indicating whether the left value was greater than or equal to the right value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Enum)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Enum value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.String)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">String value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Decimal)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Decimal value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Double)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Double value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Single)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Float value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Int64)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Long value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(System.Int32)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Integer value that is converted.</param>
            <returns>Int24</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(GSF.Int24)~System.Int16">
            <summary>
            Explicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Int16"/>.
            </summary>
            <param name="value">Int24 value that is converted.</param>
            <returns>Short</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(GSF.Int24)~System.UInt16">
            <summary>
            Explicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.UInt16"/>.
            </summary>
            <param name="value">Int24 value that is converted.</param>
            <returns>Unsigned Short</returns>
        </member>
        <member name="M:GSF.Int24.op_Explicit(GSF.Int24)~System.Byte">
            <summary>
            Explicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Byte"/>.
            </summary>
            <param name="value">Int24 value that is converted.</param>
            <returns>Byte</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(System.Byte)~GSF.Int24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Byte value that is converted to an <see cref="T:GSF.Int24"/>.</param>
            <returns>An <see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(System.Char)~GSF.Int24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Char value that is converted to an <see cref="T:GSF.Int24"/>.</param>
            <returns>An <see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(System.Int16)~GSF.Int24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value">Short value that is converted to an <see cref="T:GSF.Int24"/>.</param>
            <returns>An <see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.Int32">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.Int32"/>.</param>
            <returns>An <see cref="T:System.Int32"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.UInt32">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.UInt32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an unsigned integer.</param>
            <returns>Unsigned integer</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.Int64"/>.</param>
            <returns>An <see cref="T:System.Int64"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.UInt64">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.UInt64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.UInt64"/>.</param>
            <returns>An <see cref="T:System.UInt64"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Double"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.Double"/>.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.Single">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Single"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.Single"/>.</param>
            <returns>A <see cref="T:System.Single"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.Decimal">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.Decimal"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.Decimal"/>.</param>
            <returns>A <see cref="T:System.Decimal"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Implicit(GSF.Int24)~System.String">
            <summary>
            Implicitly converts <see cref="T:GSF.Int24"/> to <see cref="T:System.String"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value that is converted to an <see cref="T:System.String"/>.</param>
            <returns>A <see cref="T:System.String"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_True(GSF.Int24)">
            <summary>
            Returns true if value is not zero.
            </summary>
            <param name="value">Int24 value to test.</param>
            <returns>Boolean to indicate whether the value was not equal to zero.</returns>
        </member>
        <member name="M:GSF.Int24.op_False(GSF.Int24)">
            <summary>
            Returns true if value is equal to zero.
            </summary>
            <param name="value">Int24 value to test.</param>
            <returns>Boolean to indicate whether the value was equal to zero.</returns>
        </member>
        <member name="M:GSF.Int24.op_OnesComplement(GSF.Int24)">
            <summary>
            Returns bitwise complement of value.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value as operand.</param>
            <returns><see cref="T:GSF.Int24"/> as result.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseAnd(GSF.Int24,GSF.Int24)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Int24 as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseAnd(System.Int32,GSF.Int24)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseAnd(GSF.Int24,System.Int32)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseOr(GSF.Int24,GSF.Int24)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Int24 as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseOr(System.Int32,GSF.Int24)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_BitwiseOr(GSF.Int24,System.Int32)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer as result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_ExclusiveOr(GSF.Int24,GSF.Int24)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer value of the resulting exclusive-OR operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_ExclusiveOr(System.Int32,GSF.Int24)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer value of the resulting exclusive-OR operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_ExclusiveOr(GSF.Int24,System.Int32)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer value of the resulting exclusive-OR operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_RightShift(GSF.Int24,System.Int32)">
            <summary>
            Returns value after right shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value to shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> shifts indicates how many places to shift.</param>
            <returns>An <see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_LeftShift(GSF.Int24,System.Int32)">
            <summary>
            Returns value after left shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value to shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> shifts indicates how many places to shift.</param>
            <returns>An <see cref="T:GSF.Int24"/> value.</returns>
        </member>
        <member name="M:GSF.Int24.op_Modulus(GSF.Int24,GSF.Int24)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:GSF.Int24"/> value as numerator.</param>
            <param name="value2"><see cref="T:GSF.Int24"/> value as denominator.</param>
            <returns><see cref="T:GSF.Int24"/> as remainder</returns>
        </member>
        <member name="M:GSF.Int24.op_Modulus(System.Int32,GSF.Int24)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:System.Int32"/> value as numerator.</param>
            <param name="value2"><see cref="T:GSF.Int24"/> value as denominator.</param>
            <returns><see cref="T:System.Int32"/> as remainder</returns>
        </member>
        <member name="M:GSF.Int24.op_Modulus(GSF.Int24,System.Int32)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:GSF.Int24"/> value as numerator.</param>
            <param name="value2"><see cref="T:System.Int32"/> value as denominator.</param>
            <returns><see cref="T:System.Int32"/> as remainder</returns>
        </member>
        <member name="M:GSF.Int24.op_Addition(GSF.Int24,GSF.Int24)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Int24 result of addition.</returns>
        </member>
        <member name="M:GSF.Int24.op_Addition(System.Int32,GSF.Int24)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of addition.</returns>
        </member>
        <member name="M:GSF.Int24.op_Addition(GSF.Int24,System.Int32)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of addition.</returns>
        </member>
        <member name="M:GSF.Int24.op_Subtraction(GSF.Int24,GSF.Int24)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Int24 result of subtraction.</returns>
        </member>
        <member name="M:GSF.Int24.op_Subtraction(System.Int32,GSF.Int24)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of subtraction.</returns>
        </member>
        <member name="M:GSF.Int24.op_Subtraction(GSF.Int24,System.Int32)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of subtraction.</returns>
        </member>
        <member name="M:GSF.Int24.op_Increment(GSF.Int24)">
            <summary>
            Returns incremented value.
            </summary>
            <param name="value">The operand.</param>
            <returns>Int24 result of increment.</returns>
        </member>
        <member name="M:GSF.Int24.op_Decrement(GSF.Int24)">
            <summary>
            Returns decremented value.
            </summary>
            <param name="value">The operand.</param>
            <returns>Int24 result of decrement.</returns>
        </member>
        <member name="M:GSF.Int24.op_Multiply(GSF.Int24,GSF.Int24)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:GSF.Int24"/> value as left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Int24"/> value as right hand operand.</param>
            <returns><see cref="T:GSF.Int24"/> as result</returns>
        </member>
        <member name="M:GSF.Int24.op_Multiply(System.Int32,GSF.Int24)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:System.Int32"/> value as left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Int24"/> value as right hand operand.</param>
            <returns><see cref="T:System.Int32"/> as result</returns>
        </member>
        <member name="M:GSF.Int24.op_Multiply(GSF.Int24,System.Int32)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:GSF.Int24"/> value as left hand operand.</param>
            <param name="value2"><see cref="T:System.Int32"/> value as right hand operand.</param>
            <returns><see cref="T:System.Int32"/> as result</returns>
        </member>
        <member name="M:GSF.Int24.op_Division(GSF.Int24,GSF.Int24)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Int24 result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_Division(System.Int32,GSF.Int24)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_Division(GSF.Int24,System.Int32)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Integer result of operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_Exponent(GSF.Int24,GSF.Int24)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Double that is the result of the operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_Exponent(System.Int32,GSF.Int24)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Double that is the result of the operation.</returns>
        </member>
        <member name="M:GSF.Int24.op_Exponent(GSF.Int24,System.Int32)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">Left hand operand.</param>
            <param name="value2">Right hand operand.</param>
            <returns>Double that is the result of the operation.</returns>
        </member>
        <member name="F:GSF.Int24.MaxValue">
            <summary>
            Represents the largest possible value of an Int24. This field is constant.
            </summary>
        </member>
        <member name="F:GSF.Int24.MinValue">
            <summary>
            Represents the smallest possible value of an Int24. This field is constant.
            </summary>
        </member>
        <member name="M:GSF.Int24.GetBytes(GSF.Int24)">
            <summary>Returns the specified Int24 value as an array of three bytes.</summary>
            <param name="value">Int24 value to convert to bytes.</param>
            <returns>An array of bytes with length 3.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.GetBytes(Int24) function.</para>
            <para>Bytes will be returned in endian order of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
        </member>
        <member name="M:GSF.Int24.GetValue(System.Byte[],System.Int32)">
            <summary>Returns a 24-bit signed integer from three bytes at a specified position in a byte array.</summary>
            <param name="value">An array of bytes.</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.ToInt24 function.</para>
            <para>Bytes endian order assumed to match that of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is greater than <paramref name="value"/> length.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> length from <paramref name="startIndex"/> is too small to represent an <see cref="T:GSF.Int24"/>.</exception>
        </member>
        <member name="T:GSF.LittleEndian">
            <summary>
            Defines a set of little-endian byte order interoperability functions.
            </summary>
            <remarks>
            This class is setup to support aggressive in-lining of little endian conversions. Bounds
            will not be checked as part of this function call, if bounds are violated, the exception
            will be thrown at the <see cref="T:System.Array"/> level.
            </remarks>
        </member>
        <member name="M:GSF.LittleEndian.ToBoolean(System.Byte*)">
            <summary>
            Returns a <see cref="T:System.Boolean"/> value converted from one byte at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes.</param>
            <returns>true if the byte at startIndex in value is nonzero; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToChar(System.Byte*)">
            <summary>
            Returns a Unicode character converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A character formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToDouble(System.Byte*)">
            <summary>
            Returns a double-precision floating point number converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A double-precision floating point number formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt16(System.Byte*)">
            <summary>
            Returns a 16-bit signed integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 16-bit signed integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt24(System.Byte*)">
            <summary>
            Returns a 24-bit signed integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt32(System.Byte*)">
            <summary>
            Returns a 32-bit signed integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 32-bit signed integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt64(System.Byte*)">
            <summary>
            Returns a 64-bit signed integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 64-bit signed integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToSingle(System.Byte*)">
            <summary>
            Returns a single-precision floating point number converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A single-precision floating point number formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt16(System.Byte*)">
            <summary>
            Returns a 16-bit unsigned integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 16-bit unsigned integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt24(System.Byte*)">
            <summary>
            Returns a 24-bit unsigned integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt32(System.Byte*)">
            <summary>
            Returns a 32-bit unsigned integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 32-bit unsigned integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt64(System.Byte*)">
            <summary>
            Returns a 64-bit unsigned integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 64-bit unsigned integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToDecimal(System.Byte*)">
            <summary>
            Returns a 128-bit decimal converted from 16 bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <returns>A 128-bit decimal formed by 16 bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToBoolean(System.Byte[],System.Int32)">
            <summary>
            Returns a <see cref="T:System.Boolean"/> value converted from one byte at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes.</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>true if the byte at startIndex in value is nonzero; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToChar(System.Byte[],System.Int32)">
            <summary>
            Returns a Unicode character converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A character formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToDouble(System.Byte[],System.Int32)">
            <summary>
            Returns a double-precision floating point number converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A double-precision floating point number formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit signed integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit signed integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit signed integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit signed integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit signed integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit signed integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit signed integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit signed integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToSingle(System.Byte[],System.Int32)">
            <summary>
            Returns a single-precision floating point number converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A single-precision floating point number formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt16(System.Byte[],System.Int32)">
            <summary>
            Returns a 16-bit unsigned integer converted from two bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 16-bit unsigned integer formed by two bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt24(System.Byte[],System.Int32)">
            <summary>
            Returns a 24-bit unsigned integer converted from three bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt32(System.Byte[],System.Int32)">
            <summary>
            Returns a 32-bit unsigned integer converted from four bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 32-bit unsigned integer formed by four bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToUInt64(System.Byte[],System.Int32)">
            <summary>
            Returns a 64-bit unsigned integer converted from eight bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="value">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 64-bit unsigned integer formed by eight bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.ToDecimal(System.Byte[],System.Int32)">
            <summary>
            Returns a 128-bit decimal converted from 16 bytes, accounting for target endian-order, at a specified position in a byte array.
            </summary>
            <param name="buffer">An array of bytes (i.e., buffer containing binary image of value).</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 128-bit decimal formed by 16 bytes beginning at startIndex.</returns>
            <exception cref="T:System.ArgumentNullException">value is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">startIndex is less than zero or greater than the length of value minus 1.</exception>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes``1(``0)">
            <summary>
            Returns the specified value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Boolean)">
            <summary>
            Returns the specified <see cref="T:System.Boolean"/> value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert.</param>
            <returns>An array of bytes with length 1.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Char)">
            <summary>
            Returns the specified Unicode character value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The Unicode character value to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Double)">
            <summary>
            Returns the specified double-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Int16)">
            <summary>
            Returns the specified 16-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(GSF.Int24)">
            <summary>
            Returns the specified 24-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Int32)">
            <summary>
            Returns the specified 32-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Int64)">
            <summary>
            Returns the specified 64-bit signed integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Single)">
            <summary>
            Returns the specified single-precision floating point value as an array of bytes in the target endian-order.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.UInt16)">
            <summary>
            Returns the specified 16-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 2.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(GSF.UInt24)">
            <summary>
            Returns the specified 24-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 3.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.UInt32)">
            <summary>
            Returns the specified 32-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 4.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.UInt64)">
            <summary>
            Returns the specified 64-bit unsigned integer value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 8.</returns>
        </member>
        <member name="M:GSF.LittleEndian.GetBytes(System.Decimal)">
            <summary>
            Returns the specified 128-bit decimal value as an array of bytes.
            </summary>
            <param name="value">The number to convert.</param>
            <returns>An array of bytes with length 16.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes``1(``0,System.Byte[],System.Int32)">
            <summary>
            Copies the specified primitive type value as an array of bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
            <returns>Length of bytes copied into array based on size of <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Boolean,System.Byte[],System.Int32)">
            <summary>
            Copies the specified <see cref="T:System.Boolean"/> value as an array of 1 byte in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Char,System.Byte[],System.Int32)">
            <summary>
            Copies the specified Unicode character value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The Unicode character value to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Double,System.Byte[],System.Int32)">
            <summary>
            Copies the specified double-precision floating point value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit signed integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(GSF.Int24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit signed integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit signed integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit signed integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Single,System.Byte[],System.Int32)">
            <summary>
            Copies the specified single-precision floating point value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt16,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 16-bit unsigned integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(GSF.UInt24,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 24-bit unsigned integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt32,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 32-bit unsigned integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt64,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 64-bit unsigned integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Decimal,System.Byte[],System.Int32)">
            <summary>
            Copies the specified 128-bit decimal value as an array of 16 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destinationArray">The destination buffer.</param>
            <param name="destinationIndex">The byte offset into <paramref name="destinationArray"/>.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes``1(``0,System.Byte*)">
            <summary>
            Copies the specified primitive type value as an array of bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <typeparam name="T">Native value type to get bytes for.</typeparam>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> type is not primitive.</exception>
            <exception cref="T:System.InvalidOperationException">Cannot get bytes for <paramref name="value"/> type.</exception>
            <returns>Length of bytes copied into array based on size of <typeparamref name="T"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Boolean,System.Byte*)">
            <summary>
            Copies the specified <see cref="T:System.Boolean"/> value as an array of 1 byte in the target endian-order to the destination array.
            </summary>
            <param name="value">The <see cref="T:System.Boolean"/> value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Char,System.Byte*)">
            <summary>
            Copies the specified Unicode character value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The Unicode character value to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Double,System.Byte*)">
            <summary>
            Copies the specified double-precision floating point value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int16,System.Byte*)">
            <summary>
            Copies the specified 16-bit signed integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(GSF.Int24,System.Byte*)">
            <summary>
            Copies the specified 24-bit signed integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int32,System.Byte*)">
            <summary>
            Copies the specified 32-bit signed integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Int64,System.Byte*)">
            <summary>
            Copies the specified 64-bit signed integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Single,System.Byte*)">
            <summary>
            Copies the specified single-precision floating point value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt16,System.Byte*)">
            <summary>
            Copies the specified 16-bit unsigned integer value as an array of 2 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(GSF.UInt24,System.Byte*)">
            <summary>
            Copies the specified 24-bit unsigned integer value as an array of 3 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt32,System.Byte*)">
            <summary>
            Copies the specified 32-bit unsigned integer value as an array of 4 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.UInt64,System.Byte*)">
            <summary>
            Copies the specified 64-bit unsigned integer value as an array of 8 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="M:GSF.LittleEndian.CopyBytes(System.Decimal,System.Byte*)">
            <summary>
            Copies the specified 128-bit decimal value as an array of 16 bytes in the target endian-order to the destination array.
            </summary>
            <param name="value">The number to convert and copy.</param>
            <param name="destination">The destination buffer.</param>
            <returns>Length of bytes copied into array based on size of <paramref name="value"/>.</returns>
        </member>
        <member name="T:GSF.NtpTimeTag">
            <summary>
            Represents a standard Network Time Protocol (NTP) timetag.
            </summary>
            <remarks>
            As recommended by RFC-2030, all NTP timestamps earlier than 3h 14m 08s UTC on 20 January 1968
            are reckoned from 6h 28m 16s UTC on 7 February 2036. This gives the <see cref="T:GSF.NtpTimeTag"/>
            class a functioning range of 1968-01-20 03:14:08 to 2104-02-26 09:42:23.
            </remarks>
        </member>
        <member name="M:GSF.NtpTimeTag.#ctor(System.Decimal)">
            <summary>
            Creates a new <see cref="T:GSF.NtpTimeTag"/>, given number of seconds since 1/1/1900.
            </summary>
            <param name="seconds">Number of seconds since 1/1/1900.</param>
        </member>
        <member name="M:GSF.NtpTimeTag.#ctor(System.UInt32,System.UInt32)">
            <summary>
            Creates a new <see cref="T:GSF.NtpTimeTag"/>, given number of seconds and fractional seconds since 1/1/1900.
            </summary>
            <param name="seconds">Number of seconds since 1/1/1900.</param>
            <param name="fraction">Number of fractional seconds, in whole picoseconds.</param>
        </member>
        <member name="M:GSF.NtpTimeTag.#ctor(System.UInt64)">
            <summary>
            Creates a new <see cref="T:GSF.NtpTimeTag"/>, given 64-bit NTP timestamp.
            </summary>
            <param name="timestamp">NTP timestamp containing number of seconds since 1/1/1900 in high-word and fractional seconds in low-word.</param>
        </member>
        <member name="M:GSF.NtpTimeTag.#ctor(GSF.Ticks)">
            <summary>
            Creates a new <see cref="T:GSF.NtpTimeTag"/>, given specified <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="timestamp">Timestamp in <see cref="T:GSF.Ticks"/> to create Unix timetag from (minimum valid date is 1/1/1900).</param>
            <remarks>
            This constructor will accept a <see cref="T:System.DateTime"/> parameter since <see cref="T:GSF.Ticks"/> is implicitly castable to a <see cref="T:System.DateTime"/>.
            </remarks>
        </member>
        <member name="M:GSF.NtpTimeTag.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a new <see cref="T:GSF.NtpTimeTag"/> from serialization parameters.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with populated with data.</param>
            <param name="context">The source <see cref="T:System.Runtime.Serialization.StreamingContext"/> for this deserialization.</param>
        </member>
        <member name="P:GSF.NtpTimeTag.Timestamp">
            <summary>
            Gets 64-bit NTP timestamp.
            </summary>
        </member>
        <member name="F:GSF.NtpTimeTag.BaseTicks">
            <summary>
            Number of ticks since 1/1/1900.
            </summary>
            <remarks>
            NTP dates are measured as the number of seconds since 1/1/1900.
            </remarks>
        </member>
        <member name="F:GSF.NtpTimeTag.AlternateBaseTicks">
            <summary>
            Number of ticks since since 2/7/2036 at 6h 28m 16s UTC when MSB is set.
            </summary>
            <remarks>
            According to RFC-2030, NTP dates can also be measured as the number of seconds since 2/7/2036
            at 6h 28m 16s UTC if MSB is set.
            </remarks>
        </member>
        <member name="M:GSF.NtpTimeTag.GetBaseDateOffsetTicks(System.Decimal)">
            <summary>
            Gets proper NTP offset based on <paramref name="seconds"/> value, see RFC-2030.
            </summary>
            <param name="seconds">Seconds value.</param>
            <returns>Proper NTP offset.</returns>
        </member>
        <member name="M:GSF.NtpTimeTag.GetBaseDateOffsetTicks(GSF.Ticks)">
            <summary>
            Gets proper NTP offset based on <paramref name="timestamp"/> value, see RFC-2030.
            </summary>
            <param name="timestamp"><see cref="T:GSF.Ticks"/> timestamp value.</param>
            <returns>Proper NTP offset.</returns>
        </member>
        <member name="M:GSF.NtpTimeTag.GetBaseDateOffsetTicks(System.UInt32)">
            <summary>
            Gets proper NTP offset based on most significant byte on <paramref name="seconds"/> value, see RFC-2030.
            </summary>
            <param name="seconds">NTP seconds timestamp value.</param>
            <returns>Proper NTP offset.</returns>
        </member>
        <member name="M:GSF.NtpTimeTag.FromTicks(GSF.Ticks)">
            <summary>
            Gets 64-bit NTP timestamp given <paramref name="timestamp"/> in <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="timestamp">Timestamp in <see cref="T:GSF.Ticks"/>.</param>
            <returns>Seconds in NTP from given <paramref name="timestamp"/>.</returns>
        </member>
        <member name="T:GSF.NullableWeakReference">
            <summary>
            A <see cref="T:System.WeakReference"/> implementation that can have the <see cref="P:GSF.NullableWeakReference.Target"/> object set to null.
            Natively, setting <see cref="P:System.WeakReference.Target"/> to null will throw an <see cref="T:System.InvalidOperationException"/>,
            </summary>
        </member>
        <member name="M:GSF.NullableWeakReference.#ctor(System.Object)">
            <summary>
            Creates a <see cref="T:GSF.NullableWeakReference"/>
            </summary>
            <param name="target">the object to maintain the weak reference to. Cannot be null.</param>
        </member>
        <member name="P:GSF.NullableWeakReference.IsAlive">
            <summary>
            Gets an indication whether the object referenced by the current <see cref="T:NullableWeakReference" /> object has been cleared or garbage collected.
            </summary>
            <returns>
            true if the object referenced by the current <see cref="T:NullableWeakReference" /> object has not been garbage collected or cleared 
            and is still accessible; otherwise, false.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:GSF.NullableWeakReference.Target">
            <summary>
            Gets the object (the target) referenced by the current <see cref="T:NullableWeakReference" /> object.
            Set will only accept null.
            </summary>
            <returns>
            null if the object referenced by the current <see cref="T:NullableWeakReference" /> object has been garbage collected or cleared;
            otherwise, a reference to the object referenced by the current <see cref="T:NullableWeakReference" /> object.
            </returns>
            <exception cref="T:System.InvalidOperationException">If setting this property to anything other than null</exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.NullableWeakReference.Clear">
            <summary>
            Sets <see cref="P:GSF.NullableWeakReference.Target"/> to null so subsequent calls to <see cref="P:GSF.NullableWeakReference.Target"/> returns null
            </summary>
        </member>
        <member name="T:GSF.Reflection.AppDomainTypeLookup">
            <summary>
            Defines a lookup class that searches all assemblies in the current <see cref="T:System.AppDomain"/> for all <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AppDomainTypeLookup.#ctor">
            <summary>
            Creates a AppDomainTypeLookup
            </summary>
        </member>
        <member name="P:GSF.Reflection.AppDomainTypeLookup.HasChanged">
            <summary>
            Gets flag that determines if there is a possibility that a new assembly has been loaded and new types are available.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AppDomainTypeLookup.FindTypes">
            <summary>
            Searches all assemblies of this <see cref="T:System.AppDomain"/> for all <see cref="T:System.Type"/>s.
            </summary>
            <returns></returns>
        </member>
        <member name="T:GSF.Reflection.AssemblyExtensions">
            <summary>
            Defines extension functions related to Assemblies.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.ShortName(System.Reflection.Assembly)">
            <summary>
            Returns only assembly name and version from full assembly name.
            </summary>
            <param name="assemblyInstance">An <see cref="T:System.Reflection.Assembly"/> to get the short name of.</param>
            <returns>The assembly name and version from the full assembly name.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.GetEmbeddedResource(System.Reflection.Assembly,System.String)">
            <summary>
            Gets the specified embedded resource from the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <param name="resourceName">The full name (including the namespace) of the embedded resource to get.</param>
            <returns>The embedded resource.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Title(System.Reflection.Assembly)">
            <summary>
            Gets the title information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The title information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Description(System.Reflection.Assembly)">
            <summary>
            Gets the description information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The description information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Company(System.Reflection.Assembly)">
            <summary>
            Gets the company name information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The company name information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Product(System.Reflection.Assembly)">
            <summary>
            Gets the product name information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The product name information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Copyright(System.Reflection.Assembly)">
            <summary>
            Gets the copyright information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The copyright information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Trademark(System.Reflection.Assembly)">
            <summary>
            Gets the trademark information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The trademark information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Configuration(System.Reflection.Assembly)">
            <summary>
            Gets the configuration information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The configuration information of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.DelaySign(System.Reflection.Assembly)">
            <summary>
            Gets a boolean value indicating if the assembly has been built as delay-signed.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns><c>true</c>, if the assembly has been built as delay-signed; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.InformationalVersion(System.Reflection.Assembly)">
            <summary>
            Gets the version information of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The version information of the assembly</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.KeyFile(System.Reflection.Assembly)">
            <summary>
            Gets the name of the file containing the key pair used to generate a strong name for the attributed assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>A string containing the name of the file that contains the key pair.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.CultureName(System.Reflection.Assembly)">
            <summary>
            Gets the culture name of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The culture name of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.SatelliteContractVersion(System.Reflection.Assembly)">
            <summary>
            Gets the assembly version used to instruct the <see cref="T:System.Resources.ResourceManager"/> to ask for
            a particular version of a satellite assembly to simplify updates of the main assembly of an application.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The satellite contract version of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.ComCompatibleVersion(System.Reflection.Assembly)">
            <summary>
            Gets the string representing the assembly version used to indicate to a COM client that all classes in the
            current version of the assembly are compatible with classes in an earlier version of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The string representing the assembly version in MajorVersion.MinorVersion.RevisionNumber.BuildNumber format.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.ComVisible(System.Reflection.Assembly)">
            <summary>
            Gets a boolean value indicating if the assembly is exposed to COM.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns><c>true</c>, if the assembly is exposed to COM; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Debuggable(System.Reflection.Assembly)">
            <summary>
            Gets a boolean value indicating if the <see cref="T:System.Reflection.Assembly"/> was built in debug mode.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns><c>true</c>, if the assembly was built in debug mode; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.Guid(System.Reflection.Assembly)">
            <summary>
            Gets the assembly GUID that is used as an ID if the assembly is exposed to COM.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The assembly GUID that is used as an ID if the assembly is exposed to COM.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.TypeLibVersion(System.Reflection.Assembly)">
            <summary>
            Gets the string representing the assembly version number in MajorVersion.MinorVersion format.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The string representing the assembly version number in MajorVersion.MinorVersion format.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.CLSCompliant(System.Reflection.Assembly)">
            <summary>
            Gets a boolean value indicating whether the indicated program element is CLS-compliant.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns><c>true</c>, if the program element is CLS-compliant; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.BuildDate(System.Reflection.Assembly)">
            <summary>
            Gets the date and time when the assembly was last built.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The date and time when the assembly was last built.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.RootNamespace(System.Reflection.Assembly)">
            <summary>
            Gets the root namespace of the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>The root namespace of the assembly.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.GetAttributes(System.Reflection.Assembly)">
            <summary>
            Gets a name/value collection of assembly attributes exposed by the assembly.
            </summary>
            <param name="assemblyInstance">Source assembly.</param>
            <returns>A NameValueCollection of assembly attributes.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyExtensions.TryLoadAllReferences(System.Reflection.Assembly)">
            <summary>
            Recursively attempts to load all assemblies referenced from the given assembly.
            </summary>
            <param name="assemblyInstance">The assembly whose references are to be loaded.</param>
            <returns><c>true</c> if the references were successfully loaded; <c>false</c> otherwise.</returns>
            <remarks>
            If an object is created from a type that is loaded from an assembly, and if that
            assembly's references fail to load during instantiation, an exception may be thrown
            from both the constructor and the finalizer of the object that was instantiated.
            This method allows us to ensure that all referenced assemblies can be loaded
            before attempting to instantiate a type from that assembly.
            </remarks>
        </member>
        <member name="T:GSF.Reflection.AssemblyInfo">
            <summary>
            Represents a common information provider for an assembly.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.#ctor(System.Reflection.Assembly)">
            <summary>Initializes a new instance of the <see cref="T:GSF.Reflection.AssemblyInfo"/> class.</summary>
            <param name="assemblyInstance">An <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> object.</param>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Assembly">
            <summary>
            Gets the underlying <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> being represented by this <see cref="T:GSF.Reflection.AssemblyInfo"/> object.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Title">
            <summary>
            Gets the title information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Description">
            <summary>
            Gets the description information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Company">
            <summary>
            Gets the company name information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Product">
            <summary>
            Gets the product name information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Copyright">
            <summary>
            Gets the copyright information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Trademark">
            <summary>
            Gets the trademark information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Configuration">
            <summary>
            Gets the configuration information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.DelaySign">
            <summary>
            Gets a boolean value indicating if the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> has been built as delay-signed.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.InformationalVersion">
            <summary>
            Gets the version information of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.KeyFile">
            <summary>
            Gets the name of the file containing the key pair used to generate a strong name for the attributed <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.CultureName">
            <summary>
            Gets the culture name of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.SatelliteContractVersion">
            <summary>
            Gets the assembly version used to instruct the System.Resources.ResourceManager to ask for a particular
            version of a satellite assembly to simplify updates of the main assembly of an application.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.ComCompatibleVersion">
            <summary>
            Gets the string representing the assembly version used to indicate to a COM client that all classes
            in the current version of the assembly are compatible with classes in an earlier version of the assembly.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.ComVisible">
            <summary>
            Gets a boolean value indicating if the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> is exposed to COM.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Debuggable">
            <summary>
            Gets a boolean value indicating if the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> was built in debug mode.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Guid">
            <summary>
            Gets the GUID that is used as an ID if the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> is exposed to COM.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.TypeLibVersion">
            <summary>
            Gets the string representing the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> version number in MajorVersion.MinorVersion format.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.CLSCompliant">
            <summary>
            Gets a boolean value indicating whether the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> is CLS-compliant.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Location">
            <summary>
            Gets the path or UNC location of the loaded file that contains the manifest.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.CodeBase">
            <summary>
            Gets the location of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> as specified originally.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.FullName">
            <summary>
            Gets the display name of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Name">
            <summary>
            Gets the simple, unencrypted name of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.Version">
            <summary>
            Gets the major, minor, revision, and build numbers of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.ImageRuntimeVersion">
            <summary>
            Gets the string representing the version of the common language runtime (CLR) saved in the file
            containing the manifest.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.GACLoaded">
            <summary>
            Gets a boolean value indicating whether the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> was loaded from the global assembly cache.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.BuildDate">
            <summary>
            Gets the date and time when the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/> was built.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.RootNamespace">
            <summary>
            Gets the root namespace of the <see cref="P:GSF.Reflection.AssemblyInfo.Assembly"/>.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.GetAttributes">
            <summary>
            Gets a collection of assembly attributes exposed by the assembly.
            </summary>
            <returns>A System.Specialized.KeyValueCollection of assembly attributes.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.GetCustomAttribute(System.Type)">
            <summary>
            Gets the specified assembly attribute if it is exposed by the assembly.
            </summary>
            <param name="attributeType">Type of the attribute to get.</param>
            <returns>The requested assembly attribute if it exists; otherwise null.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.GetEmbeddedResource(System.String)">
            <summary>
            Gets the specified embedded resource from the assembly.
            </summary>
            <param name="resourceName">The full name (including the namespace) of the embedded resource to get.</param>
            <returns>The embedded resource.</returns>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.FindType(System.String)">
            <summary>
            Finds the specified <paramref name="typeName"/> searching through all loaded assemblies.
            </summary>
            <param name="typeName">Fully qualified type name.</param>
            <returns>The <see cref="T:System.Type"/> found; otherwise <c>null</c>.</returns>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.CallingAssembly">
            <summary>
            Gets the <see cref="T:GSF.Reflection.AssemblyInfo"/> object of the assembly that invoked the currently executing method.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.EntryAssembly">
            <summary>
            Gets the <see cref="T:GSF.Reflection.AssemblyInfo"/> object of the process executable in the default application domain.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyInfo.ExecutingAssembly">
            <summary>
            Gets the <see cref="T:GSF.Reflection.AssemblyInfo"/> object of the assembly that contains the code that is currently executing.
            </summary>
        </member>
        <member name="M:GSF.Reflection.AssemblyInfo.LoadAssemblyFromResource(System.String)">
            <summary>
            Loads the specified assembly that is embedded as a resource in the assembly.
            </summary>
            <param name="assemblyName">Name of the assembly to load.</param>
            <remarks>Note that this function cannot be used to load GSF.Core itself, since this is where function resides.</remarks>
        </member>
        <member name="T:GSF.Reflection.AssemblyLoadedVersionNumber">
            <summary>
            Maintains a version number that increments every time an <see cref="T:System.AppDomain"/> AssemblyLoad event is raised.
            </summary>
        </member>
        <member name="P:GSF.Reflection.AssemblyLoadedVersionNumber.VersionNumber">
            <summary>
            The number of times that the AppDomains's assembly could have changed; initial value starts at 1.
            </summary>
        </member>
        <member name="T:GSF.Reflection.MemberInfoExtensions">
            <summary>
            Defines extensions methods related to <see cref="T:System.Reflection.MemberInfo"/> objects and derived types (e.g., <see cref="T:System.Reflection.FieldInfo"/>,
            <see cref="T:System.Reflection.PropertyInfo"/>, <see cref="T:System.Reflection.MethodInfo"/>, etc.).
            </summary>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.GetFriendlyClassName``1(``0)">
            <summary>
            Gets the friendly class name of the provided <see cref="T:System.Reflection.MemberInfo"/> object, trimming generic parameters.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to get friendly class name.</param>
            <returns>Friendly class name of the provided member, or <see cref="F:System.String.Empty"/> if <paramref name="member"/> is <c>null</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.AttributeExists``2(``0)">
            <summary>
            Returns a boolean flag that determines if the specified <typeparamref name="TAttribute"/> exists.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
            <typeparam name="TAttribute"><see cref="T:System.Type"/> of <see cref="T:System.Attribute"/> to attempt to retrieve.</typeparam>
            <returns><c>true</c> if attribute exists; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttribute``2(``0,``1@)">
            <summary>
            Attempts to get the specified <paramref name="attribute"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attribute">The <see cref="T:System.Attribute"/> that was found, if any.</param>
            <returns><c>true</c> if <paramref name="attribute"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
            <typeparam name="TAttribute"><see cref="T:System.Type"/> of <see cref="T:System.Attribute"/> to attempt to retrieve.</typeparam>
            <remarks>
            If more than of the same type of attribute exists on the member, only the first one is returned.
            </remarks>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttributes``2(``0,``1[]@)">
            <summary>
            Attempts to get the specified <paramref name="attributes"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attributes">The array of <see cref="T:System.Attribute"/> objects that were found, if any.</param>
            <returns><c>true</c> if <paramref name="attributes"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
            <typeparam name="TAttribute"><see cref="T:System.Type"/> of <see cref="T:System.Attribute"/> to attempt to retrieve.</typeparam>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttribute``1(``0,System.Type,System.Attribute@)">
            <summary>
            Attempts to get the specified <paramref name="attribute"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attributeType">The actual type of the <see cref="T:System.Attribute"/> to look for.</param>
            <param name="attribute">The <see cref="T:System.Attribute"/> that was found, if any.</param>
            <returns><c>true</c> if <paramref name="attribute"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
            <remarks>
            If more than of the same type of attribute exists on the member, only the first one is returned.
            </remarks>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttributes``1(``0,System.Type,System.Attribute[]@)">
            <summary>
            Attempts to get the specified <paramref name="attributes"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attributeType">The actual type of the <see cref="T:System.Attribute"/> objects to look for.</param>
            <param name="attributes">The array of <see cref="T:System.Attribute"/> objects that were found, if any.</param>
            <returns><c>true</c> if <paramref name="attributes"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttribute``1(``0,System.String,System.Attribute@)">
            <summary>
            Attempts to get the specified <paramref name="attribute"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attributeName">The name of the type of the <see cref="T:System.Attribute"/> to look for.</param>
            <param name="attribute">The <see cref="T:System.Attribute"/> that was found, if any.</param>
            <returns><c>true</c> if <paramref name="attribute"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
            <remarks>
            If more than of the same type of attribute exists on the member, only the first one is returned.
            </remarks>
        </member>
        <member name="M:GSF.Reflection.MemberInfoExtensions.TryGetAttributes``1(``0,System.String,System.Attribute[]@)">
            <summary>
            Attempts to get the specified <paramref name="attributes"/> from a <see cref="T:System.Reflection.MemberInfo"/> object, returning <c>true</c> if it does.
            </summary>
            <param name="member">The <see cref="T:System.Reflection.MemberInfo"/> object over which to search attributes.</param>
            <param name="attributeName">The name of the type of the <see cref="T:System.Attribute"/> objects to look for.</param>
            <param name="attributes">The array of <see cref="T:System.Attribute"/> objects that were found, if any.</param>
            <returns><c>true</c> if <paramref name="attributes"/> was found; otherwise <c>false</c>.</returns>
            <typeparam name="TMemberInfo"><see cref="T:System.Reflection.MemberInfo"/> or derived type to get <see cref="T:System.Attribute"/> from.</typeparam>
        </member>
        <member name="T:GSF.Reflection.MethodBaseExtensions">
            <summary>
            Defines extensions methods related to extension functions for <see cref="T:System.Reflection.MethodBase"/> instances.
            </summary>
        </member>
        <member name="M:GSF.Reflection.MethodBaseExtensions.GetFriendlyMethodName(System.Reflection.MethodBase)">
            <summary>
            Gets the friendly method name of the provided type, trimming generic parameters.
            </summary>
            <param name="method">Type to get friendly method name for.</param>
            <returns>Friendly method name of the provided type, or <see cref="F:System.String.Empty"/> if <paramref name="method"/> is <c>null</c>.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodBaseExtensions.GetFriendlyMethodNameWithClass(System.Reflection.MethodBase)">
            <summary>
            Gets the friendly method name with class of the provided type, trimming generic parameters.
            </summary>
            <param name="method">Type to get friendly method name with class for.</param>
            <returns>Friendly method name with class of the provided type, or <see cref="F:System.String.Empty"/> if <paramref name="method"/> is <c>null</c>.</returns>
        </member>
        <member name="T:GSF.Reflection.MethodInfoExtensions">
            <summary>
            Defines extensions methods related to <see cref="T:System.Reflection.MethodInfo"/>.
            </summary>
            <remarks>
            Many of these functions help generate compiled IL code that can execute a method of a class.
            </remarks>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateAction(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into an <see cref="T:System.Action"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateAction``1(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into an <see cref="T:System.Action"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateAction``2(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into an <see cref="T:System.Action"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateAction``3(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into an <see cref="T:System.Action"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateFunc``1(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into a <see cref="T:System.Func`1"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateFunc``2(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into a <see cref="T:System.Func`1"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateFunc``3(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into a <see cref="T:System.Func`1"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="M:GSF.Reflection.MethodInfoExtensions.CreateFunc``4(System.Reflection.MethodInfo)">
            <summary>
            Turns a <see cref="T:System.Reflection.MethodInfo"/> into a <see cref="T:System.Func`1"/> that can be called with objects of the specified type. 
            </summary>
            <param name="method">the method that should be compiled.</param>
            <returns>The compiled method.</returns>
        </member>
        <member name="T:GSF.Reflection.NamespaceDoc">
            <summary>
            Contains classes and extension functions used to simplify and standardize access to assembly information and attributes in applications.
            </summary>
        </member>
        <member name="T:GSF.ShortTime">
            <summary>
            Represents a high resolution time that is very granular but may drift 
            if trying to accurately measure long time durations (Such as hours). 
            This time is not adjusted with changes to the system clock.
            Typical clock drifts by about 2-3 ms per minute as apposed to 0.4ms per minute for 
            standard DateTime.
            </summary>
            <remarks>
            Call times are about 40+ million calls per second.
            </remarks>
        </member>
        <member name="P:GSF.ShortTime.UtcTime">
            <summary>
            Calculates the approximate <see cref="T:System.DateTime"/> represented by this time. 
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.ElapsedSeconds">
            <summary>
            The elapsed time in seconds.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.ElapsedMilliseconds">
            <summary>
            The elapsed time in milliseconds.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.ElapsedMicroseconds">
            <summary>
            The elapsed time in microseconds.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.ElapsedTicks">
            <summary>
            The elapsed time in ticks.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.Elapsed">
            <summary>
            Gets the time that has elapsed since the creation of this time.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.ElapsedSeconds(GSF.ShortTime)">
            <summary>
            The elapsed time in seconds
            </summary>
        </member>
        <member name="M:GSF.ShortTime.ElapsedMilliseconds(GSF.ShortTime)">
            <summary>
            The elapsed time in milliseconds
            </summary>
        </member>
        <member name="M:GSF.ShortTime.ElapsedMicroseconds(GSF.ShortTime)">
            <summary>
            The elapsed time in microseconds
            </summary>
        </member>
        <member name="M:GSF.ShortTime.ElapsedTicks(GSF.ShortTime)">
            <summary>
            The elapsed time in ticks
            </summary>
        </member>
        <member name="M:GSF.ShortTime.Elapsed(GSF.ShortTime)">
            <summary>
            The elapsed time
            </summary>
        </member>
        <member name="M:GSF.ShortTime.AddMilliseconds(System.Double)">
            <summary>
            Adds milliseconds to this struct
            </summary>
        </member>
        <member name="M:GSF.ShortTime.AddSeconds(System.Double)">
            <summary>
            Adds seconds to this struct
            </summary>
        </member>
        <member name="M:GSF.ShortTime.AddTicks(System.Double)">
            <summary>
            Adds ticks to this struct
            </summary>
        </member>
        <member name="M:GSF.ShortTime.Add(System.TimeSpan)">
            <summary>
            Adds timespan to this struct
            </summary>
        </member>
        <member name="P:GSF.ShortTime.Now">
            <summary>
            The current time in <see cref="T:GSF.ShortTime"/>
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_LessThan(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Tests Less Than
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_GreaterThan(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Tests Greather Than
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_LessThanOrEqual(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Tests Less Than or equal
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_GreaterThanOrEqual(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Tests Greater than or equal Than
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_Subtraction(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Subtracts two times.
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:GSF.ShortTime.op_Equality(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Are 2 times equal
            </summary>
        </member>
        <member name="M:GSF.ShortTime.op_Inequality(GSF.ShortTime,GSF.ShortTime)">
            <summary>
            Are 2 times not equal
            </summary>
        </member>
        <member name="M:GSF.ShortTime.Equals(System.Object)">
            <summary>Indicates whether this instance and a specified object are equal.</summary>
            <returns>true if <paramref name="obj" /> and this instance are the same type and represent the same value; otherwise, false. </returns>
            <param name="obj">The object to compare with the current instance. </param>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.ShortTime.Equals(GSF.ShortTime)">
            <summary>Indicates whether the current object is equal to another object of the same type.</summary>
            <returns>true if the current object is equal to the <paramref name="other" /> parameter; otherwise, false.</returns>
            <param name="other">An object to compare with this object.</param>
        </member>
        <member name="M:GSF.ShortTime.GetHashCode">
            <summary>Returns the hash code for this instance.</summary>
            <returns>A 32-bit signed integer that is the hash code for this instance.</returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.ShortTime.ToString">
            <summary>
            Shows the UTC time.
            </summary>
        </member>
        <member name="T:GSF.BaselineTimeInterval">
            <summary>
            Time intervals enumeration used by <see cref="M:GSF.Ticks.BaselinedTimestamp(GSF.BaselineTimeInterval)"/> method.
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Second">
            <summary>
            Baseline timestamp to the second (i.e., starting at zero milliseconds).
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Minute">
            <summary>
            Baseline timestamp to the minute (i.e., starting at zero seconds and milliseconds).
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Hour">
            <summary>
            Baseline timestamp to the hour (i.e., starting at zero minutes, seconds and milliseconds).
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Day">
            <summary>
            Baseline timestamp to the day (i.e., starting at zero hours, minutes, seconds and milliseconds).
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Month">
            <summary>
            Baseline timestamp to the month (i.e., starting at day one, zero hours, minutes, seconds and milliseconds).
            </summary>
        </member>
        <member name="F:GSF.BaselineTimeInterval.Year">
            <summary>
            Baseline timestamp to the year (i.e., starting at month one, day one, zero hours, minutes, seconds and milliseconds).
            </summary>
        </member>
        <member name="T:GSF.Ticks">
            <summary>
            Represents an instant in time, or time period, as a 64-bit signed integer with a value that is expressed as the number
            of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </summary>
            <remarks>
            <para>
            <see cref="T:GSF.Ticks"/> can represent an "instant in time" and therefore can be used exactly like a <see cref="T:System.DateTime"/>.
            The difference between <see cref="T:GSF.Ticks"/> and <see cref="T:System.DateTime"/> is that <see cref="T:GSF.Ticks"/> is essentially a long
            integer (i.e., an <see cref="T:System.Int64"/>) which represents the number of ticks that have elapsed since 12:00:00 midnight,
            January 1, 0001 with each tick having a resolution of 100-nanoseconds. You would use <see cref="T:GSF.Ticks"/> in places where
            you needed to directly represent time in high-resolution, i.e., time with sub-second accuracy, using an object that will
            act like a long integer but handle time conversions. <see cref="T:GSF.Ticks"/> can also represent a "time period" (e.g., the
            number of ticks elapsed since a process started) and thus can also be used like a <see cref="T:System.TimeSpan"/>; when used in
            this manner the <see cref="M:GSF.Ticks.ToElapsedTimeString"/> method can be used to convert the <see cref="T:GSF.Ticks"/> value
            into a handy textual representation of elapsed years, days, hours, minutes and seconds or sub-seconds.
            </para>
            <para>
            This class behaves just like an <see cref="T:System.Int64"/> representing a time in ticks; it is implicitly castable to and from
            an <see cref="T:System.Int64"/> and therefore can be generally used "as" an Int64 directly. It is also implicitly castable to and
            from a <see cref="T:System.DateTime"/>, a <see cref="T:System.TimeSpan"/>, an <see cref="T:GSF.NtpTimeTag"/> and a <see cref="T:GSF.UnixTimeTag"/>.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Ticks.PerSecond">
            <summary>
            Number of 100-nanosecond ticks in one second.
            </summary>
        </member>
        <member name="F:GSF.Ticks.PerMillisecond">
            <summary>
            Number of 100-nanosecond ticks in one millisecond.
            </summary>
        </member>
        <member name="F:GSF.Ticks.PerMicrosecond">
            <summary>
            Number of 100-nanosecond ticks in one microsecond.
            </summary>
        </member>
        <member name="F:GSF.Ticks.PerMinute">
            <summary>
            Number of 100-nanosecond ticks in one minute.
            </summary>
        </member>
        <member name="F:GSF.Ticks.PerHour">
            <summary>
            Number of 100-nanosecond ticks in one hour.
            </summary>
        </member>
        <member name="F:GSF.Ticks.PerDay">
            <summary>
            Number of 100-nanosecond ticks in one day.
            </summary>
        </member>
        <member name="F:GSF.Ticks.Value">
            <summary>
            Time value stored in ticks.
            </summary>
        </member>
        <member name="M:GSF.Ticks.#ctor(System.Int64)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value">New time value in ticks.</param>
        </member>
        <member name="M:GSF.Ticks.#ctor(System.DateTime)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value">New time value as a <see cref="T:System.DateTime"/>.</param>
        </member>
        <member name="M:GSF.Ticks.#ctor(System.TimeSpan)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value">New time value as a <see cref="T:System.TimeSpan"/>.</param>
        </member>
        <member name="M:GSF.Ticks.ToDays">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of days.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in days.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of days
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToHours">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of hours.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in hours.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of hours
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToMinutes">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of minutes.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in minutes.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of minutes
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToSeconds">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of seconds.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in seconds.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of seconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToMilliseconds">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of milliseconds.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in milliseconds.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of milliseconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToMicroseconds">
            <summary>
            Gets the <see cref="T:GSF.Ticks"/> value in equivalent number of microseconds.
            </summary>
            <returns>Value of <see cref="T:GSF.Ticks"/> in microseconds.</returns>
            <remarks>
            If <see cref="T:GSF.Ticks"/> value represents an instant in time, returned value will represent the number of microseconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.UtcTimeIsValid(System.Double,System.Double)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value in UTC time, is valid by comparing it to
            the system clock.
            </summary>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be valid.</param>
            <returns>True, if UTC time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of system clock time in UTC. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be set
            to sub-second intervals.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be less than one.
            </exception>
        </member>
        <member name="M:GSF.Ticks.UtcTimeIsValid(GSF.Ticks,GSF.Ticks)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value in UTC time, is valid by comparing it to
            the system clock.
            </summary>
            <param name="lagTime">The allowed lag time, in ticks, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in ticks, before assuming time is too advanced to be valid.</param>
            <returns>True, if UTC time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of system clock time in UTC. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </exception>
        </member>
        <member name="M:GSF.Ticks.LocalTimeIsValid(System.Double,System.Double)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value in local time, is valid by comparing it to
            the system clock.
            </summary>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be valid.</param>
            <returns>True, if local time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of local system clock time. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be set
            to sub-second intervals.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be less than one.
            </exception>
        </member>
        <member name="M:GSF.Ticks.LocalTimeIsValid(GSF.Ticks,GSF.Ticks)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value in local time, is valid by comparing it to
            the system clock.
            </summary>
            <param name="lagTime">The allowed lag time, in ticks, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in ticks, before assuming time is too advanced to be valid.</param>
            <returns>True, if local time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of local system clock time. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </exception>
        </member>
        <member name="M:GSF.Ticks.TimeIsValid(GSF.Ticks,System.Double,System.Double)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value, is valid by comparing it to the specified
            current time.
            </summary>
            <param name="currentTime">Specified current time (e.g., could be DateTime.Now.Ticks).</param>
            <param name="lagTime">The allowed lag time, in seconds, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in seconds, before assuming time is too advanced to be valid.</param>
            <returns>True, if time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of <paramref name="currentTime"/>. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be set
            to sub-second intervals.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero, but can be less than one.
            </exception>
        </member>
        <member name="M:GSF.Ticks.TimeIsValid(GSF.Ticks,GSF.Ticks,GSF.Ticks)">
            <summary>
            Determines if time, represented by <see cref="T:GSF.Ticks"/> value, is valid by comparing it to the specified
            current time.
            </summary>
            <param name="currentTime">Specified current time (e.g., could be DateTime.Now.Ticks).</param>
            <param name="lagTime">The allowed lag time, in ticks, before assuming time is too old to be valid.</param>
            <param name="leadTime">The allowed lead time, in ticks, before assuming time is too advanced to be valid.</param>
            <returns>True, if time represented by <see cref="T:GSF.Ticks"/> value, is within the specified range.</returns>
            <remarks>
            Time, represented by <see cref="T:GSF.Ticks"/> value, is considered valid if it exists within the specified
            <paramref name="lagTime"/> and <paramref name="leadTime"/> range of <paramref name="currentTime"/>. Note
            that <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="lagTime"/> and <paramref name="leadTime"/> must be greater than zero.
            </exception>
        </member>
        <member name="M:GSF.Ticks.DistanceBeyondSecond">
            <summary>
            Gets the distance, in 100-nanoseconds intervals, beyond the top of the second in the timestamp
            represented by the <see cref="T:GSF.Ticks"/>.
            </summary>
            <returns>
            Number of 100-nanoseconds intervals <see cref="T:GSF.Ticks"/> value is from the top of the second.
            </returns>
        </member>
        <member name="M:GSF.Ticks.BaselinedTimestamp(GSF.BaselineTimeInterval)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/> value that represents a base-lined timestamp, in 100-nanoseconds
            intervals, that begins at the beginning of the specified time interval.
            </summary>
            <param name="interval">
            <see cref="T:GSF.BaselineTimeInterval"/> to which <see cref="T:GSF.Ticks"/> timestamp should be base-lined.
            </param>
            <returns>
            A new <see cref="T:GSF.Ticks"/> value that represents a base-lined timestamp, in 100-nanoseconds intervals,
            that begins at the specified <see cref="T:GSF.BaselineTimeInterval"/>.
            </returns>
            <remarks>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Second"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at zero milliseconds.<br/>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Minute"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at zero seconds and milliseconds.<br/>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Hour"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at zero minutes, seconds and milliseconds.<br/>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Day"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at zero hours, minutes, seconds and milliseconds.<br/>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Month"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at day one, zero hours, minutes, seconds and milliseconds.<br/>
            Base-lining to the <see cref="F:GSF.BaselineTimeInterval.Year"/> would return the <see cref="T:GSF.Ticks"/>
            value starting at month one, day one, zero hours, minutes, seconds and milliseconds.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToString">
            <summary>
            Converts the value of the <see cref="T:GSF.Ticks"/> value to its equivalent <see cref="T:System.DateTime"/> string representation.
            </summary>
            <returns>A <see cref="T:System.DateTime"/> string representation of the <see cref="T:GSF.Ticks"/> value.</returns>
        </member>
        <member name="M:GSF.Ticks.ToString(System.String)">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value to its equivalent string representation, using
            the specified <see cref="T:System.DateTime"/> format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Ticks.ToString(System.IFormatProvider)">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value to its equivalent string representation, using
            the specified culture-specific <see cref="T:System.DateTime"/> format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Ticks.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value to its equivalent string representation, using
            specified format and culture-specific <see cref="T:System.DateTime"/> format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Ticks.ToElapsedTimeString">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value into a textual representation of years, days, hours,
            minutes and seconds.
            </summary>
            <remarks>
            Note that this ToElapsedTimeString overload will not display fractional seconds. To allow
            display of fractional seconds, or completely remove second resolution from the textual
            representation, use the <see cref="M:GSF.Ticks.ToElapsedTimeString(System.Int32,System.Double)"/> overload instead.
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
        </member>
        <member name="M:GSF.Ticks.ToElapsedTimeString(System.Int32,System.Double)">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits.
            </summary>
            <param name="secondPrecision">Number of fractional digits to display for seconds.</param>
            <param name="minimumSubSecondResolution">
            Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.
            </param>
            <remarks>
            Set <paramref name="secondPrecision"/> to -1 to suppress seconds display, this will
            force minimum resolution of time display to minutes.
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="M:GSF.Ticks.ToElapsedTimeString(System.Int32,System.String[],System.Double)">
            <summary>
            Converts the <see cref="T:GSF.Ticks"/> value into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits given string array of
            time names.
            </summary>
            <param name="secondPrecision">Number of fractional digits to display for seconds.</param>
            <param name="timeNames">Time names array to use during textual conversion.</param>
            <param name="minimumSubSecondResolution">
            Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.
            </param>
            <remarks>
            <para>
            Set <paramref name="secondPrecision"/> to -1 to suppress seconds display, this will
            force minimum resolution of time display to minutes.
            </para>
            <para>
            <paramref name="timeNames"/> array needs one string entry for each of the following names:<br/>
            " year", " years", " day", " days", " hour", " hours", " minute", " minutes", " second", " seconds", "less than ".
            </para>
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="M:GSF.Ticks.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not an <see cref="T:System.Int64"/> or <see cref="T:GSF.Ticks"/>.</exception>
        </member>
        <member name="M:GSF.Ticks.CompareTo(GSF.Ticks)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Ticks"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Ticks"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Ticks.CompareTo(System.DateTime)">
            <summary>
            Compares this instance to a specified <see cref="T:System.DateTime"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.DateTime"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Ticks.CompareTo(System.TimeSpan)">
            <summary>
            Compares this instance to a specified <see cref="T:System.TimeSpan"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.TimeSpan"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Ticks.CompareTo(System.Int64)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Int64"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">An <see cref="T:System.Int64"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Ticks.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Int64"/> or <see cref="T:GSF.Ticks"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Ticks.Equals(GSF.Ticks)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Ticks"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Ticks"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Ticks.Equals(System.DateTime)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.DateTime"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.DateTime"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Ticks.Equals(System.TimeSpan)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.TimeSpan"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.TimeSpan"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Ticks.Equals(System.Int64)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Int64"/> value.
            </summary>
            <param name="obj">An <see cref="T:System.Int64"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Ticks.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Ticks.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Int64"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Int64"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Equality(GSF.Ticks,GSF.Ticks)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Inequality(GSF.Ticks,GSF.Ticks)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_LessThan(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_LessThanOrEqual(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_GreaterThan(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_GreaterThanOrEqual(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(System.Int64)~GSF.Ticks">
            <summary>
            Implicitly converts value, represented in ticks, to a <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value"><see cref="T:System.Int64"/> value to convert.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(System.DateTime)~GSF.Ticks">
            <summary>
            Implicitly converts value, represented as a <see cref="T:System.DateTime"/>, to a <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value"><see cref="T:System.DateTime"/> value to convert.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(System.TimeSpan)~GSF.Ticks">
            <summary>
            Implicitly converts value, represented as a <see cref="T:System.TimeSpan"/>, to a <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value"><see cref="T:System.TimeSpan"/> value to convert.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.TimeTagBase)~GSF.Ticks">
            <summary>
            Implicitly converts value, represented as a <see cref="T:GSF.TimeTagBase"/>, to a <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value"><see cref="T:GSF.TimeTagBase"/> value to convert.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.Ticks)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.Ticks"/>, represented in ticks, to an <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to convert.</param>
            <returns><see cref="T:System.Int64"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.Ticks)~System.DateTime">
            <summary>
            Implicitly converts <see cref="T:GSF.Ticks"/>, represented in ticks, to a <see cref="T:System.DateTime"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to convert.</param>
            <returns><see cref="T:System.DateTime"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.Ticks)~System.TimeSpan">
            <summary>
            Implicitly converts <see cref="T:GSF.Ticks"/>, represented in ticks, to a <see cref="T:System.TimeSpan"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to convert.</param>
            <returns><see cref="T:System.TimeSpan"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.Ticks)~GSF.NtpTimeTag">
            <summary>
            Implicitly converts <see cref="T:GSF.Ticks"/>, represented in ticks, to an <see cref="T:GSF.NtpTimeTag"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to convert.</param>
            <returns><see cref="T:GSF.NtpTimeTag"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Implicit(GSF.Ticks)~GSF.UnixTimeTag">
            <summary>
            Implicitly converts <see cref="T:GSF.Ticks"/>, represented in ticks, to a <see cref="T:GSF.UnixTimeTag"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to convert.</param>
            <returns><see cref="T:GSF.UnixTimeTag"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_True(GSF.Ticks)">
            <summary>
            Returns true if value is not zero.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to evaluate.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_False(GSF.Ticks)">
            <summary>
            Returns true if value is equal to zero.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to evaluate.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_OnesComplement(GSF.Ticks)">
            <summary>
            Returns bitwise complement of value.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to evaluate.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_BitwiseAnd(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_BitwiseOr(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_ExclusiveOr(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.Ticks"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.Ticks"/> right hand operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_RightShift(GSF.Ticks,System.Int32)">
            <summary>
            Returns value after right shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> number of bits to shift.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_LeftShift(GSF.Ticks,System.Int32)">
            <summary>
            Returns value after left shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.Ticks"/> value to shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> number of bits to shift.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Modulus(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Addition(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Subtraction(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Multiply(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Division(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:GSF.Ticks"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.Ticks.op_Exponent(GSF.Ticks,GSF.Ticks)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">Left hand <see cref="T:GSF.Ticks"/> operand.</param>
            <param name="value2">Right hand <see cref="T:GSF.Ticks"/> operand.</param>
            <returns><see cref="T:System.Double"/> value representing the result.</returns>
        </member>
        <member name="F:GSF.Ticks.MaxValue">
            <summary>
            Represents the largest possible value of a <see cref="T:GSF.Ticks"/>. This field is constant.
            </summary>
        </member>
        <member name="F:GSF.Ticks.MinValue">
            <summary>
            Represents the smallest possible value of a <see cref="T:GSF.Ticks"/>. This field is constant.
            </summary>
        </member>
        <member name="M:GSF.Ticks.ToSeconds(GSF.Ticks)">
            <summary>
            Converts <paramref name="value"/>, in 100-nanosecond tick intervals, to seconds.
            </summary>
            <param name="value">Number of ticks to convert to seconds.</param>
            <returns>Number seconds represented by specified <paramref name="value"/> in ticks.</returns>
            <remarks>
            If <paramref name="value"/> represents an instant in time, returned value will represent the number of seconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToMilliseconds(GSF.Ticks)">
            <summary>
            Converts <paramref name="value"/>, in 100-nanosecond tick intervals, to milliseconds.
            </summary>
            <param name="value">Number of ticks to convert to milliseconds.</param>
            <returns>Number milliseconds represented by specified <paramref name="value"/> in ticks.</returns>
            <remarks>
            If <paramref name="value"/> represents an instant in time, returned value will represent the number of milliseconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.ToMicroseconds(GSF.Ticks)">
            <summary>
            Converts <paramref name="value"/>, in 100-nanosecond tick intervals, to microseconds.
            </summary>
            <param name="value">Number of ticks to convert to microseconds.</param>
            <returns>Number microseconds represented by specified <paramref name="value"/> in ticks.</returns>
            <remarks>
            If <paramref name="value"/> represents an instant in time, returned value will represent the number of microseconds
            that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.FromSeconds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/> from the specified <paramref name="value"/> in seconds.
            </summary>
            <param name="value">New <see cref="T:GSF.Ticks"/> value in seconds.</param>
            <returns>New <see cref="T:GSF.Ticks"/> object from the specified <paramref name="value"/> in seconds.</returns>
        </member>
        <member name="M:GSF.Ticks.FromMilliseconds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/> from the specified <paramref name="value"/> in milliseconds.
            </summary>
            <param name="value">New <see cref="T:GSF.Ticks"/> value in milliseconds.</param>
            <returns>New <see cref="T:GSF.Ticks"/> object from the specified <paramref name="value"/> in milliseconds.</returns>
        </member>
        <member name="M:GSF.Ticks.FromMicroseconds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Ticks"/> from the specified <paramref name="value"/> in microseconds.
            </summary>
            <param name="value">New <see cref="T:GSF.Ticks"/> value in microseconds.</param>
            <returns>New <see cref="T:GSF.Ticks"/> object from the specified <paramref name="value"/> in microseconds.</returns>
        </member>
        <member name="M:GSF.Ticks.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Ticks"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Ticks"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or greater than <see cref="F:GSF.Ticks.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Ticks.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Ticks"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Ticks"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or greater than <see cref="F:GSF.Ticks.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Ticks.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Ticks"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Ticks"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or greater than <see cref="F:GSF.Ticks.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Ticks.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Ticks"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Ticks"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or greater than <see cref="F:GSF.Ticks.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Ticks.TryParse(System.String,GSF.Ticks@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Ticks"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Ticks"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or greater than <see cref="F:GSF.Ticks.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Ticks.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Ticks@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Ticks"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Ticks"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Ticks.MinValue"/> or
            greater than <see cref="F:GSF.Ticks.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Ticks.SubsecondDistribution(System.Int32)">
            <summary>
            Gets a sub-second time distribution in <see cref="T:GSF.Ticks"/> for the specified <paramref name="samplesPerSecond"/>.
            </summary>
            <param name="samplesPerSecond">Samples per second.</param>
            <returns>Array of sub-second time distribution in <see cref="T:GSF.Ticks"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.MillisecondDistribution(System.Int32)">
            <summary>
            Gets a sub-second time distribution in milliseconds for the specified <paramref name="samplesPerSecond"/>.
            </summary>
            <param name="samplesPerSecond">Samples per second.</param>
            <returns>Array of sub-second time distribution in milliseconds.</returns>
        </member>
        <member name="M:GSF.Ticks.MicrosecondDistribution(System.Int32)">
            <summary>
            Gets a sub-second time distribution in microseconds for the specified <paramref name="samplesPerSecond"/>.
            </summary>
            <param name="samplesPerSecond">Samples per second.</param>
            <returns>Array of sub-second time distribution in microseconds.</returns>
        </member>
        <member name="M:GSF.Ticks.AlignToSubsecondDistribution(GSF.Ticks,System.Int32,System.Int64)">
            <summary>
            Returns a floor-aligned sub-second distribution timestamp for given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <param name="timeResolution">Defines the time resolution to use when aligning <paramref name="timestamp"/> to its proper distribution timestamp.</param>
            <returns>A floor-aligned sub-second distribution timestamp for given <paramref name="timestamp"/>.</returns>
            <remarks>
            Time resolution value is typically a power of 10 based on the number of ticks per the desired resolution. The following table defines
            common resolutions and their respective <paramref name="timeResolution"/> values:
            <list type="table">
                <listheader>
                    <term>Resolution</term>
                    <description>Time Resolution Value</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="F:GSF.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="F:GSF.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="F:GSF.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>Ticks</term>
                    <description>0</description>
                </item>
            </list>
            If source timestamps have variation, i.e., they are not aligned within common distributions, the <paramref name="timeResolution"/>
            can be adjusted to include slack to accommodate the variance. When including slack in the time resolution, the value will depend
            on the <paramref name="samplesPerSecond"/>, for example: you could use 330,000 for 30 samples per second, 160,000 for 60 samples
            per second, and 80,000 for 120 samples per second. Actual slack value may need to be more or less depending on the size of the
            source timestamp variation.
            </remarks>
        </member>
        <member name="M:GSF.Ticks.AlignToMillisecondDistribution(GSF.Ticks,System.Int32)">
            <summary>
            Returns a floor-aligned millisecond distribution timestamp for given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <returns>A floor-aligned millisecond distribution timestamp for given <paramref name="timestamp"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.AlignToMicrosecondDistribution(GSF.Ticks,System.Int32)">
            <summary>
            Returns a floor-aligned microsecond distribution timestamp for given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <returns>A floor-aligned microsecond distribution timestamp for given <paramref name="timestamp"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.RoundToSubsecondDistribution(GSF.Ticks,System.Int32)">
            <summary>
            Returns the nearest sub-second distribution timestamp for given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <returns>The nearest sub-second distribution timestamp for given <paramref name="timestamp"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.RoundToSecondDistribution(GSF.Ticks,System.Double,GSF.Ticks)">
            <summary>
            Returns the nearest distribution timestamp for given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <param name="Baseline"> Starting Timestamp of the Distribution.</param>
            <returns>The nearest distribution timestamp for given <paramref name="timestamp"/>.</returns>
        </member>
        <member name="M:GSF.Ticks.ToSecondDistribution(GSF.Ticks,System.Double,GSF.Ticks,System.Int32)">
            <summary>
            Returns the distribution timestamp for given <paramref name="timestamp"/> or <see cref="F:GSF.Ticks.MinValue"/> if there is no TS within the specified Tolerance.
            </summary>
            <param name="timestamp">Timestamp to align.</param>
            <param name="samplesPerSecond">Samples per second to use for distribution.</param>
            <param name="tolerance">Tolerance of the TS in ticks.</param>
            <param name="baseline"> Starting Timestamp of the Distribution.</param>
            <returns>The distribution timestamp for given <paramref name="timestamp"/>or <see cref="F:GSF.Ticks.MinValue"/> .</returns>
        </member>
        <member name="T:GSF.TimeTagBase">
            <summary>
            Represents the base class for alternate timetag implementations.
            </summary>
        </member>
        <member name="F:GSF.TimeTagBase.DefaultFormat">
            <summary>
            Default format for <see cref="T:GSF.TimeTagBase"/> implementations.
            </summary>
        </member>
        <member name="M:GSF.TimeTagBase.#ctor(System.Int64,System.Decimal)">
            <summary>
            Creates a new <see cref="T:GSF.TimeTagBase"/>, given number base time (in ticks) and seconds since base time.
            </summary>
            <param name="baseDateOffsetTicks">Ticks of timetag base.</param>
            <param name="seconds">Number of seconds since base time.</param>
        </member>
        <member name="M:GSF.TimeTagBase.#ctor(System.Int64,GSF.Ticks)">
            <summary>
            Creates a new <see cref="T:GSF.TimeTagBase"/>, given standard .NET <see cref="T:System.DateTime"/>.
            </summary>
            <param name="baseDateOffsetTicks">Ticks of timetag base.</param>
            <param name="timestamp">Timestamp in <see cref="T:GSF.Ticks"/> used to create timetag from.</param>
        </member>
        <member name="M:GSF.TimeTagBase.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a new <see cref="T:GSF.TimeTagBase"/> from serialization parameters.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with populated with data.</param>
            <param name="context">The source <see cref="T:System.Runtime.Serialization.StreamingContext"/> for this deserialization.</param>
        </member>
        <member name="P:GSF.TimeTagBase.Value">
            <summary>
            Gets or sets number of seconds (including any fractional seconds) since base time.
            </summary>
        </member>
        <member name="P:GSF.TimeTagBase.BaseDateOffsetTicks">
            <summary>
            Gets ticks representing the absolute minimum time of this timetag implementation.
            </summary>
        </member>
        <member name="M:GSF.TimeTagBase.ToDateTime">
            <summary>
            Returns standard .NET <see cref="T:System.DateTime"/> representation for timetag.
            </summary>
            <returns>A <see cref="T:System.DateTime"/>.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.ToString">
            <summary>
            Returns basic textual representation for timetag.
            </summary>
            <remarks>
            Format is "yyyy-MM-dd HH:mm:ss.fff" so that textual representation can be sorted in the
            correct chronological order.
            </remarks>
            <returns>A <see cref="T:System.String"/> value representing the timetag.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.ToString(System.String)">
            <summary>
            Returns textual representation for timetag in the specified <paramref name="format"/>.
            </summary>
            <param name="format">Format of text output.</param>
            <returns><see cref="T:System.String"/> of textual representation for timetag.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.ToString(System.IFormatProvider)">
            <summary>
            Returns textual representation for timetag using the specified <paramref name="provider"/>.
            </summary>
            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
            <returns><see cref="T:System.String"/> of textual representation for timetag.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.ToString(System.String,System.IFormatProvider)">
            <summary>
            Returns textual representation for timetag in the specified <paramref name="format"/> using 
            the specified <paramref name="provider"/>.
            </summary>
            <param name="format">Format of text output.</param>
            <param name="provider">An <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.</param>
            <returns><see cref="T:System.String"/> of textual representation for timetag.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.CompareTo(GSF.TimeTagBase)">
            <summary>
            Compares the <see cref="T:GSF.TimeTagBase"/> with another <see cref="T:GSF.TimeTagBase"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeTagBase"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.CompareTo(System.DateTime)">
            <summary>
            Compares the <see cref="T:GSF.TimeTagBase"/> with a <see cref="T:System.DateTime"/>.
            </summary>
            <param name="other">The <see cref="T:System.DateTime"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:GSF.TimeTagBase"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><see cref="T:System.Object"/> is not an <see cref="T:GSF.TimeTagBase"/> or a <see cref="T:System.DateTime"/>.</exception>
        </member>
        <member name="M:GSF.TimeTagBase.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>;
            otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentException"><see cref="T:System.Object"/> is not an <see cref="T:GSF.TimeTagBase"/>.</exception>
        </member>
        <member name="M:GSF.TimeTagBase.Equals(GSF.TimeTagBase)">
            <summary>
            Determines whether the specified <see cref="T:GSF.TimeTagBase"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeTagBase"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>
            true if the specified <see cref="T:GSF.TimeTagBase"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeTagBase.Equals(System.DateTime)">
            <summary>
            Determines whether the specified <see cref="T:System.DateTime"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>.
            </summary>
            <param name="other">The <see cref="T:System.DateTime"/> to compare with the current <see cref="T:GSF.TimeTagBase"/>.</param>
            <returns>
            true if the specified <see cref="T:System.DateTime"/> is equal to the current <see cref="T:GSF.TimeTagBase"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeTagBase.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeTagBase"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeTagBase"/>.</returns>
            <remarks>Hash code based on number of seconds timetag represents.</remarks>
        </member>
        <member name="M:GSF.TimeTagBase.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with the data needed to serialize the target object.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> to populate with data.</param>
            <param name="context">The destination <see cref="T:System.Runtime.Serialization.StreamingContext"/> for this serialization.</param>
        </member>
        <member name="M:GSF.TimeTagBase.op_Equality(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_Equality(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_Equality(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_Inequality(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is not equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is not equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_Inequality(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is not equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is not equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_Inequality(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is not equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is not equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThan(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is less than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThan(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is less than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThan(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is less than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThanOrEqual(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThanOrEqual(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_LessThanOrEqual(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is less than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThan(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThan(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThan(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThanOrEqual(GSF.TimeTagBase,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThanOrEqual(System.DateTime,GSF.TimeTagBase)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="M:GSF.TimeTagBase.op_GreaterThanOrEqual(GSF.TimeTagBase,System.DateTime)">
            <summary>
            Returns true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>.
            </summary>
            <param name="value1">Value 1 in the comparison.</param>
            <param name="value2">Value 2 in the comparison.</param>
            <returns>true if <paramref name="value1"/> is greater than or equal to <paramref name="value2"/>; otherwise false.</returns>
        </member>
        <member name="T:GSF.UInt24">
            <summary>Represents a 3-byte, 24-bit unsigned integer.</summary>
            <remarks>
            <para>
            This class behaves like most other intrinsic unsigned integers but allows a 3-byte, 24-bit integer implementation
            that is often found in many digital-signal processing arenas and different kinds of protocol parsing.  An unsigned
            24-bit integer is typically used to save storage space on disk where its value range of 0 to 16777215 is sufficient,
            but the unsigned Int16 value range of 0 to 65535 is too small.
            </para>
            <para>
            This structure uses an UInt32 internally for storage and most other common expected integer functionality, so using
            a 24-bit integer will not save memory.  However, if the 24-bit unsigned integer range (0 to 16777215) suits your
            data needs you can save disk space by only storing the three bytes that this integer actually consumes.  You can do
            this by calling the UInt24.GetBytes function to return a three byte binary array that can be serialized to the desired
            destination and then calling the UInt24.GetValue function to restore the UInt24 value from those three bytes.
            </para>
            <para>
            All the standard operators for the UInt24 have been fully defined for use with both UInt24 and UInt32 unsigned integers;
            you should find that without the exception UInt24 can be compared and numerically calculated with an UInt24 or UInt32.
            Necessary casting should be minimal and typical use should be very simple - just as if you are using any other native
            unsigned integer.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.UInt24.BitMask">
            <summary>High byte bit-mask used when a 24-bit integer is stored within a 32-bit integer. This field is constant.</summary>
        </member>
        <member name="M:GSF.UInt24.#ctor(GSF.UInt24)">
            <summary>Creates 24-bit unsigned integer from an existing 24-bit unsigned integer.</summary>
            <param name="value">A <see cref="T:GSF.UInt24"/> to create the new value from. </param>
        </member>
        <member name="M:GSF.UInt24.#ctor(System.UInt32)">
            <summary>Creates 24-bit unsigned integer from a 32-bit unsigned integer.</summary>
            <param name="value">32-bit unsigned integer to use as new 24-bit unsigned integer value.</param>
            <exception cref="T:System.OverflowException">Source values over 24-bit max range will cause an overflow exception.</exception>
        </member>
        <member name="M:GSF.UInt24.#ctor(System.Byte[],System.Int32)">
            <summary>Creates 24-bit unsigned integer from three bytes at a specified position in a byte array.</summary>
            <param name="value">An array of bytes.</param>
            <param name="startIndex">The starting position within <paramref name="value"/>.</param>
            <remarks>
            <para>You can use this constructor in-lieu of a System.BitConverter.ToUInt24 function.</para>
            <para>Bytes endian order assumed to match that of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is greater than <paramref name="value"/> length.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> length from <paramref name="startIndex"/> is too small to represent a <see cref="T:GSF.UInt24"/>.</exception>
        </member>
        <member name="M:GSF.UInt24.GetBytes">
            <summary>Returns the UInt24 value as an array of three bytes.</summary>
            <returns>An array of bytes with length 3.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.GetBytes function.</para>
            <para>Bytes will be returned in endian order of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
        </member>
        <member name="M:GSF.UInt24.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not an UInt32 or UInt24.</exception>
        </member>
        <member name="M:GSF.UInt24.CompareTo(GSF.UInt24)">
            <summary>
            Compares this instance to a specified 24-bit unsigned integer and returns an indication of their
            relative values.
            </summary>
            <param name="value">An integer to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.UInt24.CompareTo(System.UInt32)">
            <summary>
            Compares this instance to a specified 32-bit unsigned integer and returns an indication of their
            relative values.
            </summary>
            <param name="value">An integer to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.UInt24.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of UInt32 or UInt24 and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.UInt24.Equals(GSF.UInt24)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified UInt24 value.
            </summary>
            <param name="obj">An UInt24 value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.UInt24.Equals(System.UInt32)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified uint value.
            </summary>
            <param name="obj">An UInt32 value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.UInt24.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit unsigned integer hash code.
            </returns>
        </member>
        <member name="M:GSF.UInt24.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeroes.
            </returns>
        </member>
        <member name="M:GSF.UInt24.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.UInt24.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.UInt24.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.UInt24.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its 24-bit unsigned integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A 24-bit unsigned integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than UInt24.MinValue or greater than UInt24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.UInt24.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its 24-bit unsigned integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <returns>
            A 24-bit unsigned integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than UInt24.MinValue or greater than UInt24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.UInt24.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its 24-bit
            unsigned integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A 24-bit unsigned integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than UInt24.MinValue or greater than UInt24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.UInt24.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its 24-bit
            unsigned integer equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A 24-bit unsigned integer equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than UInt24.MinValue or greater than UInt24.MaxValue.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.UInt24.TryParse(System.String,GSF.UInt24@)">
            <summary>
            Converts the string representation of a number to its 24-bit unsigned integer equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the 24-bit unsigned integer value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than UInt24.MinValue or greater than UInt24.MaxValue.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.UInt24.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.UInt24@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            24-bit unsigned integer equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            A typical value to specify is System.Globalization.NumberStyles.Integer.
            </param>
            <param name="result">
            When this method returns, contains the 24-bit unsigned integer value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than UInt24.MinValue or greater than
            UInt24.MaxValue. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.UInt24.GetTypeCode">
            <summary>
            Returns the System.TypeCode for value type System.UInt32 (there is no defined type code for an UInt24).
            </summary>
            <returns>The enumerated constant, System.TypeCode.UInt32.</returns>
            <remarks>
            There is no defined UInt24 type code and since an UInt24 will easily fit inside an UInt32, the
            UInt32 type code is returned.
            </remarks>
        </member>
        <member name="M:GSF.UInt24.op_Equality(GSF.UInt24,GSF.UInt24)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Equality(System.UInt32,GSF.UInt24)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Equality(GSF.UInt24,System.UInt32)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Inequality(GSF.UInt24,GSF.UInt24)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Inequality(System.UInt32,GSF.UInt24)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Inequality(GSF.UInt24,System.UInt32)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThan(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThan(System.UInt32,GSF.UInt24)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThan(GSF.UInt24,System.UInt32)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThanOrEqual(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThanOrEqual(System.UInt32,GSF.UInt24)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LessThanOrEqual(GSF.UInt24,System.UInt32)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThan(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThan(System.UInt32,GSF.UInt24)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThan(GSF.UInt24,System.UInt32)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThanOrEqual(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThanOrEqual(System.UInt32,GSF.UInt24)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_GreaterThanOrEqual(GSF.UInt24,System.UInt32)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Boolean"/> value representing the result.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.Enum)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Enum"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.String)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.String"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.Decimal)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Decimal"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.Double)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Double"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.Single)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Single"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.UInt64)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt64"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(System.UInt32)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt32"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(GSF.Int24)~GSF.UInt24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.Int24"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(GSF.UInt24)~GSF.Int24">
            <summary>
            Explicitly converts value to an <see cref="T:GSF.Int24"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:GSF.Int24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(GSF.UInt24)~System.Int16">
            <summary>
            Explicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Int16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Int16"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(GSF.UInt24)~System.UInt16">
            <summary>
            Explicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.UInt16"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.UInt16"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Explicit(GSF.UInt24)~System.Byte">
            <summary>
            Explicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Byte"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Byte"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(System.Byte)~GSF.UInt24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Byte"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(System.Char)~GSF.UInt24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.Char"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(System.UInt16)~GSF.UInt24">
            <summary>
            Implicitly converts value to an <see cref="T:GSF.UInt24"/>.
            </summary>
            <param name="value"><see cref="T:System.UInt16"/> value to be converted.</param>
            <returns><see cref="T:GSF.UInt24"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.Int32">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Int32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Int32"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.UInt32">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.UInt32"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.UInt32"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.Int64">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Int64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Int64"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.UInt64">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.UInt64"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.UInt64"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Double"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Double"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.Single">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Single"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Single"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.Decimal">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.Decimal"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.Decimal"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Implicit(GSF.UInt24)~System.String">
            <summary>
            Implicitly converts <see cref="T:GSF.UInt24"/> to <see cref="T:System.String"/>.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to be converted.</param>
            <returns><see cref="T:System.String"/> value that is the result of the conversion.</returns>
        </member>
        <member name="M:GSF.UInt24.op_True(GSF.UInt24)">
            <summary>
            Returns true if value is greater than zero.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to evaluate.</param>
            <returns><see cref="T:System.Boolean"/> value indicating whether the value is greater than zero.</returns>
        </member>
        <member name="M:GSF.UInt24.op_False(GSF.UInt24)">
            <summary>
            Returns true if value is equal to zero.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to evaluate.</param>
            <returns><see cref="T:System.Boolean"/> value indicating whether the value is equal than zero.</returns>
        </member>
        <member name="M:GSF.UInt24.op_OnesComplement(GSF.UInt24)">
            <summary>
            Returns bitwise complement of value.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to evaluate.</param>
            <returns><see cref="T:GSF.UInt24"/> value representing the complement of the input value.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseAnd(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value representing the logical bitwise AND of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseAnd(System.UInt32,GSF.UInt24)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise AND of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseAnd(GSF.UInt24,System.UInt32)">
            <summary>
            Returns logical bitwise AND of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise AND of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseOr(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value representing the logical bitwise OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseOr(System.UInt32,GSF.UInt24)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_BitwiseOr(GSF.UInt24,System.UInt32)">
            <summary>
            Returns logical bitwise OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_ExclusiveOr(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value representing the logical bitwise exclusive-OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_ExclusiveOr(System.UInt32,GSF.UInt24)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise exclusive-OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_ExclusiveOr(GSF.UInt24,System.UInt32)">
            <summary>
            Returns logical bitwise exclusive-OR of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value representing the logical bitwise exclusive-OR of the values.</returns>
        </member>
        <member name="M:GSF.UInt24.op_RightShift(GSF.UInt24,System.Int32)">
            <summary>
            Returns value after right shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to right shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> value indicating the number of bits to right shift by.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of right shift operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_LeftShift(GSF.UInt24,System.Int32)">
            <summary>
            Returns value after left shifts of first value by the number of bits specified by second value.
            </summary>
            <param name="value"><see cref="T:GSF.UInt24"/> value to left shift.</param>
            <param name="shifts"><see cref="T:System.Int32"/> value indicating the number of bits to left shift by.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of left shift operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Modulus(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of modulus operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Modulus(System.UInt32,GSF.UInt24)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of modulus operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Modulus(GSF.UInt24,System.UInt32)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of modulus operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Addition(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of addition operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Addition(System.UInt32,GSF.UInt24)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of addition operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Addition(GSF.UInt24,System.UInt32)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of addition operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Subtraction(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of subtraction operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Subtraction(System.UInt32,GSF.UInt24)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of subtraction operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Subtraction(GSF.UInt24,System.UInt32)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of subtraction operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Increment(GSF.UInt24)">
            <summary>
            Returns incremented value.
            </summary>
            <param name="value">The operand.</param>
            <returns><see cref="T:GSF.UInt24"/> result of increment.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Decrement(GSF.UInt24)">
            <summary>
            Returns decremented value.
            </summary>
            <param name="value">The operand.</param>
            <returns><see cref="T:GSF.UInt24"/> result of decrement.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Multiply(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of multiplication operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Multiply(System.UInt32,GSF.UInt24)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of multiplication operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Multiply(GSF.UInt24,System.UInt32)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of multiplication operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Division(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:GSF.UInt24"/> value as result of division operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Division(System.UInt32,GSF.UInt24)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of division operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Division(GSF.UInt24,System.UInt32)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.UInt32"/> value as result of division operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Exponent(GSF.UInt24,GSF.UInt24)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Double"/> value as result of operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Exponent(System.Int32,GSF.UInt24)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1"><see cref="T:System.UInt32"/> left hand operand.</param>
            <param name="value2"><see cref="T:GSF.UInt24"/> right hand operand.</param>
            <returns><see cref="T:System.Double"/> value as result of operation.</returns>
        </member>
        <member name="M:GSF.UInt24.op_Exponent(GSF.UInt24,System.Int32)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1"><see cref="T:GSF.UInt24"/> left hand operand.</param>
            <param name="value2"><see cref="T:System.UInt32"/> right hand operand.</param>
            <returns><see cref="T:System.Double"/> value as result of operation.</returns>
        </member>
        <member name="F:GSF.UInt24.MaxValue">
            <summary>
            Represents the largest possible value of an Int24. This field is constant.
            </summary>
        </member>
        <member name="F:GSF.UInt24.MinValue">
            <summary>
            Represents the smallest possible value of an Int24. This field is constant.
            </summary>
        </member>
        <member name="M:GSF.UInt24.GetBytes(GSF.UInt24)">
            <summary>Returns the specified UInt24 value as an array of three bytes.</summary>
            <param name="value">UInt24 value to convert to bytes.</param>
            <returns>An array of bytes with length 3.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.GetBytes(UInt24) function.</para>
            <para>Bytes will be returned in endian order of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
        </member>
        <member name="M:GSF.UInt24.GetValue(System.Byte[],System.Int32)">
            <summary>Returns a 24-bit unsigned integer from three bytes at a specified position in a byte array.</summary>
            <param name="value">An array of bytes.</param>
            <param name="startIndex">The starting position within value.</param>
            <returns>A 24-bit unsigned integer formed by three bytes beginning at startIndex.</returns>
            <remarks>
            <para>You can use this function in-lieu of a System.BitConverter.ToUInt24 function.</para>
            <para>Bytes endian order assumed to match that of currently executing process architecture (little-endian on Intel platforms).</para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="value"/> cannot be null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> is greater than <paramref name="value"/> length.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="value"/> length from <paramref name="startIndex"/> is too small to represent an <see cref="T:GSF.UInt24"/>.</exception>
        </member>
        <member name="T:GSF.Units.AngleUnit">
            <summary>
            Represents the units available for an <see cref="T:GSF.Units.Angle"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.Radians">
            <summary>
            Radian angle units.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.Degrees">
            <summary>
            Degree angle units.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.Grads">
            <summary>
            Grad angle units, a.k.a., grade, gradian and gon.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.ArcMinutes">
            <summary>
            ArcMinute angle units, a.k.a., minute of arc or MOA.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.ArcSeconds">
            <summary>
            ArcSecond angle units, a.k.a., second of arc.
            </summary>
        </member>
        <member name="F:GSF.Units.AngleUnit.AngularMil">
            <summary>
            AngularMil angle units, a.k.a., mil.
            </summary>
        </member>
        <member name="T:GSF.Units.Angle">
            <summary>
            Represents an angle, in radians, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing an angle in radians; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other angle representations, specifically
            degrees, grads (a.k.a., grade, gradian and gon), arcminutes (a.k.a., minute of arc or MOA),
            arcseconds (a.k.a., second of arc) and angular mil (a.k.a., mil).
            <example>
            This example converts degrees to grads:
            <code>
            public double GetGrads(double degrees)
            {
                return Angle.FromDegrees(degrees).ToGrads();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Angle.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/>.
            </summary>
            <param name="value">New angle value in radians.</param>
        </member>
        <member name="M:GSF.Units.Angle.ToDegrees">
            <summary>
            Gets the <see cref="T:GSF.Units.Angle"/> value in degrees.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Angle"/> in degrees.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ToGrads">
            <summary>
            Gets the <see cref="T:GSF.Units.Angle"/> value in grads.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Angle"/> in grads.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ToArcMinutes">
            <summary>
            Gets the <see cref="T:GSF.Units.Angle"/> value in arcminutes.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Angle"/> in arcminutes.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ToArcSeconds">
            <summary>
            Gets the <see cref="T:GSF.Units.Angle"/> value in arcseconds.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Angle"/> in arcseconds.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ToAngularMil">
            <summary>
            Gets the <see cref="T:GSF.Units.Angle"/> value in angular mil.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Angle"/> in angular mil.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ConvertTo(GSF.Units.AngleUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Angle"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Angle"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ToRange(GSF.Units.Angle,System.Boolean)">
            <summary>
            Gets the equivalent angle moved within the range of <paramref name="minValue"/>
            and <paramref name="minValue"/> + 2.0 * <see cref="F:System.Math.PI"/>.
            </summary>
            <param name="minValue">The minimum value of the range.</param>
            <param name="inclusive">Indicates whether the range is inclusive of the minimum value.</param>
            <returns>The equivalent angle within the specified range.</returns>
        </member>
        <member name="M:GSF.Units.Angle.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Angle"/>.</exception>
        </member>
        <member name="M:GSF.Units.Angle.CompareTo(GSF.Units.Angle)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Angle"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">An <see cref="T:GSF.Units.Angle"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Angle"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.Equals(GSF.Units.Angle)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Angle"/> value.
            </summary>
            <param name="obj">An <see cref="T:GSF.Units.Angle"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Angle.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Angle"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            An <see cref="T:GSF.Units.Angle"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or greater than <see cref="F:GSF.Units.Angle.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Angle.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Angle"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Angle"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or greater than <see cref="F:GSF.Units.Angle.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Angle.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Angle"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Angle"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or greater than <see cref="F:GSF.Units.Angle.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Angle.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Angle"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Angle"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or greater than <see cref="F:GSF.Units.Angle.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Angle.TryParse(System.String,GSF.Units.Angle@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Angle"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Angle"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or greater than <see cref="F:GSF.Units.Angle.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Angle.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Angle@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Angle"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Angle"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Angle.MinValue"/> or
            greater than <see cref="F:GSF.Units.Angle.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Angle.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Equality(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Inequality(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_LessThan(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_LessThanOrEqual(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_GreaterThan(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_GreaterThanOrEqual(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the operation result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Implicit(System.Double)~GSF.Units.Angle">
            <summary>
            Implicitly converts value, represented in radians, to an <see cref="T:GSF.Units.Angle"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Implicit(GSF.Units.Angle)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Angle"/>, represented in radians, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">An <see cref="T:GSF.Units.Angle"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Modulus(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Addition(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Subtraction(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Multiply(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Division(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Angle"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Angle.op_Exponent(GSF.Units.Angle,GSF.Units.Angle)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Angle"/> as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Angle"/> as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> as the result.</returns>
        </member>
        <member name="F:GSF.Units.Angle.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Angle"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Angle.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Angle"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Angle.FromDegrees(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/> value from the specified <paramref name="value"/> in degrees.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Angle"/> value in degrees.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> object from the specified <paramref name="value"/> in degrees.</returns>
        </member>
        <member name="M:GSF.Units.Angle.FromGrads(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/> value from the specified <paramref name="value"/> in grads.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Angle"/> value in grads.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> object from the specified <paramref name="value"/> in grads.</returns>
        </member>
        <member name="M:GSF.Units.Angle.FromArcMinutes(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/> value from the specified <paramref name="value"/> in arcminutes.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Angle"/> value in arcminutes.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> object from the specified <paramref name="value"/> in arcminutes.</returns>
        </member>
        <member name="M:GSF.Units.Angle.FromArcSeconds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/> value from the specified <paramref name="value"/> in arcseconds.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Angle"/> value in arcseconds.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> object from the specified <paramref name="value"/> in arcseconds.</returns>
        </member>
        <member name="M:GSF.Units.Angle.FromAngularMil(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Angle"/> value from the specified <paramref name="value"/> in angular mil.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Angle"/> value in angular mil.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> object from the specified <paramref name="value"/> in angular mil.</returns>
        </member>
        <member name="M:GSF.Units.Angle.ConvertFrom(System.Double,GSF.Units.AngleUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Angle"/> in radians.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Angle"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Angle.Unwrap(System.Collections.Generic.IEnumerable{GSF.Units.Angle})">
            <summary>
            Unwraps a set of <see cref="T:GSF.Units.Angle"/> values so a comparable mathematical operation can be applied.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.Units.Angle"/> values to unwrap.</param>
            <returns>Unwrapped set of <see cref="T:GSF.Units.Angle"/> values.</returns>
            <remarks>
            For Angles that wrap, e.g., between -180 and +180, this algorithm unwraps the values to make the values mathematically comparable.
            </remarks>
        </member>
        <member name="M:GSF.Units.Angle.Average(System.Collections.Generic.IEnumerable{GSF.Units.Angle})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:GSF.Units.Angle"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.Units.Angle"/> values over which to calculate average.</param>
            <returns>Average of the specified sequence of <see cref="T:GSF.Units.Angle"/> values.</returns>
            <remarks>
            For Angles that wrap, e.g., between -180 and +180, this algorithm takes the wrapping into account when calculating the average.
            </remarks>
        </member>
        <member name="T:GSF.Units.ChargeUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Charge"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.Coulombs">
            <summary>
            Coulomb charge units, i.e., ampere-seconds.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.AmpereHours">
            <summary>
            AmpereHour charge units.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.Abcoulombs">
            <summary>
            Abcoulomb charge units, a.k.a., an electromagnetic unit.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.Statcoulombs">
            <summary>
            Statcoulomb charge units, a.k.a., electrostatic unit or franklin.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.AtomicUnitsOfCharge">
            <summary>
            Atomic charge units.
            </summary>
        </member>
        <member name="F:GSF.Units.ChargeUnit.Faraday">
            <summary>
            Faraday charge units.
            </summary>
        </member>
        <member name="T:GSF.Units.Charge">
            <summary>
            Represents an electric charge measurement, in coulombs (i.e., ampere-seconds), as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a charge in coulombs; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other charge representations, specifically
            ampere-hours, abcoulomb (a.k.a., an electromagnetic unit), statcoulomb (a.k.a., electrostatic unit or franklin), atomic unit of charge
            and faraday. Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert charge, in coulombs, to kilocoulombs:
            <code>
            public double GetKilocoulombs(Charge coulombs)
            {
                return coulombs / SI.Kilo;
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Charge.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/>.
            </summary>
            <param name="value">New charge value in coulombs.</param>
        </member>
        <member name="M:GSF.Units.Charge.ToAmpereHours">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in ampere-hours.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in ampere-hours.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ToAbcoulombs">
            <summary>
            Gets the <see cref="T:GSF.Units.Charge"/> value in abcoulombs.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Charge"/> in abcoulombs.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ToStatcoulombs">
            <summary>
            Gets the <see cref="T:GSF.Units.Charge"/> value in statcoulombs.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Charge"/> in statcoulombs.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ToAtomicUnitsOfCharge">
            <summary>
            Gets the <see cref="T:GSF.Units.Charge"/> value in atomic units of charge.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Charge"/> in atomic units of charge.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ToFaraday">
            <summary>
            Gets the <see cref="T:GSF.Units.Charge"/> value in faraday.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Charge"/> in faraday.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ConvertTo(GSF.Units.ChargeUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Charge"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Charge"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Charge.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Charge"/>.</exception>
        </member>
        <member name="M:GSF.Units.Charge.CompareTo(GSF.Units.Charge)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Charge"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Charge"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Charge"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.Equals(GSF.Units.Charge)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Charge"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Charge"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Charge.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Charge"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Charge"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or greater than <see cref="F:GSF.Units.Charge.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Charge.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Charge"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Charge"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or greater than <see cref="F:GSF.Units.Charge.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Charge.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Charge"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Charge"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or greater than <see cref="F:GSF.Units.Charge.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Charge.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Charge"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Charge"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or greater than <see cref="F:GSF.Units.Charge.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Charge.TryParse(System.String,GSF.Units.Charge@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Charge"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Charge"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or greater than <see cref="F:GSF.Units.Charge.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Charge.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Charge@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Charge"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Charge"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Charge.MinValue"/> or
            greater than <see cref="F:GSF.Units.Charge.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Charge.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Equality(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Inequality(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_LessThan(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_LessThanOrEqual(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_GreaterThan(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_GreaterThanOrEqual(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Implicit(System.Double)~GSF.Units.Charge">
            <summary>
            Implicitly converts value, represented in coulombs, to a <see cref="T:GSF.Units.Charge"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Implicit(GSF.Units.Charge)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Charge"/>, represented in coulombs, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Charge"/> value.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Modulus(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Addition(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Subtraction(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Multiply(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Division(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Charge"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Charge.op_Exponent(GSF.Units.Charge,GSF.Units.Charge)">
            <summary>
            Returns result of first value raised to charge of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Charge"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Charge"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> as the result.</returns>
        </member>
        <member name="F:GSF.Units.Charge.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Charge"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Charge.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Charge"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Charge.FromAmpereHours(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/> value from the specified <paramref name="value"/> in ampere-hours.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Charge"/> value in ampere-hours.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> object from the specified <paramref name="value"/> in ampere-hours.</returns>
        </member>
        <member name="M:GSF.Units.Charge.FromAbcoulombs(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/> value from the specified <paramref name="value"/> in abcoulombs.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Charge"/> value in abcoulombs.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> object from the specified <paramref name="value"/> in abcoulombs.</returns>
        </member>
        <member name="M:GSF.Units.Charge.FromStatcoulombs(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/> value from the specified <paramref name="value"/> in statcoulombs.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Charge"/> value in statcoulombs.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> object from the specified <paramref name="value"/> in statcoulombs.</returns>
        </member>
        <member name="M:GSF.Units.Charge.FromAtomicUnitsOfCharge(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/> value from the specified <paramref name="value"/> in atomic units of charge.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Charge"/> value in atomic units of charge.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> object from the specified <paramref name="value"/> in atomic units of charge.</returns>
        </member>
        <member name="M:GSF.Units.Charge.FromFaraday(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Charge"/> value from the specified <paramref name="value"/> in faraday.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Charge"/> value in faraday.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> object from the specified <paramref name="value"/> in faraday.</returns>
        </member>
        <member name="M:GSF.Units.Charge.ConvertFrom(System.Double,GSF.Units.ChargeUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Charge"/> in coulombs.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Charge"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.CurrentUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Current"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.CurrentUnit.Amperes">
            <summary>
            Ampere current units.
            </summary>
        </member>
        <member name="F:GSF.Units.CurrentUnit.Abamperes">
            <summary>
            Abampere current units, a.k.a., an electromagnetic unit.
            </summary>
        </member>
        <member name="F:GSF.Units.CurrentUnit.Statamperes">
            <summary>
            Statampere current units, a.k.a., esu per second.
            </summary>
        </member>
        <member name="T:GSF.Units.Current">
            <summary>
            Represents an electric current measurement, in amperes, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a current in amperes; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other current representations, specifically
            abampere (a.k.a., an electromagnetic unit) and statampere (a.k.a., esu per second). Metric conversions are handled
            simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert current, in amperes, to kiloamperes:
            <code>
            public double GetKiloamperes(Current amperes)
            {
                return amperes / SI.Kilo;
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Current.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Current"/>.
            </summary>
            <param name="value">New current value in amperes.</param>
        </member>
        <member name="M:GSF.Units.Current.ToAbamperes">
            <summary>
            Gets the <see cref="T:GSF.Units.Current"/> value in abamperes.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Current"/> in abamperes.</returns>
        </member>
        <member name="M:GSF.Units.Current.ToStatamperes">
            <summary>
            Gets the <see cref="T:GSF.Units.Current"/> value in statamperes.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Current"/> in statamperes.</returns>
        </member>
        <member name="M:GSF.Units.Current.ConvertTo(GSF.Units.CurrentUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Current"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Current"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Current.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Current"/>.</exception>
        </member>
        <member name="M:GSF.Units.Current.CompareTo(GSF.Units.Current)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Current"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Current"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Current"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.Equals(GSF.Units.Current)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Current"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Current"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Current.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Current"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Current"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or greater than <see cref="F:GSF.Units.Current.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Current.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Current"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Current"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or greater than <see cref="F:GSF.Units.Current.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Current.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Current"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Current"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or greater than <see cref="F:GSF.Units.Current.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Current.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Current"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Current"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or greater than <see cref="F:GSF.Units.Current.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Current.TryParse(System.String,GSF.Units.Current@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Current"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Current"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or greater than <see cref="F:GSF.Units.Current.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Current.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Current@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Current"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Current"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Current.MinValue"/> or
            greater than <see cref="F:GSF.Units.Current.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Current.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Equality(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Inequality(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_LessThan(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_LessThanOrEqual(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_GreaterThan(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_GreaterThanOrEqual(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Implicit(System.Double)~GSF.Units.Current">
            <summary>
            Implicitly converts value, represented in amperes, to a <see cref="T:GSF.Units.Current"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Implicit(GSF.Units.Current)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Current"/>, represented in amperes, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Current"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Modulus(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Addition(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Subtraction(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Multiply(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Division(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Current"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Current.op_Exponent(GSF.Units.Current,GSF.Units.Current)">
            <summary>
            Returns result of first value raised to current of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Current"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Current"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Current.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Current"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Current.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Current"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Current.FromAbamperes(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Current"/> value from the specified <paramref name="value"/> in abamperes.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Current"/> value in abamperes.</param>
            <returns>New <see cref="T:GSF.Units.Current"/> object from the specified <paramref name="value"/> in abamperes.</returns>
        </member>
        <member name="M:GSF.Units.Current.FromStatamperes(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Current"/> value from the specified <paramref name="value"/> in statamperes.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Current"/> value in statamperes.</param>
            <returns>New <see cref="T:GSF.Units.Current"/> object from the specified <paramref name="value"/> in statamperes.</returns>
        </member>
        <member name="M:GSF.Units.Current.ConvertFrom(System.Double,GSF.Units.CurrentUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Current"/> in amperes.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Current"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.EE.CommonVoltageLevels">
            <summary>
            Defines common transmission voltage levels.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.CommonVoltageLevels.Values">
            <summary>
            Gets common transmission voltage level values.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.VoltageLevelExtensions">
            <summary>
            Defines extension functions related to <see cref="T:GSF.Units.EE.VoltageLevel"/> enumeration.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.VoltageLevelExtensions.Value(GSF.Units.EE.VoltageLevel)">
            <summary>
            Gets the voltage level for the specified <see cref="T:GSF.Units.EE.VoltageLevel"/> enum value.
            </summary>
            <param name="level">Target <see cref="T:GSF.Units.EE.VoltageLevel"/> enum value.</param>
            <returns>Voltage level for the specified <paramref name="level"/>.</returns>
        </member>
        <member name="M:GSF.Units.EE.VoltageLevelExtensions.TryGetVoltageLevel(System.Int32,GSF.Units.EE.VoltageLevel@)">
            <summary>
            Attempts to get the <see cref="T:GSF.Units.EE.VoltageLevel"/> enum value for the source kV <paramref name="value"/>.
            </summary>
            <param name="value">kV value to attempt to find.</param>
            <param name="level">Mapped <see cref="T:GSF.Units.EE.VoltageLevel"/> enum value, if found.</param>
            <returns>
            <c>true</c> if matching <see cref="T:GSF.Units.EE.VoltageLevel"/> enum value is found for specified kV
            <paramref name="value"/>; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="T:GSF.Units.EE.LineFrequency">
            <summary>
            Nominal line frequencies enumeration.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.LineFrequency.Hz50">
            <summary>
            50Hz nominal frequency.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.LineFrequency.Hz60">
            <summary>
            60Hz nominal frequency.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.NamespaceDoc">
            <summary>
            Contains classes that represent standard Electrical Engineering units and types.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.Phasor">
            <summary>
            Represents a phasor as a complex number value and a type (i.e., a voltage or a current).
            </summary>
        </member>
        <member name="F:GSF.Units.EE.Phasor.Type">
            <summary>
            Phasor type.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.Phasor.Value">
            <summary>
            Phasor value.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.Phasor.#ctor(GSF.Units.EE.PhasorType,System.Double,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.Units.EE.Phasor"/> of the specified <paramref name="type"/> from the given rectangular values. 
            </summary>
            <param name="type">Type of phasor, i.e., current or voltage.</param>
            <param name="real">The real component of the <see cref="T:GSF.ComplexNumber"/>.</param>
            <param name="imaginary">The imaginary component of the <see cref="T:GSF.ComplexNumber"/>.</param>
        </member>
        <member name="M:GSF.Units.EE.Phasor.#ctor(GSF.Units.EE.PhasorType,GSF.Units.Angle,System.Double)">
            <summary>
            Creates a <see cref="T:GSF.Units.EE.Phasor"/> of the specified <paramref name="type"/> from the given polar values.
            </summary>
            <param name="type">Type of phasor, i.e., current or voltage.</param>
            <param name="angle">The <see cref="T:GSF.Units.Angle"/> component, in radians, of the <see cref="T:GSF.ComplexNumber"/>.</param>
            <param name="magnitude">The magnitude (or absolute value) component of the <see cref="T:GSF.ComplexNumber"/>.</param>
        </member>
        <member name="M:GSF.Units.EE.Phasor.#ctor(GSF.Units.EE.PhasorType,GSF.ComplexNumber)">
            <summary>
            Creates a <see cref="T:GSF.Units.EE.Phasor"/> of the specified <paramref name="type"/> from the given <see cref="T:GSF.ComplexNumber"/>.
            </summary>
            <param name="type">Type of phasor, i.e., current or voltage.</param>
            <param name="z"><see cref="T:GSF.ComplexNumber"/> to be copied.</param>
        </member>
        <member name="P:GSF.Units.EE.Phasor.Conjugate">
            <summary>
            Gets the complex conjugate of this <see cref="T:GSF.Units.EE.Phasor"/>.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.Phasor.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if <paramref name="obj"/> is an instance of Phasor and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.Equals(GSF.Units.EE.Phasor)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified Phasor value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.EE.Phasor"/> to compare to this instance.</param>
            <returns>
            True if <paramref name="obj"/> has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this <see cref="T:GSF.ComplexNumber"/> instance.
            </returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Implicit(GSF.Units.EE.Phasor)~GSF.ComplexNumber">
            <summary>
            Implicitly converts a <see cref="T:GSF.Units.EE.Phasor"/> to a <see cref="T:GSF.ComplexNumber"/>.
            </summary>
            <param name="phasor">Operand.</param>
            <returns>ComplexNumber representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Implicit(GSF.Units.EE.Phasor)~System.Numerics.Complex">
            <summary>
            Implicitly converts a <see cref="T:GSF.Units.EE.Phasor"/> to a .NET <see cref="T:System.Numerics.Complex"/> value.
            </summary>
            <param name="phasor">Operand.</param>
            <returns>ComplexNumber representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Equality(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>Boolean representing the result of the addition operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Inequality(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>Boolean representing the result of the inequality operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_UnaryNegation(GSF.Units.EE.Phasor)">
            <summary>
            Returns the negated value.
            </summary>
            <param name="z">Left hand operand.</param>
            <returns>Phasor representing the result of the unary negation operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Addition(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the addition operation.</returns>
            <remarks>Resultant phasor will have <see cref="F:GSF.Units.EE.Phasor.Type"/> of left hand operand, <paramref name="phasor1"/>.</remarks>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Subtraction(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the subtraction operation.</returns>
            <remarks>Resultant phasor will have <see cref="F:GSF.Units.EE.Phasor.Type"/> of left hand operand, <paramref name="phasor1"/>.</remarks>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Multiply(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the multiplication operation.</returns>
            <remarks>Resultant phasor will have <see cref="F:GSF.Units.EE.Phasor.Type"/> of left hand operand, <paramref name="phasor1"/>.</remarks>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Division(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="phasor1">Left hand operand.</param>
            <param name="phasor2">Right hand operand.</param>
            <returns>ComplexNumber representing the result of the division operation.</returns>
            <remarks>Resultant phasor will have <see cref="F:GSF.Units.EE.Phasor.Type"/> of left hand operand, <paramref name="phasor1"/>.</remarks>
        </member>
        <member name="M:GSF.Units.EE.Phasor.Pow(GSF.Units.EE.Phasor,System.Double)">
            <summary>
             Returns specified <see cref="T:GSF.Units.EE.Phasor"/> raised to the specified power.
            </summary>
            <param name="z">Phasor to be raised to power <paramref name="y"/>.</param>
            <param name="y">Power to raise <see cref="T:GSF.Units.EE.Phasor"/> <paramref name="z"/>.</param>
             <returns>Phasor representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.op_Exponent(GSF.Units.EE.Phasor,System.Double)">
             <summary>
             Returns result of first value raised to power of second value.
             </summary>
            <param name="z">Phasor to be raised to power <paramref name="y"/>.</param>
            <param name="y">Power to raise <see cref="T:GSF.Units.EE.Phasor"/> <paramref name="z"/>.</param>
             <returns>Phasor representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.CalculateActivePower(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Calculates active (or real) power P, i.e., total watts, from imaginary and real components of a voltage and current phasor.
            </summary>
            <param name="voltage">Voltage phasor.</param>
            <param name="current">Current phasor.</param>
            <exception cref="T:System.ArgumentException"><paramref name="voltage"/> and <paramref name="current"/> must have proper <see cref="F:GSF.Units.EE.Phasor.Type"/>.</exception>
            <returns>Calculated watts from imaginary and real components of specified <paramref name="voltage"/> and <paramref name="current"/> phasors.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.CalculateReactivePower(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Calculates reactive power Q, i.e., total volt-amperes of reactive power, from imaginary and real components of a voltage and current phasor.
            </summary>
            <param name="voltage">Voltage phasor.</param>
            <param name="current">Current phasor.</param>
            <exception cref="T:System.ArgumentException"><paramref name="voltage"/> and <paramref name="current"/> must have proper <see cref="F:GSF.Units.EE.Phasor.Type"/>.</exception>
            <returns>Calculated vars from imaginary and real components of specified <paramref name="voltage"/> and <paramref name="current"/> phasors.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.CalculateComplexPower(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Calculates complex power S, i.e., total volt-amperes power vector, from a voltage and current phasor.
            </summary>
            <param name="voltage">Voltage phasor.</param>
            <param name="current">Current phasor.</param>
            <exception cref="T:System.ArgumentException"><paramref name="voltage"/> and <paramref name="current"/> must have proper <see cref="F:GSF.Units.EE.Phasor.Type"/>.</exception>
            <returns>Calculated complex volt-amperes from specified <paramref name="voltage"/> and <paramref name="current"/> phasors.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.CalculateApparentPower(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Calculates apparent power |S|, i.e., magnitude of complex power, from a voltage and current phasor.
            </summary>
            <param name="voltage">Voltage phasor.</param>
            <param name="current">Current phasor.</param>
            <exception cref="T:System.ArgumentException"><paramref name="voltage"/> and <paramref name="current"/> must have proper <see cref="F:GSF.Units.EE.Phasor.Type"/>.</exception>
            <returns>Calculated complex volt-amperes magnitude from specified <paramref name="voltage"/> and <paramref name="current"/> phasors.</returns>
        </member>
        <member name="M:GSF.Units.EE.Phasor.CalculateRelativePhase(GSF.Units.EE.Phasor,GSF.Units.EE.Phasor)">
            <summary>
            Calculates phase φ of voltage relative to current, i.e., angle difference between current and voltage phasor.
            </summary>
            <param name="voltage">Voltage phasor.</param>
            <param name="current">Current phasor.</param>
            <exception cref="T:System.ArgumentException"><paramref name="voltage"/> and <paramref name="current"/> must have proper <see cref="F:GSF.Units.EE.Phasor.Type"/>.</exception>
            <returns>Calculated phase of specified <paramref name="voltage"/> phasor relative to specified <paramref name="current"/> phasor.</returns>
        </member>
        <member name="T:GSF.Units.EE.PhasorType">
            <summary>
            Phasor types enumeration.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.PhasorType.Voltage">
            <summary>
            Voltage phasor.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.PhasorType.Current">
            <summary>
            Current phasor.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.SignalKind">
            <summary>
            Fundamental signal type enumeration for common EE measurements that represents a kind of signal, not an explicit type.
            </summary>
            <remarks>
            <para>
            This enumeration represents the basic type of a signal used to suffix a formatted signal
            reference. When used in context along with an optional index the fundamental signal type
            will identify a signal's location within a frame of data (see <see cref="T:GSF.Units.EE.SignalReference"/>).
            </para>
            <para>
            Contrast this to the <see cref="T:GSF.Units.EE.SignalType"/> enumeration which further defines an explicit
            type for a signal (e.g., a voltage or current type for an angle).
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Angle">
            <summary>
            Phase angle.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Magnitude">
            <summary>
            Phase magnitude.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Frequency">
            <summary>
            Line frequency.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.DfDt">
            <summary>
            Frequency delta over time (dF/dt).
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Status">
            <summary>
            Status flags.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Digital">
            <summary>
            Digital value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Analog">
            <summary>
            Analog value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Calculation">
            <summary>
            Calculated value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Statistic">
            <summary>
            Statistical value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Alarm">
            <summary>
            Alarm value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Quality">
            <summary>
            Quality flags.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalKind.Unknown">
            <summary>
            Undetermined signal type.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.SignalKindExtensions">
            <summary>
            Defines extension functions for the <see cref="T:GSF.Units.EE.SignalKind"/> enumeration.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.SignalKindExtensions.GetAcronym(GSF.Units.EE.SignalKind)">
            <summary>
            Gets the acronym for the specified <see cref="T:GSF.Units.EE.SignalKind"/>.
            </summary>
            <param name="signal"><see cref="T:GSF.Units.EE.SignalKind"/> to convert to an acronym.</param>
            <returns>The acronym for the specified <see cref="T:GSF.Units.EE.SignalKind"/>.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalKindExtensions.ParseSignalKind(System.String)">
            <summary>
            Gets the <see cref="T:GSF.Units.EE.SignalKind"/> for the specified <paramref name="acronym"/>.
            </summary>
            <param name="acronym">Acronym of the desired <see cref="T:GSF.Units.EE.SignalKind"/>.</param>
            <returns>The <see cref="T:GSF.Units.EE.SignalKind"/> for the specified <paramref name="acronym"/>.</returns>
        </member>
        <member name="T:GSF.Units.EE.SignalReference">
            <summary>
            Represents a signal that can be referenced by its constituent components.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalReference.Acronym">
            <summary>
            Gets or sets the acronym of this <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalReference.Index">
            <summary>
            Gets or sets the signal index of this <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalReference.Kind">
            <summary>
            Gets or sets the <see cref="T:GSF.Units.EE.SignalKind"/> of this <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalReference.CellIndex">
            <summary>
            Gets or sets the cell index, if applicable, of this <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
            <param name="signal"><see cref="T:System.String"/> representation of this <see cref="T:GSF.Units.EE.SignalReference"/>.</param>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.Units.EE.SignalReference"/>.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.GetHashCode">
            <summary>
            Returns the hash code for this <see cref="T:GSF.Units.EE.SignalReference"/>.
            </summary>
            <returns>A 32-bit signed integer hash code.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.Equals(System.Object)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <param name="obj">An object to compare with this object.</param>
            <returns><c>true</c> if the current object is equal to the other parameter; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentException">Object is not a <see cref="T:GSF.Units.EE.SignalReference"/>.</exception>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.Equals(GSF.Units.EE.SignalReference)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            <param name="other">An object to compare with this object.</param>
            <returns><c>true</c> if the current object is equal to the other parameter; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.CompareTo(GSF.Units.EE.SignalReference)">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <param name="other">Another <see cref="T:GSF.Units.EE.SignalReference"/> to compare with this <see cref="T:GSF.Units.EE.SignalReference"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.CompareTo(System.Object)">
            <summary>
            Compares the current object with another object of the same type.
            </summary>
            <param name="obj">An object to compare with this <see cref="T:GSF.Units.EE.SignalReference"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException">Object is not a <see cref="T:GSF.Units.EE.SignalReference"/>.</exception>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_Equality(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Compares two <see cref="T:GSF.Units.EE.SignalReference"/> values for equality.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_Inequality(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Compares two <see cref="T:GSF.Units.EE.SignalReference"/> values for inequality.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_GreaterThan(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Returns true if left <see cref="T:GSF.Units.EE.SignalReference"/> value is greater than right <see cref="T:GSF.Units.EE.SignalReference"/> value.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_GreaterThanOrEqual(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Returns true if left <see cref="T:GSF.Units.EE.SignalReference"/> value is greater than or equal to right <see cref="T:GSF.Units.EE.SignalReference"/> value.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_LessThan(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Returns true if left <see cref="T:GSF.Units.EE.SignalReference"/> value is less than right <see cref="T:GSF.Units.EE.SignalReference"/> value.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.op_LessThanOrEqual(GSF.Units.EE.SignalReference,GSF.Units.EE.SignalReference)">
            <summary>
            Returns true if left <see cref="T:GSF.Units.EE.SignalReference"/> value is less than or equal to right <see cref="T:GSF.Units.EE.SignalReference"/> value.
            </summary>
            <param name="signal1">A <see cref="T:GSF.Units.EE.SignalReference"/> left hand operand.</param>
            <param name="signal2">A <see cref="T:GSF.Units.EE.SignalReference"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.ToString(System.String,GSF.Units.EE.SignalKind)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the specified <paramref name="acronym"/> and <see cref="T:GSF.Units.EE.SignalKind"/>.
            </summary>
            <param name="acronym">Acronym portion of the desired <see cref="T:System.String"/> representation.</param>
            <param name="type"><see cref="T:GSF.Units.EE.SignalKind"/> portion of the desired <see cref="T:System.String"/> representation.</param>
            <returns>A <see cref="T:System.String"/> that represents the specified <paramref name="acronym"/> and <see cref="T:GSF.Units.EE.SignalKind"/>.</returns>
        </member>
        <member name="M:GSF.Units.EE.SignalReference.ToString(System.String,GSF.Units.EE.SignalKind,System.Int32)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the specified <paramref name="acronym"/>, <see cref="T:GSF.Units.EE.SignalKind"/> and <paramref name="index"/>.
            </summary>
            <param name="acronym">Acronym portion of the desired <see cref="T:System.String"/> representation.</param>
            <param name="type"><see cref="T:GSF.Units.EE.SignalKind"/> portion of the desired <see cref="T:System.String"/> representation.</param>
            <param name="index">Index of <see cref="T:GSF.Units.EE.SignalKind"/> portion of the desired <see cref="T:System.String"/> representation.</param>
            <returns>A <see cref="T:System.String"/> that represents the specified <paramref name="acronym"/>, <see cref="T:GSF.Units.EE.SignalKind"/> and <paramref name="index"/>.</returns>
        </member>
        <member name="T:GSF.Units.EE.SignalType">
            <summary>
            Fundamental signal type enumeration for common EE measurements that represents an explicit type of signal.
            </summary>
            <remarks>
            <para>
            This enumeration represents the explicit type of a signal that a value represents.
            </para>
            <para>
            Contrast this to the <see cref="T:GSF.Units.EE.SignalKind"/> enumeration which only defines an
            abstract type for a signal (e.g., simply a phase or an angle).
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Units.EE.SignalType.IPHM">
            <summary>
            Current phase magnitude.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.IPHA">
            <summary>
            Current phase angle.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.VPHM">
            <summary>
            Voltage phase magnitude.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.VPHA">
            <summary>
            Voltage phase angle.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.FREQ">
            <summary>
            Frequency.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.DFDT">
            <summary>
            Frequency delta (dF/dt).
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.ALOG">
            <summary>
            Analog value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.FLAG">
            <summary>
            Status flags.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.DIGI">
            <summary>
            Digital values.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.CALC">
            <summary>
            Calculated value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.STAT">
            <summary>
            Statistical value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.ALRM">
            <summary>
            Alarm value.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.QUAL">
            <summary>
            Quality flags.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.SignalType.NONE">
            <summary>
            Undefined signal.
            </summary>
        </member>
        <member name="T:GSF.Units.EE.SignalTypeExtensions">
            <summary>
            Defines extension functions for the <see cref="T:GSF.Units.EE.SignalType"/> enumeration.
            </summary>
        </member>
        <member name="M:GSF.Units.EE.SignalTypeExtensions.GetFormattedName(GSF.Units.EE.SignalType)">
            <summary>
            Returns display friendly signal type name.
            </summary>
            <param name="signalType"><see cref="T:GSF.Units.EE.SignalType"/> to return display name for.</param>
            <returns>Friendly protocol display name for specified <paramref name="signalType"/>.</returns>
        </member>
        <member name="T:GSF.Units.EE.VoltageLevel">
            <summary>
            Common transmission voltage levels enumeration.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV34">
            <summary>
            34 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV44">
            <summary>
            44 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV69">
            <summary>
            69 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV115">
            <summary>
            115 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV138">
            <summary>
            138 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV161">
            <summary>
            161 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV169">
            <summary>
            169 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV230">
            <summary>
            230 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV345">
            <summary>
            345 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV500">
            <summary>
            500 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV765">
            <summary>
            765 kV.
            </summary>
        </member>
        <member name="F:GSF.Units.EE.VoltageLevel.kV1100">
            <summary>
            1100 kV.
            </summary>
        </member>
        <member name="T:GSF.Units.EnergyUnit">
            <summary>
            Represents the units available for an <see cref="T:GSF.Units.Energy"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.Joules">
            <summary>
            Joule energy units, i.e., watt-seconds.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.WattHours">
            <summary>
            WattHour energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.BTU">
            <summary>
            BTU energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.CelsiusHeatUnits">
            <summary>
            Celsius heat energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.LitersAtmosphere">
            <summary>
            Liters atmosphere energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.Calories">
            <summary>
            Calorie energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.HorsepowerHours">
            <summary>
            Horsepower-hour energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.BarrelsOfOil">
            <summary>
            Barrels of oil energy units.
            </summary>
        </member>
        <member name="F:GSF.Units.EnergyUnit.TonsOfCoal">
            <summary>
            Tons of coal energy units.
            </summary>
        </member>
        <member name="T:GSF.Units.Energy">
            <summary>
            Represents an energy measurement, in joules (i.e., watt-seconds), as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing an energy in joules; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other energy representations, specifically
            watt-hours, BTU, Celsius heat unit, liter-atmosphere, calorie, horsepower-hour, barrel of oil and ton of coal.
            Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert energy in joules to megajoules:
            <code>
            public double GetMegajoules(Energy joules)
            {
                return joules / SI.Mega;
            }
            </code>
            This example converts megajoules to kilowatt-hours:
            <code>
            public double GetKilowattHours(double megajoules)
            {
                return (new Energy(megajoules * SI.Mega)).ToWattHours() / SI.Kilo;
            }
            </code>
            This example converts kilowatt-hours to megawatt-hours:
            <code>
            public double GetMegawattHours(double kilowattHours)
            {
                return (kilowattHours * SI.Kilo) / SI.Mega;
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Energy.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/>.
            </summary>
            <param name="value">New energy value in joules.</param>
        </member>
        <member name="M:GSF.Units.Energy.ToCoulombs(GSF.Units.Voltage)">
            <summary>
            Gets the <see cref="T:GSF.Units.Charge"/> value in coulombs given the specified <paramref name="volts"/>.
            </summary>
            <param name="volts">Source <see cref="T:GSF.Units.Voltage"/> used to calculate <see cref="T:GSF.Units.Charge"/> value.</param>
            <returns><see cref="T:GSF.Units.Charge"/> value in coulombs given the specified <paramref name="volts"/>.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToWattHours">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in watt-hours.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in watt-hours.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToBTU">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in BTU (International Table).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in BTU.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToCelsiusHeatUnits">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in Celsius heat units (International Table).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in Celsius heat units.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToLitersAtmosphere">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in liters-atmosphere.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in liters-atmosphere.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToCalories">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in calories (International Table).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in calories.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToHorsepowerHours">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in horsepower-hours.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in horsepower-hours.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToBarrelsOfOil">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in equivalent barrels of oil.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in equivalent barrels of oil.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ToTonsOfCoal">
            <summary>
            Gets the <see cref="T:GSF.Units.Energy"/> value in equivalent tons of coal.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Energy"/> in equivalent tons of coal.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ConvertTo(GSF.Units.EnergyUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Energy"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Energy"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Energy.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Energy"/>.</exception>
        </member>
        <member name="M:GSF.Units.Energy.CompareTo(GSF.Units.Energy)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Energy"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">An <see cref="T:GSF.Units.Energy"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Energy"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.Equals(GSF.Units.Energy)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Energy"/> value.
            </summary>
            <param name="obj">An <see cref="T:GSF.Units.Energy"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Energy.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Energy"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            An <see cref="T:GSF.Units.Energy"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or greater than <see cref="F:GSF.Units.Energy.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Energy.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Energy"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Energy"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or greater than <see cref="F:GSF.Units.Energy.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Energy.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Energy"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Energy"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or greater than <see cref="F:GSF.Units.Energy.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Energy.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Energy"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            An <see cref="T:GSF.Units.Energy"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or greater than <see cref="F:GSF.Units.Energy.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Energy.TryParse(System.String,GSF.Units.Energy@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Energy"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Energy"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or greater than <see cref="F:GSF.Units.Energy.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Energy.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Energy@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Energy"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Energy"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Energy.MinValue"/> or
            greater than <see cref="F:GSF.Units.Energy.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Energy.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Equality(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Inequality(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_LessThan(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_LessThanOrEqual(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_GreaterThan(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_GreaterThanOrEqual(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Implicit(System.Double)~GSF.Units.Energy">
            <summary>
            Implicitly converts value, represented in joules, to an <see cref="T:GSF.Units.Energy"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Implicit(GSF.Units.Energy)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Energy"/>, represented in joules, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">An <see cref="T:GSF.Units.Energy"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Modulus(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Addition(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Subtraction(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Multiply(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Division(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>An <see cref="T:GSF.Units.Energy"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Energy.op_Exponent(GSF.Units.Energy,GSF.Units.Energy)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">An <see cref="T:GSF.Units.Energy"/> object as the left hand operand.</param>
            <param name="value2">An <see cref="T:GSF.Units.Energy"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Energy.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Energy"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Energy.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Energy"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Energy.FromWattHours(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in watt-hours.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in watt-hours.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in watt-hours.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromBTU(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in BTU (International Table).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in BTU.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in BTU.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromCelsiusHeatUnits(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in Celsius heat units (International Table).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in Celsius heat units.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in Celsius heat units.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromLitersAtmosphere(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in liters-atmosphere.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in liters-atmosphere.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in liters-atmosphere.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromCalories(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in calories (International Table).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in calories.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in calories.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromHorsepowerHours(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in horsepower-hours.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in horsepower-hours.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in horsepower-hours.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromBarrelsOfOil(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in equivalent barrels of oil.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in equivalent barrels of oil.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in equivalent barrels of oil.</returns>
        </member>
        <member name="M:GSF.Units.Energy.FromTonOfCoal(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Energy"/> value from the specified <paramref name="value"/> in equivalent tons of coal.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Energy"/> value in equivalent tons of coal.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> object from the specified <paramref name="value"/> in equivalent tons of coal.</returns>
        </member>
        <member name="M:GSF.Units.Energy.ConvertFrom(System.Double,GSF.Units.EnergyUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Energy"/> in joules.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Energy"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.LengthUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Length"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.Meters">
            <summary>
            Meter length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.Feet">
            <summary>
            Foot length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.Inches">
            <summary>
            Inch length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.Miles">
            <summary>
            Mile length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.LightSeconds">
            <summary>
            Light-second length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.USSurveyFeet">
            <summary>
            U.S. survey foot length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.USSurveyMiles">
            <summary>
            U.S. survey mile length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.NauticalMiles">
            <summary>
            Nautical mile length units.
            </summary>
        </member>
        <member name="F:GSF.Units.LengthUnit.Yards">
            <summary>
            Yard length units.
            </summary>
        </member>
        <member name="T:GSF.Units.Length">
            <summary>
            Represents a length measurement, in meters, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a length in meters; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other length representations, specifically
            inches, feet, yards, miles, U.S. survey feet, U.S. survey miles, light-seconds, and nautical miles.
            Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert length in meters to kilometers:
            <code>
            public double GetKilometers(Length meters)
            {
                return meters / SI.Kilo;
            }
            </code>
            This example converts feet to inches:
            <code>
            public double GetFeet(double inches)
            {
                return Length.FromInches(inches).ToFeet();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Length.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/>.
            </summary>
            <param name="value">New length value in meters.</param>
        </member>
        <member name="M:GSF.Units.Length.ToFeet">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in feet.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in feet.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToYards">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in yards.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in yards.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToInches">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in inches.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in inches.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToMiles">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in miles.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToLightSeconds">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in light-seconds.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in light-seconds.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToUSSurveyFeet">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in US survey feet.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in US survey feet.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToUSSurveyMiles">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in US survey miles.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in US survey miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.ToNauticalMiles">
            <summary>
            Gets the <see cref="T:GSF.Units.Length"/> value in nautical miles.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Length"/> in nautical miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.ConvertTo(GSF.Units.LengthUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Length"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Length"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Length.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Length"/>.</exception>
        </member>
        <member name="M:GSF.Units.Length.CompareTo(GSF.Units.Length)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Length"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Length"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Length"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.Equals(GSF.Units.Length)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Length"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Length"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Length.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Length"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Length"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or greater than <see cref="F:GSF.Units.Length.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Length.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Length"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Length"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or greater than <see cref="F:GSF.Units.Length.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Length.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Length"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Length"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or greater than <see cref="F:GSF.Units.Length.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Length.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Length"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Length"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or greater than <see cref="F:GSF.Units.Length.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Length.TryParse(System.String,GSF.Units.Length@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Length"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Length"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or greater than <see cref="F:GSF.Units.Length.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Length.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Length@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Length"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Length"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Length.MinValue"/> or
            greater than <see cref="F:GSF.Units.Length.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Length.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Equality(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Inequality(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_LessThan(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_LessThanOrEqual(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_GreaterThan(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_GreaterThanOrEqual(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Implicit(System.Double)~GSF.Units.Length">
            <summary>
            Implicitly converts value, represented in meters, to a <see cref="T:GSF.Units.Length"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Implicit(GSF.Units.Length)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Length"/>, represented in meters, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Length"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Modulus(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Addition(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Subtraction(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Multiply(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Division(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Length"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Length.op_Exponent(GSF.Units.Length,GSF.Units.Length)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Length"/> object left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Length"/> object right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result.</returns>
        </member>
        <member name="F:GSF.Units.Length.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Length"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Length.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Length"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Length.FromFeet(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in feet.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in feet.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in feet.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromYards(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in yards.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in yards.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in yards.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromInches(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in inches.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in inches.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in inches.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromMiles(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in miles.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in miles.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromLightSeconds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in light-seconds.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in light-seconds.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in light-seconds.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromUSSurveyFeet(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in US survey feet.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in US survey feet.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in US survey feet.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromUSSurveyMiles(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in US survey miles.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in US survey miles.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in US survey miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.FromNauticalMiles(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Length"/> value from the specified <paramref name="value"/> in nautical miles.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Length"/> value in nautical miles.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> object from the specified <paramref name="value"/> in nautical miles.</returns>
        </member>
        <member name="M:GSF.Units.Length.ConvertFrom(System.Double,GSF.Units.LengthUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Length"/> in meters.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Length"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.MassUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Mass"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.Kilograms">
            <summary>
            Kilogram mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.Ounces">
            <summary>
            Ounce mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.Pounds">
            <summary>
            Pound mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.MetricPounds">
            <summary>
            Metric pound mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.Tons">
            <summary>
            Ton mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.MectricTons">
            <summary>
            Metric ton mass units.
            </summary>
        </member>
        <member name="F:GSF.Units.MassUnit.LongTons">
            <summary>
            Long ton mass units.
            </summary>
        </member>
        <member name="T:GSF.Units.Mass">
            <summary>
            Represents a mass measurement, in kilograms, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a mass in kilograms; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other mass representations, specifically
            ounces, pounds and tons. Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/>
            conversion factor, for example:
            <example>
            Convert mass, in kilograms, to grams:
            <code>
            public double GetGrams(Mass kilograms)
            {
                return kilograms * SI.Kilo;
            }
            </code>
            This example converts tons to pounds:
            <code>
            public double GetPounds(double tons)
            {
                return Mass.FromTons(tons).ToPounds();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Mass.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/>.
            </summary>
            <param name="value">New mass value in kilograms.</param>
        </member>
        <member name="M:GSF.Units.Mass.ToOunces">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in ounces (avoirdupois).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in ounces.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ToPounds">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in pounds (avoirdupois).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in pounds.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ToMetricPounds">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in metric pounds.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in metric pounds.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ToTons">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in short tons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in short tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ToMetricTons">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in metric tons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in metric tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ToLongTons">
            <summary>
            Gets the <see cref="T:GSF.Units.Mass"/> value in long tons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Mass"/> in long tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ConvertTo(GSF.Units.MassUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Mass"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Mass"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Mass.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Mass"/>.</exception>
        </member>
        <member name="M:GSF.Units.Mass.CompareTo(GSF.Units.Mass)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Mass"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Mass"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Mass"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.Equals(GSF.Units.Mass)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Mass"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Mass"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Mass.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Mass"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Mass"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or greater than <see cref="F:GSF.Units.Mass.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Mass.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Mass"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Mass"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or greater than <see cref="F:GSF.Units.Mass.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Mass.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Mass"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Mass"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or greater than <see cref="F:GSF.Units.Mass.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Mass.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Mass"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Mass"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or greater than <see cref="F:GSF.Units.Mass.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Mass.TryParse(System.String,GSF.Units.Mass@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Mass"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Mass"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or greater than <see cref="F:GSF.Units.Mass.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Mass.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Mass@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Mass"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Mass"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Mass.MinValue"/> or
            greater than <see cref="F:GSF.Units.Mass.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Mass.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Equality(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Inequality(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_LessThan(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_LessThanOrEqual(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_GreaterThan(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_GreaterThanOrEqual(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Implicit(System.Double)~GSF.Units.Mass">
            <summary>
            Implicitly converts value, represented in kilograms, to a <see cref="T:GSF.Units.Mass"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Implicit(GSF.Units.Mass)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Mass"/>, represented in kilograms, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Mass"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Modulus(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Addition(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Subtraction(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Multiply(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Division(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Mass"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Mass.op_Exponent(GSF.Units.Mass,GSF.Units.Mass)">
            <summary>
            Returns result of first value raised to mass of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Mass"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Mass"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Mass.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Mass"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Mass.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Mass"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Mass.FromOunces(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in ounces (avoirdupois).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in ounces.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in ounces.</returns>
        </member>
        <member name="M:GSF.Units.Mass.FromPounds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in pounds (avoirdupois).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in pounds.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in pounds.</returns>
        </member>
        <member name="M:GSF.Units.Mass.FromMetricPounds(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in metric pounds.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in metric pounds.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in metric pounds.</returns>
        </member>
        <member name="M:GSF.Units.Mass.FromTons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in short tons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in short tons.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in short tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.FromMetricTons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in metric tons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in metric tons.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in metric tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.FromLongTons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Mass"/> value from the specified <paramref name="value"/> in long tons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Mass"/> value in long tons.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> object from the specified <paramref name="value"/> in long tons.</returns>
        </member>
        <member name="M:GSF.Units.Mass.ConvertFrom(System.Double,GSF.Units.MassUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Mass"/> in kilograms.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Mass"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.NamespaceDoc">
            <summary>
            Contains classes used to simplify and standardize common unit and SI conversions.
            </summary>
        </member>
        <member name="T:GSF.Units.PowerUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Power"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.Watts">
            <summary>
            Watt power units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.Horsepower">
            <summary>
            Horsepower units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.MetricHorsepower">
            <summary>
            Metric horsepower units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.BoilerHorsepower">
            <summary>
            Boiler horsepower units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.BTUPerSecond">
            <summary>
            BTU per second power units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.CaloriesPerSecond">
            <summary>
            Calories per second power units.
            </summary>
        </member>
        <member name="F:GSF.Units.PowerUnit.LitersAtmospherePerSecond">
            <summary>
            Liters atmosphere per second power units.
            </summary>
        </member>
        <member name="T:GSF.Units.Power">
            <summary>
            Represents a power measurement, in watts, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a power in watts; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other power representations, specifically
            horsepower, metric horsepower, boiler horsepower, BTU per second, calorie per second, and liter-atmosphere
            per second. Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor,
            for example:
            <example>
            Convert power in watts to megawatts:
            <code>
            public double GetMegawatts(Power watts)
            {
                return watts / SI.Mega;
            }
            </code>
            This example converts megawatts to mechanical horsepower:
            <code>
            public double GetHorsepower(double megawatts)
            {
                return (new Power(megawatts * SI.Mega)).ToHorsepower();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Power.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/>.
            </summary>
            <param name="value">New power value in watts.</param>
        </member>
        <member name="M:GSF.Units.Power.ToHorsepower">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in mechanical horsepower (Imperial).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in mechanical horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.ToMetricHorsepower">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in metric horsepower.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in metric horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.ToBoilerHorsepower">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in boiler horsepower.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in boiler horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.ToBTUPerSecond">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in BTU (International Table) per second.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in BTU per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.ToCaloriesPerSecond">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in calories (International Table) per second.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in calories per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.ToLitersAtmospherePerSecond">
            <summary>
            Gets the <see cref="T:GSF.Units.Power"/> value in liters-atmosphere per second.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Power"/> in liters-atmosphere per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.ConvertTo(GSF.Units.PowerUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Power"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Power"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Power.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Power"/>.</exception>
        </member>
        <member name="M:GSF.Units.Power.CompareTo(GSF.Units.Power)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Power"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Power"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Power"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.Equals(GSF.Units.Power)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Power"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Power"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Power.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Power"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Power"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or greater than <see cref="F:GSF.Units.Power.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Power.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Power"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Power"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or greater than <see cref="F:GSF.Units.Power.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Power.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Power"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Power"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or greater than <see cref="F:GSF.Units.Power.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Power.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Power"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Power"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or greater than <see cref="F:GSF.Units.Power.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Power.TryParse(System.String,GSF.Units.Power@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Power"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Power"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or greater than <see cref="F:GSF.Units.Power.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Power.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Power@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Power"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Power"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Power.MinValue"/> or
            greater than <see cref="F:GSF.Units.Power.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Power.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Equality(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Inequality(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_LessThan(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_LessThanOrEqual(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_GreaterThan(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_GreaterThanOrEqual(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Implicit(System.Double)~GSF.Units.Power">
            <summary>
            Implicitly converts value, represented in watts, to a <see cref="T:GSF.Units.Power"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Implicit(GSF.Units.Power)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Power"/>, represented in watts, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Power"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Modulus(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Addition(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Subtraction(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Multiply(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Division(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Power"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Power.op_Exponent(GSF.Units.Power,GSF.Units.Power)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Power"/> left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Power"/> right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Power.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Power"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Power.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Power"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Power.FromHorsepower(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in mechanical horsepower (Imperial).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in mechanical horsepower.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in mechanical horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.FromMetricHorsepower(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in metric horsepower.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in metric horsepower.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in metric horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.FromBoilerHorsepower(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in boiler horsepower.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in boiler horsepower.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in boiler horsepower.</returns>
        </member>
        <member name="M:GSF.Units.Power.FromBTUPerSecond(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in BTU (International Table) per second.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in BTU per second.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in BTU per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.FromCaloriesPerSecond(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in calories (International Table) per second.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in calories per second.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in calories per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.FromLitersAtmospherePerSecond(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Power"/> value from the specified <paramref name="value"/> in liters-atmosphere per second.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Power"/> value in liters-atmosphere per second.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> object from the specified <paramref name="value"/> in liters-atmosphere per second.</returns>
        </member>
        <member name="M:GSF.Units.Power.ConvertFrom(System.Double,GSF.Units.PowerUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Power"/> in watts.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Power"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.SI">
            <summary>
            Defines constant factors for SI units of measure to handle metric conversions.
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Yotta">
            <summary>
            SI prefix Y, 10^24
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Zetta">
            <summary>
            SI prefix Z, 10^21
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Exa">
            <summary>
            SI prefix E, 10^18
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Peta">
            <summary>
            SI prefix P, 10^15
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Tera">
            <summary>
            SI prefix T, 10^12
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Giga">
            <summary>
            SI prefix G, 10^9
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Mega">
            <summary>
            SI prefix M, 10^6
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Kilo">
            <summary>
            SI prefix k, 10^3
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Hecto">
            <summary>
            SI prefix h, 10^2
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Deca">
            <summary>
            SI prefix da, 10^1
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Deci">
            <summary>
            SI prefix d, 10^-1
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Centi">
            <summary>
            SI prefix c, 10^-2
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Milli">
            <summary>
            SI prefix m, 10^-3
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Micro">
            <summary>
            SI prefix µ, 10^-6
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Nano">
            <summary>
            SI prefix n, 10^-9
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Pico">
            <summary>
            SI prefix p, 10^-12
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Femto">
            <summary>
            SI prefix f, 10^-15
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Atto">
            <summary>
            SI prefix a, 10^-18
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Zepto">
            <summary>
            SI prefix z, 10^-21
            </summary>
        </member>
        <member name="F:GSF.Units.SI.Yocto">
            <summary>
            SI prefix y, 10^-24
            </summary>
        </member>
        <member name="P:GSF.Units.SI.Names">
            <summary>
            Gets an array of all the defined unit factor SI names ordered from least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI.Symbols">
            <summary>
            Gets an array of all the defined unit factor SI prefix symbols ordered from least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI.Factors">
            <summary>
            Gets an array of all the defined SI unit factors ordered from least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>).
            </summary>
        </member>
        <member name="M:GSF.Units.SI.ToScaledString(System.Double,System.String,System.String[],System.Double,System.Double)">
            <summary>
            Turns the given number of units into a textual representation with an appropriate unit scaling.
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="unitName">Name of unit display (e.g., you could use "m/h" for meters per hour).</param>
            <param name="symbolNames">Optional SI factor symbol or name array to use during textual conversion, defaults to <see cref="P:GSF.Units.SI.Symbols"/>.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yocto"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yotta"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>), see <see cref="P:GSF.Units.SI.Names"/> or <see cref="P:GSF.Units.SI.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI.ToScaledString(System.Double,System.String,System.String,System.Double,System.Double)">
            <summary>
            Turns the given number of units into a textual representation with an appropriate unit scaling.
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="format">A numeric string format for scaled <paramref name="totalUnits"/>.</param>
            <param name="unitName">Name of unit display (e.g., you could use "m/h" for meters per hour).</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yocto"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yotta"/>.</param>
            <remarks>
            <see cref="P:GSF.Units.SI.Symbols"/> array is used for displaying SI symbol prefix for <paramref name="unitName"/>.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI.ToScaledString(System.Double,System.Int32,System.String,System.String[],System.Double,System.Double)">
            <summary>
            Turns the given number of units into a textual representation with an appropriate unit scaling.
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="decimalPlaces">Number of decimal places to display.</param>
            <param name="unitName">Name of unit display (e.g., you could use "m/h" for meters per hour).</param>
            <param name="symbolNames">Optional SI factor symbol or name array to use during textual conversion, defaults to <see cref="P:GSF.Units.SI.Symbols"/>.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yocto"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yotta"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>), see <see cref="P:GSF.Units.SI.Names"/> or <see cref="P:GSF.Units.SI.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="decimalPlaces"/> cannot be negative.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI.ToScaledString(System.Double,System.String,System.String,System.String[],System.Int32,System.Double,System.Double)">
            <summary>
            Turns the given number of units into a textual representation with an appropriate unit scaling
            given string array of factor names or symbols.
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="format">A numeric string format for scaled <paramref name="totalUnits"/>.</param>
            <param name="unitName">Name of unit display (e.g., you could use "m/h" for meters per hour).</param>
            <param name="symbolNames">SI factor symbol or name array to use during textual conversion.</param>
            <param name="decimalPlaces">Optional number of decimal places to display.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yocto"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI.Yotta"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI.Yocto"/>) to greatest (<see cref="F:GSF.Units.SI.Yotta"/>), see <see cref="P:GSF.Units.SI.Names"/> or <see cref="P:GSF.Units.SI.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.</exception>
        </member>
        <member name="T:GSF.Units.SI2">
            <summary>
            Defines constant factors based on 1024 for related binary SI units of measure used in computational measurements.
            </summary>
            <remarks>
            See <a href="http://physics.nist.gov/cuu/Units/binary.html">NIST Reference</a> for information on IEC standard names.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Exa">
            <summary>
            1 exa, binary (E) = 1,152,921,504,606,846,976
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Exbi">
            <summary>
            1 exbi (Ei) = 1,152,921,504,606,846,976
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Peta">
            <summary>
            1 peta, binary (P) = 1,125,899,906,842,624
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Pebi">
            <summary>
            1 pebi (Pi) = 1,125,899,906,842,624
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Tera">
            <summary>
            1 tera, binary (T) = 1,099,511,627,776
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Tebi">
            <summary>
            1 tebi (Ti) = 1,099,511,627,776
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Giga">
            <summary>
            1 giga, binary (G) = 1,073,741,824
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Gibi">
            <summary>
            1 gibi (Gi) = 1,073,741,824
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Mega">
            <summary>
            1 mega, binary (M) = 1,048,576
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Mebi">
            <summary>
            1 mebi (Mi) = 1,048,576
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Kilo">
            <summary>
            1 kilo, binary (K) = 1,024
            </summary>
            <remarks>
            This is the common name.
            </remarks>
        </member>
        <member name="F:GSF.Units.SI2.Kibi">
            <summary>
            1 kibi (Ki) = 1,024
            </summary>
            <remarks>
            This is the IEC standard name.
            </remarks>
        </member>
        <member name="P:GSF.Units.SI2.Names">
            <summary>
            Gets an array of all the defined common binary unit factor SI names ordered from least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI2.Symbols">
            <summary>
            Gets an array of all the defined common binary unit factor SI prefix symbols ordered from least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI2.IECNames">
            <summary>
            Gets an array of all the defined IEC binary unit factor SI names ordered from least (<see cref="F:GSF.Units.SI2.Kibi"/>) to greatest (<see cref="F:GSF.Units.SI2.Exbi"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI2.IECSymbols">
            <summary>
            Gets an array of all the defined IEC binary unit factor SI prefix symbols ordered from least (<see cref="F:GSF.Units.SI2.Kibi"/>) to greatest (<see cref="F:GSF.Units.SI2.Exbi"/>).
            </summary>
        </member>
        <member name="P:GSF.Units.SI2.Factors">
            <summary>
            Gets an array of all the defined binary SI unit factors ordered from least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>).
            </summary>
        </member>
        <member name="M:GSF.Units.SI2.ToScaledString(System.Int64,System.String,System.String[],System.Int64,System.Int64)">
            <summary>
            Turns the given number of units (e.g., bytes) into a textual representation with an appropriate unit scaling
            and common named representation (e.g., KB, MB, GB, TB, etc.).
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="unitName">Name of unit display (e.g., you could use "B" for bytes).</param>
            <param name="symbolNames">Optional SI factor symbol or name array to use during textual conversion, defaults to <see cref="P:GSF.Units.SI2.Symbols"/>.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Kilo"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Exa"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>), see <see cref="P:GSF.Units.SI2.Names"/> or <see cref="P:GSF.Units.SI2.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI2.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI2.ToScaledString(System.Int64,System.String,System.String,System.Int64,System.Int64)">
            <summary>
            Turns the given number of units (e.g., bytes) into a textual representation with an appropriate unit scaling
            and common named representation (e.g., KB, MB, GB, TB, etc.).
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="format">A numeric string format for scaled <paramref name="totalUnits"/>.</param>
            <param name="unitName">Name of unit display (e.g., you could use "B" for bytes).</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Kilo"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Exa"/>.</param>
            <remarks>
            <see cref="P:GSF.Units.SI2.Symbols"/> array is used for displaying SI symbol prefix for <paramref name="unitName"/>.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI2.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI2.ToScaledString(System.Int64,System.Int32,System.String,System.String[],System.Int64,System.Int64)">
            <summary>
            Turns the given number of units (e.g., bytes) into a textual representation with an appropriate unit scaling
            and common named representation (e.g., KB, MB, GB, TB, etc.).
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="decimalPlaces">Number of decimal places to display.</param>
            <param name="unitName">Name of unit display (e.g., you could use "B" for bytes).</param>
            <param name="symbolNames">Optional SI factor symbol or name array to use during textual conversion, defaults to <see cref="P:GSF.Units.SI2.Symbols"/>.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Kilo"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Exa"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>), see <see cref="P:GSF.Units.SI2.Names"/> or <see cref="P:GSF.Units.SI2.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="decimalPlaces"/> cannot be negative.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI2.Factors"/> array.</exception>
        </member>
        <member name="M:GSF.Units.SI2.ToScaledString(System.Int64,System.String,System.String,System.String[],System.Int32,System.Int64,System.Int64)">
            <summary>
            Turns the given number of units (e.g., bytes) into a textual representation with an appropriate unit scaling
            given string array of factor names or symbols.
            </summary>
            <param name="totalUnits">Total units to represent textually.</param>
            <param name="format">A numeric string format for scaled <paramref name="totalUnits"/>.</param>
            <param name="unitName">Name of unit display (e.g., you could use "B" for bytes).</param>
            <param name="symbolNames">SI factor symbol or name array to use during textual conversion.</param>
            <param name="decimalPlaces">Optional number of decimal places to display.</param>
            <param name="minimumFactor">Optional minimum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Kilo"/>.</param>
            <param name="maximumFactor">Optional maximum SI factor. Defaults to <see cref="F:GSF.Units.SI2.Exa"/>.</param>
            <remarks>
            The <paramref name="symbolNames"/> array needs one string entry for each defined SI item ordered from
            least (<see cref="F:GSF.Units.SI2.Kilo"/>) to greatest (<see cref="F:GSF.Units.SI2.Exa"/>), see <see cref="P:GSF.Units.SI2.Names"/> or <see cref="P:GSF.Units.SI2.Symbols"/>
            arrays for examples.
            </remarks>
            <returns>A <see cref="T:System.String"/> representation of the number of units.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="minimumFactor"/> or <paramref name="maximumFactor"/> is not defined in <see cref="P:GSF.Units.SI2.Factors"/> array.</exception>
        </member>
        <member name="T:GSF.Units.SpeedUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Speed"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.MetersPerSecond">
            <summary>
            Meters per second speed units.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.MilesPerHour">
            <summary>
            Miles per hour speed units.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.KilometersPerHour">
            <summary>
            Kilometers per hour speed units.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.FeetPerMinute">
            <summary>
            Feet per minute speed units.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.InchesPerSecond">
            <summary>
            Inches per second speed units.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.Knots">
            <summary>
            Knot speed units, international.
            </summary>
        </member>
        <member name="F:GSF.Units.SpeedUnit.Mach">
            <summary>
            Mach speed units.
            </summary>
            <remarks>
            As modeled by International Standard Atmosphere, dry air at mean sea level, standard temperature of 15 °C.
            </remarks>
        </member>
        <member name="T:GSF.Units.Speed">
            <summary>
            Represents a speed measurement, in meters per second, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a speed in meters per second; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other speed representations, specifically
            miles per hour, kilometers per hour, feet per minute, inches per second, knots and Mach.
            <example>
            This example converts mph to km/h:
            <code>
            public double GetKilometersPerHour(double milesPerHour)
            {
                return Speed.FromMilesPerHour(milesPerHour).ToKilometersPerHour();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Speed.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/>.
            </summary>
            <param name="value">New speed value in meters per second.</param>
        </member>
        <member name="M:GSF.Units.Speed.ToMilesPerHour">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in miles per hour.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in miles per hour.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ToKilometersPerHour">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in kilometers per hour.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in kilometers per hour.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ToFeetPerMinute">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in feet per minute.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in feet per minute.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ToInchesPerSecond">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in inches per second.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in inches per second.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ToKnots">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in knots (International).
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in knots.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ToMach">
            <summary>
            Gets the <see cref="T:GSF.Units.Speed"/> value in Mach.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Speed"/> in Mach.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ConvertTo(GSF.Units.SpeedUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Speed"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Speed"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Speed.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Speed"/>.</exception>
        </member>
        <member name="M:GSF.Units.Speed.CompareTo(GSF.Units.Speed)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Speed"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Speed"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Speed"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.Equals(GSF.Units.Speed)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Speed"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Speed"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Speed.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Speed"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Speed"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or greater than <see cref="F:GSF.Units.Speed.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Speed.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Speed"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Speed"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or greater than <see cref="F:GSF.Units.Speed.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Speed.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Speed"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Speed"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or greater than <see cref="F:GSF.Units.Speed.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Speed.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Speed"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Speed"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or greater than <see cref="F:GSF.Units.Speed.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Speed.TryParse(System.String,GSF.Units.Speed@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Speed"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Speed"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter per second is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or greater than <see cref="F:GSF.Units.Speed.MaxValue"/>.
            This parameter per second is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Speed.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Speed@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Speed"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Speed"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter per second is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Speed.MinValue"/> or
            greater than <see cref="F:GSF.Units.Speed.MaxValue"/>. This parameter per second is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Speed.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Equality(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Inequality(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_LessThan(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_LessThanOrEqual(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_GreaterThan(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_GreaterThanOrEqual(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Implicit(System.Double)~GSF.Units.Speed">
            <summary>
            Implicitly converts value, represented in meters per second, to a <see cref="T:GSF.Units.Speed"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Implicit(GSF.Units.Speed)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Speed"/>, represented in meters per second, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Speed"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Modulus(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Addition(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Subtraction(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Multiply(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Division(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Speed"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Speed.op_Exponent(GSF.Units.Speed,GSF.Units.Speed)">
            <summary>
            Returns result of first value raised to speed of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Speed"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Speed"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result.</returns>
        </member>
        <member name="F:GSF.Units.Speed.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Speed"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Speed.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Speed"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Speed.FromMilesPerHour(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in miles per hour.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in miles per hour.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in miles per hour.</returns>
        </member>
        <member name="M:GSF.Units.Speed.FromKilometersPerHour(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in kilometers per hour.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in kilometers per hour.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in kilometers per hour.</returns>
        </member>
        <member name="M:GSF.Units.Speed.FromFeetPerMinute(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in feet per minute.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in feet per minute.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in feet per minute.</returns>
        </member>
        <member name="M:GSF.Units.Speed.FromInchesPerSecond(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in inches per second.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in inches per second.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in inches per second.</returns>
        </member>
        <member name="M:GSF.Units.Speed.FromKnots(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in knots (International).
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in knots.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in knots.</returns>
        </member>
        <member name="M:GSF.Units.Speed.FromMach(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Speed"/> value from the specified <paramref name="value"/> in Mach.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Speed"/> value in Mach.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> object from the specified <paramref name="value"/> in Mach.</returns>
        </member>
        <member name="M:GSF.Units.Speed.ConvertFrom(System.Double,GSF.Units.SpeedUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Speed"/> in meters per second.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Speed"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.TemperatureUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Temperature"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Kelvin">
            <summary>
            Kelvin temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Celsius">
            <summary>
            Celsius temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Fahrenheit">
            <summary>
            Fahrenheit temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Newton">
            <summary>
            Newton temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Rankine">
            <summary>
            Rankine temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Delisle">
            <summary>
            Delisle temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Réaumur">
            <summary>
            Réaumur temperature units.
            </summary>
        </member>
        <member name="F:GSF.Units.TemperatureUnit.Rømer">
            <summary>
            Rømer temperature units.
            </summary>
        </member>
        <member name="T:GSF.Units.Temperature">
            <summary>
            Represents a temperature, in Kelvin, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a temperature in Kelvin; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other temperature representations, specifically
            Celsius, Fahrenheit, Newton, Rankine, Delisle, Réaumur and Rømer.
            <example>
            This example converts Celsius to Fahrenheit:
            <code>
            public double GetFahrenheit(double celsius)
            {
                return Temperature.FromCelsius(celsius).ToFahrenheit();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Temperature.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/>.
            </summary>
            <param name="value">New temperature value in Kelvin.</param>
        </member>
        <member name="M:GSF.Units.Temperature.ToCelsius">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Celsius.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Celsius.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToFahrenheit">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Fahrenheit.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Fahrenheit.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToNewton">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Newton.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Newton.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToRankine">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Rankine.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Rankine.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToDelisle">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Delisle.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Delisle.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToRéaumur">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Réaumur.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Réaumur.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToRømer">
            <summary>
            Gets the <see cref="T:GSF.Units.Temperature"/> value in Rømer.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Temperature"/> in Rømer.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ConvertTo(GSF.Units.TemperatureUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Temperature"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Temperature"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Temperature"/>.</exception>
        </member>
        <member name="M:GSF.Units.Temperature.CompareTo(GSF.Units.Temperature)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Temperature"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Temperature"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Temperature"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.Equals(GSF.Units.Temperature)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Temperature"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Temperature"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Temperature.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Temperature"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Temperature"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Temperature.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Temperature"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Temperature"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Temperature.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Temperature"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Temperature"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Temperature.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Temperature"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Temperature"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Temperature.TryParse(System.String,GSF.Units.Temperature@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Temperature"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Temperature"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Temperature@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Temperature"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Temperature"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Temperature.MinValue"/> or
            greater than <see cref="F:GSF.Units.Temperature.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Temperature.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Equality(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Inequality(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_LessThan(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_LessThanOrEqual(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_GreaterThan(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_GreaterThanOrEqual(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Implicit(System.Double)~GSF.Units.Temperature">
            <summary>
            Implicitly converts value, represented in Kelvin, to a <see cref="T:GSF.Units.Temperature"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Implicit(GSF.Units.Temperature)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Temperature"/>, represented in Kelvin, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Temperature"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Modulus(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Addition(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Subtraction(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Multiply(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Division(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Temperature"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.op_Exponent(GSF.Units.Temperature,GSF.Units.Temperature)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Temperature"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Temperature"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Temperature.MaxValue">
            <summary>Represents the largest possible value of a <see cref="T:GSF.Units.Temperature"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Temperature.MinValue">
            <summary>Represents the smallest possible value of a <see cref="T:GSF.Units.Temperature"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Temperature.FromCelsius(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Celsius.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Celsius.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Celsius.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromFahrenheit(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Fahrenheit.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Fahrenheit.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Fahrenheit.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromNewton(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Newton.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Newton.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Newton.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromRankine(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Rankine.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Rankine.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Rankine.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromDelisle(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Delisle.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Delisle.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Delisle.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromRéaumur(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Réaumur.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Réaumur.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Réaumur.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.FromRømer(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Temperature"/> value from the specified <paramref name="value"/> in Rømer.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Temperature"/> value in Rømer.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> object from the specified <paramref name="value"/> in Rømer.</returns>
        </member>
        <member name="M:GSF.Units.Temperature.ConvertFrom(System.Double,GSF.Units.TemperatureUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Temperature"/> in Kelvin.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Temperature"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.TimeUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Time"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Seconds">
            <summary>
            Second time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Minutes">
            <summary>
            Minute time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Hours">
            <summary>
            Hour time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Days">
            <summary>
            Day time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Weeks">
            <summary>
            Week time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Ticks">
            <summary>
            Tick time units, 100-nanosecond intervals since 1/1/0001.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.AtomicUnitsOfTime">
            <summary>
            Atomic time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.PlanckTime">
            <summary>
            Planck time units.
            </summary>
        </member>
        <member name="F:GSF.Units.TimeUnit.Ke">
            <summary>
            Ke time units, traditional Chinese unit of decimal time.
            </summary>
        </member>
        <member name="T:GSF.Units.Time">
            <summary>
            Represents a time measurement, in seconds, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a time in seconds; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other time representations, specifically
            minutes, hours, days, weeks, atomic units of time, Planck time and ke. Metric conversions are handled
            simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert time in nanoseconds to seconds:
            <code>
            public Time GetSeconds(double nanoseconds)
            {
                return nanoseconds * SI.Nano;
            }
            </code>
            Convert time in seconds to milliseconds:
            <code>
            public double GetMilliseconds(Time seconds)
            {
                return time / SI.Milli;
            }
            </code>
            This example converts minutes to hours:
            <code>
            public double GetHours(double minutes)
            {
                return Time.FromMinutes(minutes).ToHours();
            }
            </code>
            </example>
            <para>
            Note that the <see cref="M:GSF.Units.Time.ToString"/> method will convert the <see cref="T:GSF.Units.Time"/> value, in seconds,
            into a textual representation of years, days, hours, minutes and seconds using the static function
            <see cref="M:GSF.Units.Time.ToElapsedTimeString(System.Double,System.Int32,System.String[],System.Double)"/>.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.Units.Time.SecondsPerTick">
            <summary>
            Fractional number of seconds in one tick.
            </summary>
        </member>
        <member name="F:GSF.Units.Time.SecondsPerMinute">
            <summary>
            Number of seconds in one minute.
            </summary>
        </member>
        <member name="F:GSF.Units.Time.SecondsPerHour">
            <summary>
            Number of seconds in one hour.
            </summary>
        </member>
        <member name="F:GSF.Units.Time.SecondsPerDay">
            <summary>
            Number of seconds in one day.
            </summary>
        </member>
        <member name="F:GSF.Units.Time.SecondsPerWeek">
            <summary>
            Number of seconds in one week.
            </summary>
        </member>
        <member name="M:GSF.Units.Time.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/>.
            </summary>
            <param name="value">New time value in seconds.</param>
        </member>
        <member name="M:GSF.Units.Time.#ctor(System.TimeSpan)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/>.
            </summary>
            <param name="value">New time value as a <see cref="T:System.TimeSpan"/>.</param>
        </member>
        <member name="M:GSF.Units.Time.ToAtomicUnitsOfTime">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in atomic units of time.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in atomic units of time.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToPlanckTime">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in Planck time.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in Planck time.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToKe">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in ke, the traditional Chinese unit of decimal time.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in ke.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToMinutes">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in minutes.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in minutes.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToHours">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in hours.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in hours.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToDays">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in days.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in days.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToWeeks">
            <summary>
            Gets the <see cref="T:GSF.Units.Time"/> value in weeks.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Time"/> in weeks.</returns>
        </member>
        <member name="M:GSF.Units.Time.ToTicks">
            <summary>
            Converts the <see cref="T:GSF.Units.Time"/> value, in seconds, to 100-nanosecond tick intervals.
            </summary>
            <returns>A <see cref="T:GSF.Ticks"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Time.ConvertTo(GSF.Units.TimeUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Time"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Time"/> converted to <paramref name="targetUnit"/>.</returns>
            <remarks>
            When converting to <see cref="F:GSF.Units.TimeUnit.Ticks"/>, precision loss will
            occur for values that are outside the range of -2^52 and 2^52.
            </remarks>
        </member>
        <member name="M:GSF.Units.Time.ToString">
            <summary>
            Converts the <see cref="T:GSF.Units.Time"/> value into a textual representation of years, days, hours,
            minutes and seconds.
            </summary>
            <remarks>
            Note that this ToString overload will not display fractional seconds. To allow display of
            fractional seconds, or completely remove second resolution from the textual representation,
            use the <see cref="M:GSF.Units.Time.ToString(System.Int32,System.Double)"/> overload instead.
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.ToString(System.Int32,System.Double)">
            <summary>
            Converts the <see cref="T:GSF.Units.Time"/> value into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits.
            </summary>
            <param name="secondPrecision">Number of fractional digits to display for seconds.</param>
            <param name="minimumSubSecondResolution">
            Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.
            </param>
            <remarks>Set second precision to -1 to suppress seconds display.</remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="M:GSF.Units.Time.ToString(System.Int32,System.String[],System.Double)">
            <summary>
            Converts the <see cref="T:GSF.Units.Time"/> value into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits given string array of
            time names.
            </summary>
            <param name="secondPrecision">Number of fractional digits to display for seconds.</param>
            <param name="timeNames">Time names array to use during textual conversion.</param>
            <param name="minimumSubSecondResolution">
            Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.
            </param>
            <remarks>
            <para>Set second precision to -1 to suppress seconds display.</para>
            <para>
            <paramref name="timeNames"/> array needs one string entry for each of the following names:<br/>
            " year", " years", " day", " days", " hour", " hours", " minute", " minutes", " second", " seconds", "less than ".
            </para>
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="M:GSF.Units.Time.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Time"/>.</exception>
        </member>
        <member name="M:GSF.Units.Time.CompareTo(GSF.Units.Time)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Time"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Time"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.CompareTo(System.TimeSpan)">
            <summary>
            Compares this instance to a specified <see cref="T:System.TimeSpan"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.TimeSpan"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">An <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Time"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.Equals(GSF.Units.Time)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Time"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Time"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.Equals(System.TimeSpan)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.TimeSpan"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.TimeSpan"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">An <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <remarks>
            Note that this ToString overload matches <see cref="M:System.Double.ToString(System.String)"/>, use
            <see cref="M:GSF.Units.Time.ToString(System.Int32,System.Double)"/> to convert <see cref="T:GSF.Units.Time"/> value into a textual
            representation of years, days, hours, minutes and seconds.
            </remarks>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <remarks>
            Note that this ToString overload matches <see cref="M:System.Double.ToString(System.IFormatProvider)"/>, use
            <see cref="M:GSF.Units.Time.ToString(System.Int32,System.Double)"/> to convert <see cref="T:GSF.Units.Time"/> value into a textual
            representation of years, days, hours, minutes and seconds.
            </remarks>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <remarks>
            Note that this ToString overload matches <see cref="M:System.Double.ToString(System.String,System.IFormatProvider)"/>, use
            <see cref="M:GSF.Units.Time.ToString(System.Int32,System.Double)"/> to convert <see cref="T:GSF.Units.Time"/> value into a textual representation
            of years, days, hours, minutes and seconds.
            </remarks>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Time.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Time"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Time"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or greater than <see cref="F:GSF.Units.Time.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Time.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Time"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Time"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or greater than <see cref="F:GSF.Units.Time.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Time.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Time"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Time"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or greater than <see cref="F:GSF.Units.Time.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Time.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Time"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Time"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or greater than <see cref="F:GSF.Units.Time.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Time.TryParse(System.String,GSF.Units.Time@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Time"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Time"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or greater than <see cref="F:GSF.Units.Time.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Time.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Time@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Time"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Time"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Time.MinValue"/> or
            greater than <see cref="F:GSF.Units.Time.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Time.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Equality(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Inequality(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_LessThan(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_LessThanOrEqual(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_GreaterThan(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_GreaterThanOrEqual(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Implicit(System.Double)~GSF.Units.Time">
            <summary>
            Implicitly converts value, represented in seconds, to a <see cref="T:GSF.Units.Time"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Implicit(System.TimeSpan)~GSF.Units.Time">
            <summary>
            Implicitly converts value, represented as a <see cref="T:System.TimeSpan"/>, to a <see cref="T:GSF.Units.Time"/>.
            </summary>
            <param name="value">A <see cref="T:System.TimeSpan"/> object.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Implicit(GSF.Units.Time)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Time"/>, represented in seconds, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Time"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Implicit(GSF.Units.Time)~System.TimeSpan">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Time"/>, represented in seconds, to a <see cref="T:System.TimeSpan"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Time"/> object.</param>
            <returns>A <see cref="T:System.TimeSpan"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Modulus(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Addition(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Subtraction(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Multiply(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Division(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Time"/> object as the result of the operation.</returns>
        </member>
        <member name="M:GSF.Units.Time.op_Exponent(GSF.Units.Time,GSF.Units.Time)">
            <summary>
            Returns result of first value raised to power of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Time"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Time"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result of the operation.</returns>
        </member>
        <member name="F:GSF.Units.Time.MaxValue">
            <summary>Represents the largest possible value of a <see cref="T:GSF.Units.Time"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Time.MinValue">
            <summary>Represents the smallest possible value of a <see cref="T:GSF.Units.Time"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Time.TimeNames">
            <summary>
            Standard time names used by <see cref="M:GSF.Units.Time.ToElapsedTimeString(System.Double,System.Int32,System.String[],System.Double)"/> method.
            </summary>
        </member>
        <member name="M:GSF.Units.Time.FromAtomicUnitsOfTime(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in atomic units of time.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in atomic units of time.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in atomic units of time.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromPlanckTime(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in Planck time.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in Planck time.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in Planck time.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromKe(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in ke,
            the traditional Chinese unit of decimal time.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in ke.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in ke.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromMinutes(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in minutes.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in minutes.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in minutes.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromHours(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in hours.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in hours.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in hours.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromDays(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in days.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in days.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in days.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromWeeks(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in weeks.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in weeks.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in weeks.</returns>
        </member>
        <member name="M:GSF.Units.Time.FromTicks(GSF.Ticks)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Time"/> value from the specified <paramref name="value"/> in <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Time"/> value in Ticks.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> object from the specified <paramref name="value"/> in <see cref="T:GSF.Ticks"/>.</returns>
        </member>
        <member name="M:GSF.Units.Time.ConvertFrom(System.Double,GSF.Units.TimeUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Time"/> in seconds.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Time"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
            <remarks>
            When converting from <see cref="F:GSF.Units.TimeUnit.Ticks"/>, precision loss will
            occur for values that are outside the range of -2^52 and 2^52.
            </remarks>
        </member>
        <member name="M:GSF.Units.Time.SecondsPerMonth(System.Int32,System.Int32)">
            <summary>
            Returns the number of seconds in the specified month and year.
            </summary>
            <param name="year">The year.</param>
            <param name="month">The month (a number ranging from 1 to 12).</param>
            <returns>
            The number of seconds, as a <see cref="T:GSF.Units.Time"/>, in the month for the specified year.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            Month is less than 1 or greater than 12. -or- year is less than 1 or greater than 9999.
            </exception>
        </member>
        <member name="M:GSF.Units.Time.SecondsPerYear(System.Int32)">
            <summary>
            Returns the number of seconds in the specified year.
            </summary>
            <param name="year">The year.</param>
            <returns>
            The number of seconds in the specified year.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            Year is less than 1 or greater than 9999.
            </exception>
        </member>
        <member name="M:GSF.Units.Time.ToElapsedTimeString(System.Double,System.Int32,System.String[],System.Double)">
            <summary>
            Converts total <paramref name="seconds"/> into a textual representation of years, days, hours,
            minutes and seconds with the specified number of fractional digits given string array of
            time names.
            </summary>
            <param name="seconds">Seconds to convert to elapsed time.</param>
            <param name="secondPrecision">Number of fractional digits to display for seconds.</param>
            <param name="timeNames">Time names array to use during textual conversion.</param>
            <param name="minimumSubSecondResolution">
            Minimum sub-second resolution to display. Defaults to <see cref="F:GSF.Units.SI.Milli"/>.
            </param>
            <remarks>
            <para>
            Set <paramref name="secondPrecision"/> to -1 to suppress seconds display, this will
            force minimum resolution of time display to minutes.
            </para>
            <para>
            <paramref name="timeNames"/> array needs one string entry for each of the following names:<br/>
            " year", " years", " day", " days", " hour", " hours", " minute", " minutes", " second", " seconds", "less than ".
            </para>
            </remarks>
            <returns>
            The string representation of the value of this instance, consisting of the number of
            years, days, hours, minutes and seconds represented by this value.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="minimumSubSecondResolution"/> is not less than or equal to <see cref="F:GSF.Units.SI.Milli"/> or
            <paramref name="minimumSubSecondResolution"/> is not defined in <see cref="P:GSF.Units.SI.Factors"/> array.
            </exception>
        </member>
        <member name="T:GSF.Units.UnitExtensions">
            <summary>
            Defines extension functions related to unit structures.
            </summary>
        </member>
        <member name="M:GSF.Units.UnitExtensions.Unwrap(System.Collections.Generic.IEnumerable{GSF.Units.Angle})">
            <summary>
            Unwraps a set of <see cref="T:GSF.Units.Angle"/> values so a comparable mathematical operation can be applied.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.Units.Angle"/> values to unwrap.</param>
            <returns>Unwrapped set of <see cref="T:GSF.Units.Angle"/> values.</returns>
            <remarks>
            For Angles that wrap, e.g., between -180 and +180, this algorithm unwraps the values to make the values mathematically comparable.
            </remarks>
        </member>
        <member name="M:GSF.Units.UnitExtensions.Average(System.Collections.Generic.IEnumerable{GSF.Units.Angle})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:GSF.Units.Angle"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.Units.Angle"/> values over which to calculate average.</param>
            <returns>Average of the specified sequence of <see cref="T:GSF.Units.Angle"/> values.</returns>
            <remarks>
            For Angles that wrap, e.g., between -180 and +180, this algorithm takes the wrapping into account when calculating the average.
            </remarks>
        </member>
        <member name="T:GSF.Units.VoltageUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Voltage"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.VoltageUnit.Volts">
            <summary>
            Voltage units.
            </summary>
        </member>
        <member name="F:GSF.Units.VoltageUnit.Abvolts">
            <summary>
            Abvoltage units.
            </summary>
        </member>
        <member name="F:GSF.Units.VoltageUnit.Statvolts">
            <summary>
            Statvoltage units.
            </summary>
        </member>
        <member name="T:GSF.Units.Voltage">
            <summary>
            Represents an electromotive force (i.e., voltage) measurement, in volts, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a voltage in volts; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other voltage representations, specifically
            abvolt and statvolt. Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/>
            conversion factor, for example:
            <example>
            Convert volts to megavolts:
            <code>
            public double GetMegavolts(Voltage volts)
            {
                return volts / SI.Mega;
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Voltage.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Voltage"/>.
            </summary>
            <param name="value">New voltage value in volts.</param>
        </member>
        <member name="M:GSF.Units.Voltage.ToAbvolts">
            <summary>
            Gets the <see cref="T:GSF.Units.Voltage"/> value in abvolts.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Voltage"/> in abvolts.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.ToStatvolts">
            <summary>
            Gets the <see cref="T:GSF.Units.Voltage"/> value in statvolts.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Voltage"/> in statvolts.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.ConvertTo(GSF.Units.VoltageUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Voltage"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Voltage"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Voltage"/>.</exception>
        </member>
        <member name="M:GSF.Units.Voltage.CompareTo(GSF.Units.Voltage)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Voltage"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Voltage"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Voltage"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.Equals(GSF.Units.Voltage)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Voltage"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Voltage"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Voltage.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Voltage"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Voltage"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Voltage.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Voltage"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Voltage"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Voltage.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Voltage"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Voltage"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Voltage.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Voltage"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Voltage"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Voltage.TryParse(System.String,GSF.Units.Voltage@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Voltage"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Voltage"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Voltage@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Voltage"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Voltage"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Voltage.MinValue"/> or
            greater than <see cref="F:GSF.Units.Voltage.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Voltage.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Equality(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Inequality(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_LessThan(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_LessThanOrEqual(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_GreaterThan(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_GreaterThanOrEqual(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Implicit(System.Double)~GSF.Units.Voltage">
            <summary>
            Implicitly converts value, represented in volts, to a <see cref="T:GSF.Units.Voltage"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Implicit(GSF.Units.Voltage)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Voltage"/>, represented in volts, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Voltage"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Modulus(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Addition(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Subtraction(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Multiply(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Division(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Voltage"/> as the result.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.op_Exponent(GSF.Units.Voltage,GSF.Units.Voltage)">
            <summary>
            Returns result of first value raised to voltage of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Voltage"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Voltage"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result.</returns>
        </member>
        <member name="F:GSF.Units.Voltage.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Voltage"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Voltage.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Voltage"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Voltage.FromAbvolts(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Voltage"/> value from the specified <paramref name="value"/> in abvolts.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Voltage"/> value in abvolts.</param>
            <returns>New <see cref="T:GSF.Units.Voltage"/> object from the specified <paramref name="value"/> in abvolts.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.FromStatvolts(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Voltage"/> value from the specified <paramref name="value"/> in statvolts.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Voltage"/> value in statvolts.</param>
            <returns>New <see cref="T:GSF.Units.Voltage"/> object from the specified <paramref name="value"/> in statvolts.</returns>
        </member>
        <member name="M:GSF.Units.Voltage.ConvertFrom(System.Double,GSF.Units.VoltageUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Voltage"/> in volts.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Voltage"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.Units.VolumeUnit">
            <summary>
            Represents the units available for a <see cref="T:GSF.Units.Volume"/> value.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.CubicMeters">
            <summary>
            Cubic meter volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Liters">
            <summary>
            Liter volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Teaspoons">
            <summary>
            Teaspoon volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.MetricTeaspoons">
            <summary>
            Metric teaspoon volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Tablespoons">
            <summary>
            Tablespoon volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.MetricTablespoons">
            <summary>
            Metric tablespoon volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Cups">
            <summary>
            Cup volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.MetricCups">
            <summary>
            Metric cup volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.FluidOunces">
            <summary>
            Fluid ounce volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Pints">
            <summary>
            Pint volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Quarts">
            <summary>
            Quart volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.Gallons">
            <summary>
            Gallon volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.CubicInches">
            <summary>
            Cubic inch volume units.
            </summary>
        </member>
        <member name="F:GSF.Units.VolumeUnit.CubicFeet">
            <summary>
            Cubic feet volume units.
            </summary>
        </member>
        <member name="T:GSF.Units.Volume">
            <summary>
            Represents a volume measurement, in cubic meters, as a double-precision floating-point number.
            </summary>
            <remarks>
            This class behaves just like a <see cref="T:System.Double"/> representing a volume in cubic meters; it is implicitly
            castable to and from a <see cref="T:System.Double"/> and therefore can be generally used "as" a double, but it
            has the advantage of handling conversions to and from other volume representations, specifically
            liters, teaspoons, tablespoons, cubic inches, fluid ounces, cups, pints, quarts, gallons and cubic feet.
            Metric conversions are handled simply by applying the needed <see cref="T:GSF.Units.SI"/> conversion factor, for example:
            <example>
            Convert volume, in cubic meters, to cubic kilometers:
            <code>
            public double GetCubicKilometers(Volume cubicmeters)
            {
                return cubicmeters / SI.Kilo;
            }
            </code>
            This example converts teaspoons to cups:
            <code>
            public double GetCups(double teaspoons)
            {
                return Volume.FromTeaspoons(teaspoons).ToCups();
            }
            </code>
            This example converts liters to fluid ounces:
            <code>
            public double GetFluidOunces(double liters)
            {
                return Volume.FromLiters(liters).ToFluidOunces();
            }
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:GSF.Units.Volume.#ctor(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/>.
            </summary>
            <param name="value">New volume value in cubic meters.</param>
        </member>
        <member name="M:GSF.Units.Volume.ToLiters">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in liters.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in liters.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToTeaspoons">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US teaspoons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US teaspoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToMetricTeaspoons">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in metric teaspoons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in metric teaspoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToTablespoons">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US tablespoons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US tablespoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToMetricTablespoons">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in metric tablespoons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in metric tablespoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToCups">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US cups.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US cups.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToMetricCups">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in metric cups.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in metric cups.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToFluidOunces">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US fluid ounces.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US fluid ounces.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToPints">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US fluid pints.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US fluid pints.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToQuarts">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US fluid quarts.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US fluid quarts.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToGallons">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in US fluid gallons.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in US fluid gallons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToCubicInches">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in cubic inches.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in cubic inches.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ToCubicFeet">
            <summary>
            Gets the <see cref="T:GSF.Units.Volume"/> value in cubic feet.
            </summary>
            <returns>Value of <see cref="T:GSF.Units.Volume"/> in cubic feet.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ConvertTo(GSF.Units.VolumeUnit)">
            <summary>
            Converts the <see cref="T:GSF.Units.Volume"/> to the specified <paramref name="targetUnit"/>.
            </summary>
            <param name="targetUnit">Target units.</param>
            <returns><see cref="T:GSF.Units.Volume"/> converted to <paramref name="targetUnit"/>.</returns>
        </member>
        <member name="M:GSF.Units.Volume.CompareTo(System.Object)">
            <summary>
            Compares this instance to a specified object and returns an indication of their relative values.
            </summary>
            <param name="value">An object to compare, or null.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
            <exception cref="T:System.ArgumentException">value is not a <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Volume"/>.</exception>
        </member>
        <member name="M:GSF.Units.Volume.CompareTo(GSF.Units.Volume)">
            <summary>
            Compares this instance to a specified <see cref="T:GSF.Units.Volume"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Volume"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.CompareTo(System.Double)">
            <summary>
            Compares this instance to a specified <see cref="T:System.Double"/> and returns an indication of their
            relative values.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> to compare.</param>
            <returns>
            A signed number indicating the relative values of this instance and value. Returns less than zero
            if this instance is less than value, zero if this instance is equal to value, or greater than zero
            if this instance is greater than value.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.Equals(System.Object)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified object.
            </summary>
            <param name="obj">An object to compare, or null.</param>
            <returns>
            True if obj is an instance of <see cref="T:System.Double"/> or <see cref="T:GSF.Units.Volume"/> and equals the value of this instance;
            otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.Equals(GSF.Units.Volume)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:GSF.Units.Volume"/> value.
            </summary>
            <param name="obj">A <see cref="T:GSF.Units.Volume"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.Equals(System.Double)">
            <summary>
            Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Double"/> value.
            </summary>
            <param name="obj">A <see cref="T:System.Double"/> value to compare to this instance.</param>
            <returns>
            True if obj has the same value as this instance; otherwise, False.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>
            A 32-bit signed integer hash code.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.ToString">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation.
            </summary>
            <returns>
            The string representation of the value of this instance, consisting of a minus sign if
            the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeros.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.ToString(System.String)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation, using
            the specified format.
            </summary>
            <param name="format">A format string.</param>
            <returns>
            The string representation of the value of this instance as specified by format.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.ToString(System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified culture-specific format information.
            </summary>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.ToString(System.String,System.IFormatProvider)">
            <summary>
            Converts the numeric value of this instance to its equivalent string representation using the
            specified format and culture-specific format information.
            </summary>
            <param name="format">A format specification.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information.
            </param>
            <returns>
            The string representation of the value of this instance as specified by format and provider.
            </returns>
        </member>
        <member name="M:GSF.Units.Volume.Parse(System.String)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Volume"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <returns>
            A <see cref="T:GSF.Units.Volume"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or greater than <see cref="F:GSF.Units.Volume.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Volume.Parse(System.String,System.Globalization.NumberStyles)">
            <summary>
            Converts the string representation of a number in a specified style to its <see cref="T:GSF.Units.Volume"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Volume"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or greater than <see cref="F:GSF.Units.Volume.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Volume.Parse(System.String,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified culture-specific format to its <see cref="T:GSF.Units.Volume"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Volume"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or greater than <see cref="F:GSF.Units.Volume.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in the correct format.</exception>
        </member>
        <member name="M:GSF.Units.Volume.Parse(System.String,System.Globalization.NumberStyles,System.IFormatProvider)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its <see cref="T:GSF.Units.Volume"/> equivalent.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> that supplies culture-specific formatting information about s.
            </param>
            <returns>
            A <see cref="T:GSF.Units.Volume"/> equivalent to the number contained in s.
            </returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
            <exception cref="T:System.ArgumentNullException">s is null.</exception>
            <exception cref="T:System.OverflowException">
            s represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or greater than <see cref="F:GSF.Units.Volume.MaxValue"/>.
            </exception>
            <exception cref="T:System.FormatException">s is not in a format compliant with style.</exception>
        </member>
        <member name="M:GSF.Units.Volume.TryParse(System.String,GSF.Units.Volume@)">
            <summary>
            Converts the string representation of a number to its <see cref="T:GSF.Units.Volume"/> equivalent. A return value
            indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Volume"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not of the correct format, or represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or greater than <see cref="F:GSF.Units.Volume.MaxValue"/>.
            This parameter is passed uninitialized.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
        </member>
        <member name="M:GSF.Units.Volume.TryParse(System.String,System.Globalization.NumberStyles,System.IFormatProvider,GSF.Units.Volume@)">
            <summary>
            Converts the string representation of a number in a specified style and culture-specific format to its
            <see cref="T:GSF.Units.Volume"/> equivalent. A return value indicates whether the conversion succeeded or failed.
            </summary>
            <param name="s">A string containing a number to convert.</param>
            <param name="style">
            A bitwise combination of System.Globalization.NumberStyles values that indicates the permitted format of s.
            </param>
            <param name="result">
            When this method returns, contains the <see cref="T:GSF.Units.Volume"/> value equivalent to the number contained in s,
            if the conversion succeeded, or zero if the conversion failed. The conversion fails if the s parameter is null,
            is not in a format compliant with style, or represents a number less than <see cref="F:GSF.Units.Volume.MinValue"/> or
            greater than <see cref="F:GSF.Units.Volume.MaxValue"/>. This parameter is passed uninitialized.
            </param>
            <param name="provider">
            A <see cref="T:System.IFormatProvider"/> object that supplies culture-specific formatting information about s.
            </param>
            <returns>true if s was converted successfully; otherwise, false.</returns>
            <exception cref="T:System.ArgumentException">
            style is not a System.Globalization.NumberStyles value. -or- style is not a combination of
            System.Globalization.NumberStyles.AllowHexSpecifier and System.Globalization.NumberStyles.HexNumber values.
            </exception>
        </member>
        <member name="M:GSF.Units.Volume.GetTypeCode">
            <summary>
            Returns the <see cref="T:System.TypeCode"/> for value type <see cref="T:System.Double"/>.
            </summary>
            <returns>The enumerated constant, <see cref="F:System.TypeCode.Double"/>.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Equality(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Compares the two values for equality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Inequality(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Compares the two values for inequality.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_LessThan(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns true if left value is less than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_LessThanOrEqual(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns true if left value is less or equal to than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_GreaterThan(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns true if left value is greater than right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_GreaterThanOrEqual(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns true if left value is greater than or equal to right value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> value as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Implicit(System.Double)~GSF.Units.Volume">
            <summary>
            Implicitly converts value, represented in cubic meters, to a <see cref="T:GSF.Units.Volume"/>.
            </summary>
            <param name="value">A <see cref="T:System.Double"/> value.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Implicit(GSF.Units.Volume)~System.Double">
            <summary>
            Implicitly converts <see cref="T:GSF.Units.Volume"/>, represented in cubic meters, to a <see cref="T:System.Double"/>.
            </summary>
            <param name="value">A <see cref="T:GSF.Units.Volume"/> object.</param>
            <returns>A <see cref="T:System.Double"/> value.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Modulus(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns computed remainder after dividing first value by the second.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Addition(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns computed sum of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Subtraction(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns computed difference of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Multiply(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns computed product of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Division(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns computed division of values.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:GSF.Units.Volume"/> object as the result.</returns>
        </member>
        <member name="M:GSF.Units.Volume.op_Exponent(GSF.Units.Volume,GSF.Units.Volume)">
            <summary>
            Returns result of first value raised to volume of second value.
            </summary>
            <param name="value1">A <see cref="T:GSF.Units.Volume"/> object as the left hand operand.</param>
            <param name="value2">A <see cref="T:GSF.Units.Volume"/> object as the right hand operand.</param>
            <returns>A <see cref="T:System.Double"/> value as the result.</returns>
        </member>
        <member name="F:GSF.Units.Volume.MaxValue">
            <summary>Represents the largest possible value of an <see cref="T:GSF.Units.Volume"/>. This field is constant.</summary>
        </member>
        <member name="F:GSF.Units.Volume.MinValue">
            <summary>Represents the smallest possible value of an <see cref="T:GSF.Units.Volume"/>. This field is constant.</summary>
        </member>
        <member name="M:GSF.Units.Volume.FromLiters(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in liters.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in liters.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in liters.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromTeaspoons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US teaspoons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US teaspoons.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US teaspoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromMetricTeaspoons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in metric teaspoons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in metric teaspoons.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in metric teaspoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromTablespoons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US tablespoons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US tablespoons.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US tablespoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromMetricTablespoons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in metric tablespoons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in metric tablespoons.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in metric tablespoons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromCups(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US cups.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US cups.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US cups.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromMetricCups(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in metric cups.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in metric cups.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in metric cups.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromFluidOunces(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US fluid ounces.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US fluid ounces.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US fluid ounces.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromPints(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US fluid pints.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US fluid pints.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US fluid pints.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromQuarts(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US fluid quarts.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US fluid quarts.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US fluid quarts.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromGallons(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in US fluid gallons.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in US fluid gallons.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in US fluid gallons.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromCubicInches(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in cubic inches.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in cubic inches.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in cubic inches.</returns>
        </member>
        <member name="M:GSF.Units.Volume.FromCubicFeet(System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.Units.Volume"/> value from the specified <paramref name="value"/> in cubic feet.
            </summary>
            <param name="value">New <see cref="T:GSF.Units.Volume"/> value in cubic feet.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> object from the specified <paramref name="value"/> in cubic feet.</returns>
        </member>
        <member name="M:GSF.Units.Volume.ConvertFrom(System.Double,GSF.Units.VolumeUnit)">
            <summary>
            Converts the <paramref name="value"/> in the specified <paramref name="sourceUnit"/> to a new <see cref="T:GSF.Units.Volume"/> in cubic meters.
            </summary>
            <param name="value">Source value.</param>
            <param name="sourceUnit">Source value units.</param>
            <returns>New <see cref="T:GSF.Units.Volume"/> from the specified <paramref name="value"/> in <paramref name="sourceUnit"/>.</returns>
        </member>
        <member name="T:GSF.UnixTimeTag">
            <summary>
            Represents a standard Unix timetag.
            </summary>
        </member>
        <member name="M:GSF.UnixTimeTag.#ctor(System.Decimal)">
            <summary>
            Creates a new <see cref="T:GSF.UnixTimeTag"/>, given number of seconds since 1/1/1970.
            </summary>
            <param name="seconds">Number of seconds since 1/1/1970.</param>
        </member>
        <member name="M:GSF.UnixTimeTag.#ctor(System.UInt32)">
            <summary>
            Creates a new <see cref="T:GSF.UnixTimeTag"/>, given number of seconds since 1/1/1970.
            </summary>
            <param name="seconds">Number of seconds since 1/1/1970.</param>
        </member>
        <member name="M:GSF.UnixTimeTag.#ctor(GSF.Ticks)">
            <summary>
            Creates a new <see cref="T:GSF.UnixTimeTag"/>, given specified <see cref="T:GSF.Ticks"/>.
            </summary>
            <param name="timestamp">Timestamp in <see cref="T:GSF.Ticks"/> to create Unix timetag from (minimum valid date is 1/1/1970).</param>
            <remarks>
            This constructor will accept a <see cref="T:System.DateTime"/> parameter since <see cref="T:GSF.Ticks"/> is implicitly castable to a <see cref="T:System.DateTime"/>.
            </remarks>
        </member>
        <member name="M:GSF.UnixTimeTag.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates a new <see cref="T:GSF.UnixTimeTag"/> from serialization parameters.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with populated with data.</param>
            <param name="context">The source <see cref="T:System.Runtime.Serialization.StreamingContext"/> for this deserialization.</param>
        </member>
        <member name="F:GSF.UnixTimeTag.BaseTicks">
            <summary>
            Number of ticks since 1/1/1970.
            </summary>
            <remarks>
            Unix dates are measured as the number of seconds since 1/1/1970.
            </remarks>
        </member>
        <member name="T:GSF.Word">
            <summary>
            Represents functions and extensions related to 16-bit words, 32-bit double-words and 64-bit quad-words.
            </summary>
        </member>
        <member name="M:GSF.Word.AlignWord(System.Int16)">
            <summary>
            Aligns word value on a 16-bit boundary.
            </summary>
            <param name="word">Word value to align.</param>
            <returns>Word value aligned to next 16-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.AlignWord(System.UInt16)">
            <summary>
            Aligns word value on a 16-bit boundary.
            </summary>
            <param name="word">Word value to align.</param>
            <returns>Word value aligned to next 16-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.AlignDoubleWord(System.Int32)">
            <summary>
            Aligns double-word value on a 32-bit boundary.
            </summary>
            <param name="doubleWord">Double-word value to align.</param>
            <returns>Double-word value aligned to next 32-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.AlignDoubleWord(System.UInt32)">
            <summary>
            Aligns double-word value on a 32-bit boundary.
            </summary>
            <param name="doubleWord">Double-word value to align.</param>
            <returns>Double-word value aligned to next 32-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.AlignQuadWord(System.Int64)">
            <summary>
            Aligns quad-word value on a 64-bit boundary.
            </summary>
            <param name="quadWord">Quad-word value to align.</param>
            <returns>Quad-word value aligned to next 64-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.AlignQuadWord(System.UInt64)">
            <summary>
            Aligns quad-word value on a 64-bit boundary.
            </summary>
            <param name="quadWord">Quad-word value to align.</param>
            <returns>Quad-word value aligned to next 64-bit boundary.</returns>
        </member>
        <member name="M:GSF.Word.HighNibble(System.Byte)">
            <summary>
            Returns the high-nibble (high 4-bits) from a byte.
            </summary>
            <param name="value">Byte value.</param>
            <returns>The high-nibble of the specified byte value.</returns>
        </member>
        <member name="M:GSF.Word.HighByte(System.UInt16)">
            <summary>
            Returns the high-byte from an unsigned word (UInt16).
            </summary>
            <param name="word">2-byte, 16-bit unsigned integer value.</param>
            <returns>The high-order byte of the specified 16-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the byte value whose in-memory representation
            is the same as the right-most, most-significant-byte of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.HighWord(System.UInt32)">
            <summary>
            Returns the unsigned high-word (UInt16) from an unsigned double-word (UInt32).
            </summary>
            <param name="doubleWord">4-byte, 32-bit unsigned integer value.</param>
            <returns>The unsigned high-order word of the specified 32-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the word value
            whose in-memory representation is the same as the right-most, most-significant-word
            of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.HighDoubleWord(System.UInt64)">
            <summary>
            Returns the unsigned high-double-word (UInt32) from an unsigned quad-word (UInt64).
            </summary>
            <param name="quadWord">8-byte, 64-bit unsigned integer value.</param>
            <returns>The high-order double-word of the specified 64-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the word value
            whose in-memory representation is the same as the right-most, most-significant-word
            of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.LowNibble(System.Byte)">
            <summary>
            Returns the low-nibble (low 4-bits) from a byte.
            </summary>
            <param name="value">Byte value.</param>
            <returns>The low-nibble of the specified byte value.</returns>
        </member>
        <member name="M:GSF.Word.LowByte(System.UInt16)">
            <summary>
            Returns the low-byte from an unsigned word (UInt16).
            </summary>
            <param name="word">2-byte, 16-bit unsigned integer value.</param>
            <returns>The low-order byte of the specified 16-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the byte value
            whose in-memory representation is the same as the left-most, least-significant-byte
            of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.LowWord(System.UInt32)">
            <summary>
            Returns the unsigned low-word (UInt16) from an unsigned double-word (UInt32).
            </summary>
            <param name="doubleWord">4-byte, 32-bit unsigned integer value.</param>
            <returns>The unsigned low-order word of the specified 32-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the word value
            whose in-memory representation is the same as the left-most, least-significant-word
            of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.LowDoubleWord(System.UInt64)">
            <summary>
            Returns the unsigned low-double-word (UInt32) from an unsigned quad-word (UInt64).
            </summary>
            <param name="quadWord">8-byte, 64-bit unsigned integer value.</param>
            <returns>The low-order double-word of the specified 64-bit unsigned integer value.</returns>
            <remarks>
            On little-endian architectures (e.g., Intel platforms), this will be the word value
            whose in-memory representation is the same as the left-most, least-significant-word
            of the integer value.
            </remarks>
        </member>
        <member name="M:GSF.Word.MakeWord(System.Byte,System.Byte)">
            <summary>
            Makes an unsigned word (UInt16) from two bytes.
            </summary>
            <param name="high">High byte.</param>
            <param name="low">Low byte.</param>
            <returns>An unsigned 16-bit word made from the two specified bytes.</returns>
        </member>
        <member name="M:GSF.Word.MakeDoubleWord(System.UInt16,System.UInt16)">
            <summary>
            Makes an unsigned double-word (UInt32) from two unsigned words (UInt16).
            </summary>
            <param name="high">High word.</param>
            <param name="low">Low word.</param>
            <returns>An unsigned 32-bit double-word made from the two specified unsigned 16-bit words.</returns>
        </member>
        <member name="M:GSF.Word.MakeQuadWord(System.UInt32,System.UInt32)">
            <summary>
            Makes an unsigned quad-word (UInt64) from two unsigned double-words (UInt32).
            </summary>
            <param name="high">High double-word.</param>
            <param name="low">Low double-word.</param>
            <returns>An unsigned 64-bit quad-word made from the two specified unsigned 32-bit double-words.</returns>
        </member>
        <member name="T:Ionic.Crc.CRC32">
            <summary>
              Computes a CRC-32. The CRC-32 algorithm is parameterized - you
              can set the polynomial and enable or disable bit
              reversal. This can be used for GZIP, BZip2, or ZIP.
            </summary>
            <remarks>
              This type is used internally by DotNetZip; it is generally not used
              directly by applications wishing to create, read, or manipulate zip
              archive files.
            </remarks>
        </member>
        <member name="P:Ionic.Crc.CRC32.TotalBytesRead">
            <summary>
              Indicates the total number of bytes applied to the CRC.
            </summary>
        </member>
        <member name="P:Ionic.Crc.CRC32.Crc32Result">
            <summary>
            Indicates the current CRC for all blocks slurped in.
            </summary>
        </member>
        <member name="M:Ionic.Crc.CRC32.GetCrc32(System.IO.Stream)">
            <summary>
            Returns the CRC32 for the specified stream.
            </summary>
            <param name="input">The stream over which to calculate the CRC32</param>
            <returns>the CRC32 calculation</returns>
        </member>
        <member name="M:Ionic.Crc.CRC32.GetCrc32AndCopy(System.IO.Stream,System.IO.Stream)">
            <summary>
            Returns the CRC32 for the specified stream, and writes the input into the
            output stream.
            </summary>
            <param name="input">The stream over which to calculate the CRC32</param>
            <param name="output">The stream into which to deflate the input</param>
            <returns>the CRC32 calculation</returns>
        </member>
        <member name="M:Ionic.Crc.CRC32.ComputeCrc32(System.Int32,System.Byte)">
            <summary>
              Get the CRC32 for the given (word,byte) combo.  This is a
              computation defined by PKzip for PKZIP 2.0 (weak) encryption.
            </summary>
            <param name="W">The word to start with.</param>
            <param name="B">The byte to combine it with.</param>
            <returns>The CRC-ized result.</returns>
        </member>
        <member name="M:Ionic.Crc.CRC32.SlurpBlock(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Update the value for the running CRC32 using the given block of bytes.
            This is useful when using the CRC32() class in a Stream.
            </summary>
            <param name="block">block of bytes to slurp</param>
            <param name="offset">starting point in the block</param>
            <param name="count">how many bytes within the block to slurp</param>
        </member>
        <member name="M:Ionic.Crc.CRC32.UpdateCRC(System.Byte)">
            <summary>
              Process one byte in the CRC.
            </summary>
            <param name = "b">the byte to include into the CRC .  </param>
        </member>
        <member name="M:Ionic.Crc.CRC32.UpdateCRC(System.Byte,System.Int32)">
            <summary>
              Process a run of N identical bytes into the CRC.
            </summary>
            <remarks>
              <para>
                This method serves as an optimization for updating the CRC when a
                run of identical bytes is found. Rather than passing in a buffer of
                length n, containing all identical bytes b, this method accepts the
                byte value and the length of the (virtual) buffer - the length of
                the run.
              </para>
            </remarks>
            <param name = "b">the byte to include into the CRC.  </param>
            <param name = "n">the number of times that byte should be repeated. </param>
        </member>
        <member name="M:Ionic.Crc.CRC32.Combine(System.Int32,System.Int32)">
            <summary>
              Combines the given CRC32 value with the current running total.
            </summary>
            <remarks>
              This is useful when using a divide-and-conquer approach to
              calculating a CRC.  Multiple threads can each calculate a
              CRC32 on a segment of the data, and then combine the
              individual CRC32 values at the end.
            </remarks>
            <param name="crc">the crc value to be combined with this one</param>
            <param name="length">the length of data the CRC value was calculated on</param>
        </member>
        <member name="M:Ionic.Crc.CRC32.#ctor">
            <summary>
              Create an instance of the CRC32 class using the default settings: no
              bit reversal, and a polynomial of 0xEDB88320.
            </summary>
        </member>
        <member name="M:Ionic.Crc.CRC32.#ctor(System.Boolean)">
            <summary>
              Create an instance of the CRC32 class, specifying whether to reverse
              data bits or not.
            </summary>
            <param name='reverseBits'>
              specify true if the instance should reverse data bits.
            </param>
            <remarks>
              <para>
                In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
                want a CRC32 with compatibility with BZip2, you should pass true
                here. In the CRC-32 used by GZIP and PKZIP, the bits are not
                reversed; Therefore if you want a CRC32 with compatibility with
                those, you should pass false.
              </para>
            </remarks>
        </member>
        <member name="M:Ionic.Crc.CRC32.#ctor(System.Int32,System.Boolean)">
             <summary>
               Create an instance of the CRC32 class, specifying the polynomial and
               whether to reverse data bits or not.
             </summary>
             <param name='polynomial'>
               The polynomial to use for the CRC, expressed in the reversed (LSB)
               format: the highest ordered bit in the polynomial value is the
               coefficient of the 0th power; the second-highest order bit is the
               coefficient of the 1 power, and so on. Expressed this way, the
               polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320.
             </param>
             <param name='reverseBits'>
               specify true if the instance should reverse data bits.
             </param>
            
             <remarks>
               <para>
                 In the CRC-32 used by BZip2, the bits are reversed. Therefore if you
                 want a CRC32 with compatibility with BZip2, you should pass true
                 here for the <c>reverseBits</c> parameter. In the CRC-32 used by
                 GZIP and PKZIP, the bits are not reversed; Therefore if you want a
                 CRC32 with compatibility with those, you should pass false for the
                 <c>reverseBits</c> parameter.
               </para>
             </remarks>
        </member>
        <member name="M:Ionic.Crc.CRC32.Reset">
            <summary>
              Reset the CRC-32 class - clear the CRC "remainder register."
            </summary>
            <remarks>
              <para>
                Use this when employing a single instance of this class to compute
                multiple, distinct CRCs on multiple, distinct data blocks.
              </para>
            </remarks>
        </member>
        <member name="T:Ionic.Crc.CrcCalculatorStream">
             <summary>
             A Stream that calculates a CRC32 (a checksum) on all bytes read,
             or on all bytes written.
             </summary>
            
             <remarks>
             <para>
             This class can be used to verify the CRC of a ZipEntry when
             reading from a stream, or to calculate a CRC when writing to a
             stream.  The stream should be used to either read, or write, but
             not both.  If you intermix reads and writes, the results are not
             defined.
             </para>
            
             <para>
             This class is intended primarily for use internally by the
             DotNetZip library.
             </para>
             </remarks>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.#ctor(System.IO.Stream)">
            <summary>
            The default constructor.
            </summary>
            <remarks>
              <para>
                Instances returned from this constructor will leave the underlying
                stream open upon Close().  The stream uses the default CRC32
                algorithm, which implies a polynomial of 0xEDB88320.
              </para>
            </remarks>
            <param name="stream">The underlying stream</param>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.#ctor(System.IO.Stream,System.Boolean)">
            <summary>
              The constructor allows the caller to specify how to handle the
              underlying stream at close.
            </summary>
            <remarks>
              <para>
                The stream uses the default CRC32 algorithm, which implies a
                polynomial of 0xEDB88320.
              </para>
            </remarks>
            <param name="stream">The underlying stream</param>
            <param name="leaveOpen">true to leave the underlying stream
            open upon close of the <c>CrcCalculatorStream</c>; false otherwise.</param>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.#ctor(System.IO.Stream,System.Int64)">
            <summary>
              A constructor allowing the specification of the length of the stream
              to read.
            </summary>
            <remarks>
              <para>
                The stream uses the default CRC32 algorithm, which implies a
                polynomial of 0xEDB88320.
              </para>
              <para>
                Instances returned from this constructor will leave the underlying
                stream open upon Close().
              </para>
            </remarks>
            <param name="stream">The underlying stream</param>
            <param name="length">The length of the stream to slurp</param>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.#ctor(System.IO.Stream,System.Int64,System.Boolean)">
            <summary>
              A constructor allowing the specification of the length of the stream
              to read, as well as whether to keep the underlying stream open upon
              Close().
            </summary>
            <remarks>
              <para>
                The stream uses the default CRC32 algorithm, which implies a
                polynomial of 0xEDB88320.
              </para>
            </remarks>
            <param name="stream">The underlying stream</param>
            <param name="length">The length of the stream to slurp</param>
            <param name="leaveOpen">true to leave the underlying stream
            open upon close of the <c>CrcCalculatorStream</c>; false otherwise.</param>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.#ctor(System.IO.Stream,System.Int64,System.Boolean,Ionic.Crc.CRC32)">
            <summary>
              A constructor allowing the specification of the length of the stream
              to read, as well as whether to keep the underlying stream open upon
              Close(), and the CRC32 instance to use.
            </summary>
            <remarks>
              <para>
                The stream uses the specified CRC32 instance, which allows the
                application to specify how the CRC gets calculated.
              </para>
            </remarks>
            <param name="stream">The underlying stream</param>
            <param name="length">The length of the stream to slurp</param>
            <param name="leaveOpen">true to leave the underlying stream
            open upon close of the <c>CrcCalculatorStream</c>; false otherwise.</param>
            <param name="crc32">the CRC32 instance to use to calculate the CRC32</param>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.TotalBytesSlurped">
             <summary>
               Gets the total number of bytes run through the CRC32 calculator.
             </summary>
            
             <remarks>
               This is either the total number of bytes read, or the total number of
               bytes written, depending on the direction of this stream.
             </remarks>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.Crc">
            <summary>
              Provides the current CRC for all blocks slurped in.
            </summary>
            <remarks>
              <para>
                The running total of the CRC is kept as data is written or read
                through the stream.  read this property after all reads or writes to
                get an accurate CRC for the entire stream.
              </para>
            </remarks>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.LeaveOpen">
            <summary>
              Indicates whether the underlying stream will be left open when the
              <c>CrcCalculatorStream</c> is Closed.
            </summary>
            <remarks>
              <para>
                Set this at any point before calling <see cref="M:Ionic.Crc.CrcCalculatorStream.Close"/>.
              </para>
            </remarks>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Read from the stream
            </summary>
            <param name="buffer">the buffer to read</param>
            <param name="offset">the offset at which to start</param>
            <param name="count">the number of bytes to read</param>
            <returns>the number of bytes actually read</returns>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.Write(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Write to the stream.
            </summary>
            <param name="buffer">the buffer from which to write</param>
            <param name="offset">the offset at which to start writing</param>
            <param name="count">the number of bytes to write</param>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.CanRead">
            <summary>
            Indicates whether the stream supports reading.
            </summary>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.CanSeek">
            <summary>
              Indicates whether the stream supports seeking.
            </summary>
            <remarks>
              <para>
                Always returns false.
              </para>
            </remarks>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.CanWrite">
            <summary>
            Indicates whether the stream supports writing.
            </summary>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.Flush">
            <summary>
            Flush the stream.
            </summary>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.Length">
            <summary>
              Returns the length of the underlying stream.
            </summary>
        </member>
        <member name="P:Ionic.Crc.CrcCalculatorStream.Position">
            <summary>
              The getter for this property returns the total bytes read.
              If you use the setter, it will throw
            <see cref="T:System.NotSupportedException"/>.
            </summary>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Seeking is not supported on this stream. This method always throws
            <see cref="T:System.NotSupportedException"/>
            </summary>
            <param name="offset">N/A</param>
            <param name="origin">N/A</param>
            <returns>N/A</returns>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.SetLength(System.Int64)">
            <summary>
            This method always throws
            <see cref="T:System.NotSupportedException"/>
            </summary>
            <param name="value">N/A</param>
        </member>
        <member name="M:Ionic.Crc.CrcCalculatorStream.Close">
            <summary>
            Closes the stream.
            </summary>
        </member>
        <member name="T:Ionic.Zlib.DeflateStream">
             <summary>
             A class for compressing and decompressing streams using the Deflate algorithm.
             </summary>
            
             <remarks>
            
             <para>
               The DeflateStream is a <see
               href="http://en.wikipedia.org/wiki/Decorator_pattern">Decorator</see> on a <see
               cref="T:System.IO.Stream"/>.  It adds DEFLATE compression or decompression to any
               stream.
             </para>
            
             <para>
               Using this stream, applications can compress or decompress data via stream
               <c>Read</c> and <c>Write</c> operations.  Either compresssion or decompression
               can occur through either reading or writing. The compression format used is
               DEFLATE, which is documented in <see
               href="http://www.ietf.org/rfc/rfc1951.txt">IETF RFC 1951</see>, "DEFLATE
               Compressed Data Format Specification version 1.3.".
             </para>
            
             <para>
               This class is similar to <see cref="T:Ionic.Zlib.ZlibStream"/>, except that
               <c>ZlibStream</c> adds the <see href="http://www.ietf.org/rfc/rfc1950.txt">RFC
               1950 - ZLIB</see> framing bytes to a compressed stream when compressing, or
               expects the RFC1950 framing bytes when decompressing. The <c>DeflateStream</c>
               does not.
             </para>
            
             </remarks>
            
             <seealso cref="T:Ionic.Zlib.ZlibStream" />
             <seealso cref="T:Ionic.Zlib.GZipStream" />
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode)">
             <summary>
               Create a DeflateStream using the specified CompressionMode.
             </summary>
            
             <remarks>
               When mode is <c>CompressionMode.Compress</c>, the DeflateStream will use
               the default compression level. The "captive" stream will be closed when
               the DeflateStream is closed.
             </remarks>
            
             <example>
             This example uses a DeflateStream to compress data from a file, and writes
             the compressed data to another file.
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(fileToCompress + ".deflated"))
                 {
                     using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
            
             <code lang="VB">
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(fileToCompress &amp; ".deflated")
                     Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
             End Using
             </code>
             </example>
             <param name="stream">The stream which will be read or written.</param>
             <param name="mode">Indicates whether the DeflateStream will compress or decompress.</param>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel)">
             <summary>
             Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel.
             </summary>
            
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Decompress</c>, the level parameter is
               ignored.  The "captive" stream will be closed when the DeflateStream is
               closed.
             </para>
            
             </remarks>
            
             <example>
            
               This example uses a DeflateStream to compress data from a file, and writes
               the compressed data to another file.
            
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(fileToCompress + ".deflated"))
                 {
                     using (Stream compressor = new DeflateStream(raw,
                                                                  CompressionMode.Compress,
                                                                  CompressionLevel.BestCompression))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n= -1;
                         while (n != 0)
                         {
                             if (n &gt; 0)
                                 compressor.Write(buffer, 0, n);
                             n= input.Read(buffer, 0, buffer.Length);
                         }
                     }
                 }
             }
             </code>
            
             <code lang="VB">
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(fileToCompress &amp; ".deflated")
                     Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
             End Using
             </code>
             </example>
             <param name="stream">The stream to be read or written while deflating or inflating.</param>
             <param name="mode">Indicates whether the <c>DeflateStream</c> will compress or decompress.</param>
             <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,System.Boolean)">
             <summary>
               Create a <c>DeflateStream</c> using the specified
               <c>CompressionMode</c>, and explicitly specify whether the
               stream should be left open after Deflation or Inflation.
             </summary>
            
             <remarks>
            
             <para>
               This constructor allows the application to request that the captive stream
               remain open after the deflation or inflation occurs.  By default, after
               <c>Close()</c> is called on the stream, the captive stream is also
               closed. In some cases this is not desired, for example if the stream is a
               memory stream that will be re-read after compression.  Specify true for
               the <paramref name="leaveOpen"/> parameter to leave the stream open.
             </para>
            
             <para>
               The <c>DeflateStream</c> will use the default compression level.
             </para>
            
             <para>
               See the other overloads of this constructor for example code.
             </para>
             </remarks>
            
             <param name="stream">
               The stream which will be read or written. This is called the
               "captive" stream in other places in this documentation.
             </param>
            
             <param name="mode">
               Indicates whether the <c>DeflateStream</c> will compress or decompress.
             </param>
            
             <param name="leaveOpen">true if the application would like the stream to
             remain open after inflation/deflation.</param>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel,System.Boolean)">
             <summary>
               Create a <c>DeflateStream</c> using the specified <c>CompressionMode</c>
               and the specified <c>CompressionLevel</c>, and explicitly specify whether
               the stream should be left open after Deflation or Inflation.
             </summary>
            
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Decompress</c>, the level parameter is ignored.
             </para>
            
             <para>
               This constructor allows the application to request that the captive stream
               remain open after the deflation or inflation occurs.  By default, after
               <c>Close()</c> is called on the stream, the captive stream is also
               closed. In some cases this is not desired, for example if the stream is a
               <see cref="T:System.IO.MemoryStream"/> that will be re-read after
               compression.  Specify true for the <paramref name="leaveOpen"/> parameter
               to leave the stream open.
             </para>
            
             </remarks>
            
             <example>
            
               This example shows how to use a <c>DeflateStream</c> to compress data from
               a file, and store the compressed data into another file.
            
             <code>
             using (var output = System.IO.File.Create(fileToCompress + ".deflated"))
             {
                 using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
                 {
                     using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n= -1;
                         while (n != 0)
                         {
                             if (n &gt; 0)
                                 compressor.Write(buffer, 0, n);
                             n= input.Read(buffer, 0, buffer.Length);
                         }
                     }
                 }
                 // can write additional data to the output stream here
             }
             </code>
            
             <code lang="VB">
             Using output As FileStream = File.Create(fileToCompress &amp; ".deflated")
                 Using input As Stream = File.OpenRead(fileToCompress)
                     Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
                 ' can write additional data to the output stream here.
             End Using
             </code>
             </example>
             <param name="stream">The stream which will be read or written.</param>
             <param name="mode">Indicates whether the DeflateStream will compress or decompress.</param>
             <param name="leaveOpen">true if the application would like the stream to remain open after inflation/deflation.</param>
             <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.FlushMode">
            <summary>
            This property sets the flush behavior on the stream.
            </summary>
            <remarks> See the ZLIB documentation for the meaning of the flush behavior.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.BufferSize">
             <summary>
               The size of the working buffer for the compression codec.
             </summary>
            
             <remarks>
             <para>
               The working buffer is used for all stream operations.  The default size is
               1024 bytes.  The minimum size is 128 bytes. You may get better performance
               with a larger buffer.  Then again, you might not.  You would have to test
               it.
             </para>
            
             <para>
               Set this before the first call to <c>Read()</c> or <c>Write()</c> on the
               stream. If you try to set it afterwards, it will throw.
             </para>
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.Strategy">
             <summary>
               The ZLIB strategy to be used during compression.
             </summary>
            
             <remarks>
               By tweaking this parameter, you may be able to optimize the compression for
               data with particular characteristics.
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.TotalIn">
            <summary> Returns the total number of bytes input so far.</summary>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.TotalOut">
            <summary> Returns the total number of bytes output so far.</summary>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.Dispose(System.Boolean)">
            <summary>
              Dispose the stream.
            </summary>
            <remarks>
              <para>
                This may or may not result in a <c>Close()</c> call on the captive
                stream.  See the constructors that have a <c>leaveOpen</c> parameter
                for more information.
              </para>
              <para>
                Application code won't call this code directly.  This method may be
                invoked in two distinct scenarios.  If disposing == true, the method
                has been called directly or indirectly by a user's code, for example
                via the public Dispose() method. In this case, both managed and
                unmanaged resources can be referenced and disposed.  If disposing ==
                false, the method has been called by the runtime from inside the
                object finalizer and this method should not reference other objects;
                in that case only unmanaged resources must be referenced or
                disposed.
              </para>
            </remarks>
            <param name="disposing">
              true if the Dispose method was invoked by user code.
            </param>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.CanRead">
            <summary>
            Indicates whether the stream can be read.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports reading.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.CanSeek">
            <summary>
            Indicates whether the stream supports Seek operations.
            </summary>
            <remarks>
            Always returns false.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.CanWrite">
            <summary>
            Indicates whether the stream can be written.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports writing.
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.Flush">
            <summary>
            Flush the stream.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.Length">
            <summary>
            Reading this property always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.DeflateStream.Position">
             <summary>
             The position of the stream pointer.
             </summary>
            
             <remarks>
               Setting this property always throws a <see
               cref="T:System.NotImplementedException"/>. Reading will return the total bytes
               written out, if used in writing, or the total bytes read in, if used in
               reading.  The count may refer to compressed bytes or uncompressed bytes,
               depending on how you've used the stream.
             </remarks>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.Read(System.Byte[],System.Int32,System.Int32)">
             <summary>
             Read data from the stream.
             </summary>
             <remarks>
            
             <para>
               If you wish to use the <c>DeflateStream</c> to compress data while
               reading, you can create a <c>DeflateStream</c> with
               <c>CompressionMode.Compress</c>, providing an uncompressed data stream.
               Then call Read() on that <c>DeflateStream</c>, and the data read will be
               compressed as you read.  If you wish to use the <c>DeflateStream</c> to
               decompress data while reading, you can create a <c>DeflateStream</c> with
               <c>CompressionMode.Decompress</c>, providing a readable compressed data
               stream.  Then call Read() on that <c>DeflateStream</c>, and the data read
               will be decompressed as you read.
             </para>
            
             <para>
               A <c>DeflateStream</c> can be used for <c>Read()</c> or <c>Write()</c>, but not both.
             </para>
            
             </remarks>
             <param name="buffer">The buffer into which the read data should be placed.</param>
             <param name="offset">the offset within that data array to put the first byte read.</param>
             <param name="count">the number of bytes to read.</param>
             <returns>the number of bytes actually read</returns>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            Calling this method always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
            <param name="offset">this is irrelevant, since it will always throw!</param>
            <param name="origin">this is irrelevant, since it will always throw!</param>
            <returns>irrelevant!</returns>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.SetLength(System.Int64)">
            <summary>
            Calling this method always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
            <param name="value">this is irrelevant, since it will always throw!</param>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.Write(System.Byte[],System.Int32,System.Int32)">
             <summary>
               Write data to the stream.
             </summary>
             <remarks>
            
             <para>
               If you wish to use the <c>DeflateStream</c> to compress data while
               writing, you can create a <c>DeflateStream</c> with
               <c>CompressionMode.Compress</c>, and a writable output stream.  Then call
               <c>Write()</c> on that <c>DeflateStream</c>, providing uncompressed data
               as input.  The data sent to the output stream will be the compressed form
               of the data written.  If you wish to use the <c>DeflateStream</c> to
               decompress data while writing, you can create a <c>DeflateStream</c> with
               <c>CompressionMode.Decompress</c>, and a writable output stream.  Then
               call <c>Write()</c> on that stream, providing previously compressed
               data. The data sent to the output stream will be the decompressed form of
               the data written.
             </para>
            
             <para>
               A <c>DeflateStream</c> can be used for <c>Read()</c> or <c>Write()</c>,
               but not both.
             </para>
            
             </remarks>
            
             <param name="buffer">The buffer holding data to write to the stream.</param>
             <param name="offset">the offset within that data array to find the first byte to write.</param>
             <param name="count">the number of bytes to write.</param>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.CompressString(System.String)">
             <summary>
               Compress a string into a byte array using DEFLATE (RFC 1951).
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.DeflateStream.UncompressString(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.DeflateStream.UncompressString(System.Byte[])">DeflateStream.UncompressString(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.DeflateStream.CompressBuffer(System.Byte[])">DeflateStream.CompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressString(System.String)">GZipStream.CompressString(string)</seealso>
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressString(System.String)">ZlibStream.CompressString(string)</seealso>
            
             <param name="s">
               A string to compress. The string will first be encoded
               using UTF8, then compressed.
             </param>
            
             <returns>The string in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.CompressBuffer(System.Byte[])">
             <summary>
               Compress a byte array into a new byte array using DEFLATE.
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.DeflateStream.UncompressBuffer(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.DeflateStream.CompressString(System.String)">DeflateStream.CompressString(string)</seealso>
             <seealso cref="M:Ionic.Zlib.DeflateStream.UncompressBuffer(System.Byte[])">DeflateStream.UncompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressBuffer(System.Byte[])">GZipStream.CompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressBuffer(System.Byte[])">ZlibStream.CompressBuffer(byte[])</seealso>
            
             <param name="b">
               A buffer to compress.
             </param>
            
             <returns>The data in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.UncompressString(System.Byte[])">
             <summary>
               Uncompress a DEFLATE'd byte array into a single string.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.DeflateStream.CompressString(System.String)">DeflateStream.CompressString(String)</seealso>
             <seealso cref="M:Ionic.Zlib.DeflateStream.UncompressBuffer(System.Byte[])">DeflateStream.UncompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressString(System.Byte[])">GZipStream.UncompressString(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressString(System.Byte[])">ZlibStream.UncompressString(byte[])</seealso>
            
             <param name="compressed">
               A buffer containing DEFLATE-compressed data.
             </param>
            
             <returns>The uncompressed string</returns>
        </member>
        <member name="M:Ionic.Zlib.DeflateStream.UncompressBuffer(System.Byte[])">
             <summary>
               Uncompress a DEFLATE'd byte array into a byte array.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.DeflateStream.CompressBuffer(System.Byte[])">DeflateStream.CompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.DeflateStream.UncompressString(System.Byte[])">DeflateStream.UncompressString(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressBuffer(System.Byte[])">GZipStream.UncompressBuffer(byte[])</seealso>
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressBuffer(System.Byte[])">ZlibStream.UncompressBuffer(byte[])</seealso>
            
             <param name="compressed">
               A buffer containing data that has been compressed with DEFLATE.
             </param>
            
             <returns>The data in uncompressed form</returns>
        </member>
        <member name="T:Ionic.Zlib.GZipStream">
             <summary>
               A class for compressing and decompressing GZIP streams.
             </summary>
             <remarks>
            
             <para>
               The <c>GZipStream</c> is a <see
               href="http://en.wikipedia.org/wiki/Decorator_pattern">Decorator</see> on a
               <see cref="T:System.IO.Stream"/>. It adds GZIP compression or decompression to any
               stream.
             </para>
            
             <para>
               Like the <c>System.IO.Compression.GZipStream</c> in the .NET Base Class Library, the
               <c>Ionic.Zlib.GZipStream</c> can compress while writing, or decompress while
               reading, but not vice versa.  The compression method used is GZIP, which is
               documented in <see href="http://www.ietf.org/rfc/rfc1952.txt">IETF RFC
               1952</see>, "GZIP file format specification version 4.3".</para>
            
             <para>
               A <c>GZipStream</c> can be used to decompress data (through <c>Read()</c>) or
               to compress data (through <c>Write()</c>), but not both.
             </para>
            
             <para>
               If you wish to use the <c>GZipStream</c> to compress data, you must wrap it
               around a write-able stream. As you call <c>Write()</c> on the <c>GZipStream</c>, the
               data will be compressed into the GZIP format.  If you want to decompress data,
               you must wrap the <c>GZipStream</c> around a readable stream that contains an
               IETF RFC 1952-compliant stream.  The data will be decompressed as you call
               <c>Read()</c> on the <c>GZipStream</c>.
             </para>
            
             <para>
               Though the GZIP format allows data from multiple files to be concatenated
               together, this stream handles only a single segment of GZIP format, typically
               representing a single file.
             </para>
            
             <para>
               This class is similar to <see cref="T:Ionic.Zlib.ZlibStream"/> and <see cref="T:Ionic.Zlib.DeflateStream"/>.
               <c>ZlibStream</c> handles RFC1950-compliant streams.  <see cref="T:Ionic.Zlib.DeflateStream"/>
               handles RFC1951-compliant streams. This class handles RFC1952-compliant streams.
             </para>
            
             </remarks>
            
             <seealso cref="T:Ionic.Zlib.DeflateStream" />
             <seealso cref="T:Ionic.Zlib.ZlibStream" />
        </member>
        <member name="P:Ionic.Zlib.GZipStream.Comment">
             <summary>
               The comment on the GZIP stream.
             </summary>
            
             <remarks>
             <para>
               The GZIP format allows for each file to optionally have an associated
               comment stored with the file.  The comment is encoded with the ISO-8859-1
               code page.  To include a comment in a GZIP stream you create, set this
               property before calling <c>Write()</c> for the first time on the
               <c>GZipStream</c>.
             </para>
            
             <para>
               When using <c>GZipStream</c> to decompress, you can retrieve this property
               after the first call to <c>Read()</c>.  If no comment has been set in the
               GZIP bytestream, the Comment property will return <c>null</c>
               (<c>Nothing</c> in VB).
             </para>
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.FileName">
             <summary>
               The FileName for the GZIP stream.
             </summary>
            
             <remarks>
            
             <para>
               The GZIP format optionally allows each file to have an associated
               filename.  When compressing data (through <c>Write()</c>), set this
               FileName before calling <c>Write()</c> the first time on the <c>GZipStream</c>.
               The actual filename is encoded into the GZIP bytestream with the
               ISO-8859-1 code page, according to RFC 1952. It is the application's
               responsibility to insure that the FileName can be encoded and decoded
               correctly with this code page.
             </para>
            
             <para>
               When decompressing (through <c>Read()</c>), you can retrieve this value
               any time after the first <c>Read()</c>.  In the case where there was no filename
               encoded into the GZIP bytestream, the property will return <c>null</c> (<c>Nothing</c>
               in VB).
             </para>
             </remarks>
        </member>
        <member name="F:Ionic.Zlib.GZipStream.LastModified">
             <summary>
               The last modified time for the GZIP stream.
             </summary>
            
             <remarks>
               GZIP allows the storage of a last modified time with each GZIP entry.
               When compressing data, you can set this before the first call to
               <c>Write()</c>.  When decompressing, you can retrieve this value any time
               after the first call to <c>Read()</c>.
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.Crc32">
            <summary>
            The CRC on the GZIP stream.
            </summary>
            <remarks>
            This is used for internal error checking. You probably don't need to look at this property.
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode)">
             <summary>
               Create a <c>GZipStream</c> using the specified <c>CompressionMode</c>.
             </summary>
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Compress</c>, the <c>GZipStream</c> will use the
               default compression level.
             </para>
            
             <para>
               As noted in the class documentation, the <c>CompressionMode</c> (Compress
               or Decompress) also establishes the "direction" of the stream.  A
               <c>GZipStream</c> with <c>CompressionMode.Compress</c> works only through
               <c>Write()</c>.  A <c>GZipStream</c> with
               <c>CompressionMode.Decompress</c> works only through <c>Read()</c>.
             </para>
            
             </remarks>
            
             <example>
               This example shows how to use a GZipStream to compress data.
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(outputFile))
                 {
                     using (Stream compressor = new GZipStream(raw, CompressionMode.Compress))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
             <code lang="VB">
             Dim outputFile As String = (fileToCompress &amp; ".compressed")
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(outputFile)
                 Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress)
                     Dim buffer As Byte() = New Byte(4096) {}
                     Dim n As Integer = -1
                     Do While (n &lt;&gt; 0)
                         If (n &gt; 0) Then
                             compressor.Write(buffer, 0, n)
                         End If
                         n = input.Read(buffer, 0, buffer.Length)
                     Loop
                 End Using
                 End Using
             End Using
             </code>
             </example>
            
             <example>
             This example shows how to use a GZipStream to uncompress a file.
             <code>
             private void GunZipFile(string filename)
             {
                 if (!filename.EndsWith(".gz))
                     throw new ArgumentException("filename");
                 var DecompressedFile = filename.Substring(0,filename.Length-3);
                 byte[] working = new byte[WORKING_BUFFER_SIZE];
                 int n= 1;
                 using (System.IO.Stream input = System.IO.File.OpenRead(filename))
                 {
                     using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
                     {
                         using (var output = System.IO.File.Create(DecompressedFile))
                         {
                             while (n !=0)
                             {
                                 n= decompressor.Read(working, 0, working.Length);
                                 if (n > 0)
                                 {
                                     output.Write(working, 0, n);
                                 }
                             }
                         }
                     }
                 }
             }
             </code>
            
             <code lang="VB">
             Private Sub GunZipFile(ByVal filename as String)
                 If Not (filename.EndsWith(".gz)) Then
                     Throw New ArgumentException("filename")
                 End If
                 Dim DecompressedFile as String = filename.Substring(0,filename.Length-3)
                 Dim working(WORKING_BUFFER_SIZE) as Byte
                 Dim n As Integer = 1
                 Using input As Stream = File.OpenRead(filename)
                     Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True)
                         Using output As Stream = File.Create(UncompressedFile)
                             Do
                                 n= decompressor.Read(working, 0, working.Length)
                                 If n > 0 Then
                                     output.Write(working, 0, n)
                                 End IF
                             Loop While (n  > 0)
                         End Using
                     End Using
                 End Using
             End Sub
             </code>
             </example>
            
             <param name="stream">The stream which will be read or written.</param>
             <param name="mode">Indicates whether the GZipStream will compress or decompress.</param>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel)">
             <summary>
               Create a <c>GZipStream</c> using the specified <c>CompressionMode</c> and
               the specified <c>CompressionLevel</c>.
             </summary>
             <remarks>
            
             <para>
               The <c>CompressionMode</c> (Compress or Decompress) also establishes the
               "direction" of the stream.  A <c>GZipStream</c> with
               <c>CompressionMode.Compress</c> works only through <c>Write()</c>.  A
               <c>GZipStream</c> with <c>CompressionMode.Decompress</c> works only
               through <c>Read()</c>.
             </para>
            
             </remarks>
            
             <example>
            
             This example shows how to use a <c>GZipStream</c> to compress a file into a .gz file.
            
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(fileToCompress + ".gz"))
                 {
                     using (Stream compressor = new GZipStream(raw,
                                                               CompressionMode.Compress,
                                                               CompressionLevel.BestCompression))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
            
             <code lang="VB">
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(fileToCompress &amp; ".gz")
                     Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
             End Using
             </code>
             </example>
             <param name="stream">The stream to be read or written while deflating or inflating.</param>
             <param name="mode">Indicates whether the <c>GZipStream</c> will compress or decompress.</param>
             <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,System.Boolean)">
             <summary>
               Create a <c>GZipStream</c> using the specified <c>CompressionMode</c>, and
               explicitly specify whether the stream should be left open after Deflation
               or Inflation.
             </summary>
            
             <remarks>
             <para>
               This constructor allows the application to request that the captive stream
               remain open after the deflation or inflation occurs.  By default, after
               <c>Close()</c> is called on the stream, the captive stream is also
               closed. In some cases this is not desired, for example if the stream is a
               memory stream that will be re-read after compressed data has been written
               to it.  Specify true for the <paramref name="leaveOpen"/> parameter to leave
               the stream open.
             </para>
            
             <para>
               The <see cref="T:Ionic.Zlib.CompressionMode"/> (Compress or Decompress) also
               establishes the "direction" of the stream.  A <c>GZipStream</c> with
               <c>CompressionMode.Compress</c> works only through <c>Write()</c>.  A <c>GZipStream</c>
               with <c>CompressionMode.Decompress</c> works only through <c>Read()</c>.
             </para>
            
             <para>
               The <c>GZipStream</c> will use the default compression level. If you want
               to specify the compression level, see <see cref="M:Ionic.Zlib.GZipStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel,System.Boolean)"/>.
             </para>
            
             <para>
               See the other overloads of this constructor for example code.
             </para>
            
             </remarks>
            
             <param name="stream">
               The stream which will be read or written. This is called the "captive"
               stream in other places in this documentation.
             </param>
            
             <param name="mode">Indicates whether the GZipStream will compress or decompress.
             </param>
            
             <param name="leaveOpen">
               true if the application would like the base stream to remain open after
               inflation/deflation.
             </param>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel,System.Boolean)">
             <summary>
               Create a <c>GZipStream</c> using the specified <c>CompressionMode</c> and the
               specified <c>CompressionLevel</c>, and explicitly specify whether the
               stream should be left open after Deflation or Inflation.
             </summary>
            
             <remarks>
            
             <para>
               This constructor allows the application to request that the captive stream
               remain open after the deflation or inflation occurs.  By default, after
               <c>Close()</c> is called on the stream, the captive stream is also
               closed. In some cases this is not desired, for example if the stream is a
               memory stream that will be re-read after compressed data has been written
               to it.  Specify true for the <paramref name="leaveOpen"/> parameter to
               leave the stream open.
             </para>
            
             <para>
               As noted in the class documentation, the <c>CompressionMode</c> (Compress
               or Decompress) also establishes the "direction" of the stream.  A
               <c>GZipStream</c> with <c>CompressionMode.Compress</c> works only through
               <c>Write()</c>.  A <c>GZipStream</c> with <c>CompressionMode.Decompress</c> works only
               through <c>Read()</c>.
             </para>
            
             </remarks>
            
             <example>
               This example shows how to use a <c>GZipStream</c> to compress data.
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(outputFile))
                 {
                     using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
             <code lang="VB">
             Dim outputFile As String = (fileToCompress &amp; ".compressed")
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(outputFile)
                 Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True)
                     Dim buffer As Byte() = New Byte(4096) {}
                     Dim n As Integer = -1
                     Do While (n &lt;&gt; 0)
                         If (n &gt; 0) Then
                             compressor.Write(buffer, 0, n)
                         End If
                         n = input.Read(buffer, 0, buffer.Length)
                     Loop
                 End Using
                 End Using
             End Using
             </code>
             </example>
             <param name="stream">The stream which will be read or written.</param>
             <param name="mode">Indicates whether the GZipStream will compress or decompress.</param>
             <param name="leaveOpen">true if the application would like the stream to remain open after inflation/deflation.</param>
             <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.FlushMode">
            <summary>
            This property sets the flush behavior on the stream.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.BufferSize">
             <summary>
               The size of the working buffer for the compression codec.
             </summary>
            
             <remarks>
             <para>
               The working buffer is used for all stream operations.  The default size is
               1024 bytes.  The minimum size is 128 bytes. You may get better performance
               with a larger buffer.  Then again, you might not.  You would have to test
               it.
             </para>
            
             <para>
               Set this before the first call to <c>Read()</c> or <c>Write()</c> on the
               stream. If you try to set it afterwards, it will throw.
             </para>
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.TotalIn">
            <summary> Returns the total number of bytes input so far.</summary>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.TotalOut">
            <summary> Returns the total number of bytes output so far.</summary>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.Dispose(System.Boolean)">
            <summary>
              Dispose the stream.
            </summary>
            <remarks>
              <para>
                This may or may not result in a <c>Close()</c> call on the captive
                stream.  See the constructors that have a <c>leaveOpen</c> parameter
                for more information.
              </para>
              <para>
                This method may be invoked in two distinct scenarios.  If disposing
                == true, the method has been called directly or indirectly by a
                user's code, for example via the public Dispose() method. In this
                case, both managed and unmanaged resources can be referenced and
                disposed.  If disposing == false, the method has been called by the
                runtime from inside the object finalizer and this method should not
                reference other objects; in that case only unmanaged resources must
                be referenced or disposed.
              </para>
            </remarks>
            <param name="disposing">
              indicates whether the Dispose method was invoked by user code.
            </param>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.CanRead">
            <summary>
            Indicates whether the stream can be read.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports reading.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.CanSeek">
            <summary>
            Indicates whether the stream supports Seek operations.
            </summary>
            <remarks>
            Always returns false.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.CanWrite">
            <summary>
            Indicates whether the stream can be written.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports writing.
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.Flush">
            <summary>
            Flush the stream.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.Length">
            <summary>
            Reading this property always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.GZipStream.Position">
             <summary>
               The position of the stream pointer.
             </summary>
            
             <remarks>
               Setting this property always throws a <see
               cref="T:System.NotImplementedException"/>. Reading will return the total bytes
               written out, if used in writing, or the total bytes read in, if used in
               reading.  The count may refer to compressed bytes or uncompressed bytes,
               depending on how you've used the stream.
             </remarks>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.Read(System.Byte[],System.Int32,System.Int32)">
             <summary>
               Read and decompress data from the source stream.
             </summary>
            
             <remarks>
               With a <c>GZipStream</c>, decompression is done through reading.
             </remarks>
            
             <example>
             <code>
             byte[] working = new byte[WORKING_BUFFER_SIZE];
             using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile))
             {
                 using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true))
                 {
                     using (var output = System.IO.File.Create(_DecompressedFile))
                     {
                         int n;
                         while ((n= decompressor.Read(working, 0, working.Length)) !=0)
                         {
                             output.Write(working, 0, n);
                         }
                     }
                 }
             }
             </code>
             </example>
             <param name="buffer">The buffer into which the decompressed data should be placed.</param>
             <param name="offset">the offset within that data array to put the first byte read.</param>
             <param name="count">the number of bytes to read.</param>
             <returns>the number of bytes actually read</returns>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
              Calling this method always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
            <param name="offset">irrelevant; it will always throw!</param>
            <param name="origin">irrelevant; it will always throw!</param>
            <returns>irrelevant!</returns>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.SetLength(System.Int64)">
            <summary>
              Calling this method always throws a <see cref="T:System.NotImplementedException"/>.
            </summary>
            <param name="value">irrelevant; this method will always throw!</param>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.Write(System.Byte[],System.Int32,System.Int32)">
             <summary>
               Write data to the stream.
             </summary>
            
             <remarks>
             <para>
               If you wish to use the <c>GZipStream</c> to compress data while writing,
               you can create a <c>GZipStream</c> with <c>CompressionMode.Compress</c>, and a
               writable output stream.  Then call <c>Write()</c> on that <c>GZipStream</c>,
               providing uncompressed data as input.  The data sent to the output stream
               will be the compressed form of the data written.
             </para>
            
             <para>
               A <c>GZipStream</c> can be used for <c>Read()</c> or <c>Write()</c>, but not
               both. Writing implies compression.  Reading implies decompression.
             </para>
            
             </remarks>
             <param name="buffer">The buffer holding data to write to the stream.</param>
             <param name="offset">the offset within that data array to find the first byte to write.</param>
             <param name="count">the number of bytes to write.</param>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.CompressString(System.String)">
             <summary>
               Compress a string into a byte array using GZip.
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.GZipStream.UncompressString(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressString(System.Byte[])"/>
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressBuffer(System.Byte[])"/>
            
             <param name="s">
               A string to compress. The string will first be encoded
               using UTF8, then compressed.
             </param>
            
             <returns>The string in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.CompressBuffer(System.Byte[])">
             <summary>
               Compress a byte array into a new byte array using GZip.
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.GZipStream.UncompressBuffer(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressString(System.String)"/>
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressBuffer(System.Byte[])"/>
            
             <param name="b">
               A buffer to compress.
             </param>
            
             <returns>The data in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.UncompressString(System.Byte[])">
             <summary>
               Uncompress a GZip'ed byte array into a single string.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressString(System.String)"/>
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressBuffer(System.Byte[])"/>
            
             <param name="compressed">
               A buffer containing GZIP-compressed data.
             </param>
            
             <returns>The uncompressed string</returns>
        </member>
        <member name="M:Ionic.Zlib.GZipStream.UncompressBuffer(System.Byte[])">
             <summary>
               Uncompress a GZip'ed byte array into a byte array.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressBuffer(System.Byte[])"/>
             <seealso cref="M:Ionic.Zlib.GZipStream.UncompressString(System.Byte[])"/>
            
             <param name="compressed">
               A buffer containing data that has been compressed with GZip.
             </param>
            
             <returns>The data in uncompressed form</returns>
        </member>
        <member name="T:Ionic.Zlib.ParallelDeflateOutputStream">
             <summary>
               A class for compressing streams using the
               Deflate algorithm with multiple threads.
             </summary>
            
             <remarks>
             <para>
               This class performs DEFLATE compression through writing.  For
               more information on the Deflate algorithm, see IETF RFC 1951,
               "DEFLATE Compressed Data Format Specification version 1.3."
             </para>
            
             <para>
               This class is similar to <see cref="T:Ionic.Zlib.DeflateStream"/>, except
               that this class is for compression only, and this implementation uses an
               approach that employs multiple worker threads to perform the DEFLATE.  On
               a multi-cpu or multi-core computer, the performance of this class can be
               significantly higher than the single-threaded DeflateStream, particularly
               for larger streams.  How large?  Anything over 10mb is a good candidate
               for parallel compression.
             </para>
            
             <para>
               The tradeoff is that this class uses more memory and more CPU than the
               vanilla DeflateStream, and also is less efficient as a compressor. For
               large files the size of the compressed data stream can be less than 1%
               larger than the size of a compressed data stream from the vanialla
               DeflateStream.  For smaller files the difference can be larger.  The
               difference will also be larger if you set the BufferSize to be lower than
               the default value.  Your mileage may vary. Finally, for small files, the
               ParallelDeflateOutputStream can be much slower than the vanilla
               DeflateStream, because of the overhead associated to using the thread
               pool.
             </para>
            
             </remarks>
             <seealso cref="T:Ionic.Zlib.DeflateStream" />
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream)">
             <summary>
             Create a ParallelDeflateOutputStream.
             </summary>
             <remarks>
            
             <para>
               This stream compresses data written into it via the DEFLATE
               algorithm (see RFC 1951), and writes out the compressed byte stream.
             </para>
            
             <para>
               The instance will use the default compression level, the default
               buffer sizes and the default number of threads and buffers per
               thread.
             </para>
            
             <para>
               This class is similar to <see cref="T:Ionic.Zlib.DeflateStream"/>,
               except that this implementation uses an approach that employs
               multiple worker threads to perform the DEFLATE.  On a multi-cpu or
               multi-core computer, the performance of this class can be
               significantly higher than the single-threaded DeflateStream,
               particularly for larger streams.  How large?  Anything over 10mb is
               a good candidate for parallel compression.
             </para>
            
             </remarks>
            
             <example>
            
             This example shows how to use a ParallelDeflateOutputStream to compress
             data.  It reads a file, compresses it, and writes the compressed data to
             a second, output file.
            
             <code>
             byte[] buffer = new byte[WORKING_BUFFER_SIZE];
             int n= -1;
             String outputFile = fileToCompress + ".compressed";
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(outputFile))
                 {
                     using (Stream compressor = new ParallelDeflateOutputStream(raw))
                     {
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
             <code lang="VB">
             Dim buffer As Byte() = New Byte(4096) {}
             Dim n As Integer = -1
             Dim outputFile As String = (fileToCompress &amp; ".compressed")
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(outputFile)
                     Using compressor As Stream = New ParallelDeflateOutputStream(raw)
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
             End Using
             </code>
             </example>
             <param name="stream">The stream to which compressed data will be written.</param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionLevel)">
            <summary>
              Create a ParallelDeflateOutputStream using the specified CompressionLevel.
            </summary>
            <remarks>
              See the <see cref="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream)"/>
              constructor for example code.
            </remarks>
            <param name="stream">The stream to which compressed data will be written.</param>
            <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream,System.Boolean)">
            <summary>
            Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open
            when the ParallelDeflateOutputStream is closed.
            </summary>
            <remarks>
              See the <see cref="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream)"/>
              constructor for example code.
            </remarks>
            <param name="stream">The stream to which compressed data will be written.</param>
            <param name="leaveOpen">
               true if the application would like the stream to remain open after inflation/deflation.
            </param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionLevel,System.Boolean)">
            <summary>
            Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open
            when the ParallelDeflateOutputStream is closed.
            </summary>
            <remarks>
              See the <see cref="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream)"/>
              constructor for example code.
            </remarks>
            <param name="stream">The stream to which compressed data will be written.</param>
            <param name="level">A tuning knob to trade speed for effectiveness.</param>
            <param name="leaveOpen">
               true if the application would like the stream to remain open after inflation/deflation.
            </param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionLevel,Ionic.Zlib.CompressionStrategy,System.Boolean)">
            <summary>
            Create a ParallelDeflateOutputStream using the specified
            CompressionLevel and CompressionStrategy, and specifying whether to
            leave the captive stream open when the ParallelDeflateOutputStream is
            closed.
            </summary>
            <remarks>
              See the <see cref="M:Ionic.Zlib.ParallelDeflateOutputStream.#ctor(System.IO.Stream)"/>
              constructor for example code.
            </remarks>
            <param name="stream">The stream to which compressed data will be written.</param>
            <param name="level">A tuning knob to trade speed for effectiveness.</param>
            <param name="strategy">
              By tweaking this parameter, you may be able to optimize the compression for
              data with particular characteristics.
            </param>
            <param name="leaveOpen">
               true if the application would like the stream to remain open after inflation/deflation.
            </param>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.Strategy">
             <summary>
               The ZLIB strategy to be used during compression.
             </summary>
            
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.MaxBufferPairs">
             <summary>
               The maximum number of buffer pairs to use.
             </summary>
            
             <remarks>
             <para>
               This property sets an upper limit on the number of memory buffer
               pairs to create.  The implementation of this stream allocates
               multiple buffers to facilitate parallel compression.  As each buffer
               fills up, this stream uses <see
               cref="M:System.Threading.ThreadPool.QueueUserWorkItem(System.Threading.WaitCallback)">
               ThreadPool.QueueUserWorkItem()</see>
               to compress those buffers in a background threadpool thread. After a
               buffer is compressed, it is re-ordered and written to the output
               stream.
             </para>
            
             <para>
               A higher number of buffer pairs enables a higher degree of
               parallelism, which tends to increase the speed of compression on
               multi-cpu computers.  On the other hand, a higher number of buffer
               pairs also implies a larger memory consumption, more active worker
               threads, and a higher cpu utilization for any compression. This
               property enables the application to limit its memory consumption and
               CPU utilization behavior depending on requirements.
             </para>
            
             <para>
               For each compression "task" that occurs in parallel, there are 2
               buffers allocated: one for input and one for output.  This property
               sets a limit for the number of pairs.  The total amount of storage
               space allocated for buffering will then be (N*S*2), where N is the
               number of buffer pairs, S is the size of each buffer (<see
               cref="P:Ionic.Zlib.ParallelDeflateOutputStream.BufferSize"/>).  By default, DotNetZip allocates 4 buffer
               pairs per CPU core, so if your machine has 4 cores, and you retain
               the default buffer size of 128k, then the
               ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer
               memory in total, or 4mb, in blocks of 128kb.  If you then set this
               property to 8, then the number will be 8 * 2 * 128kb of buffer
               memory, or 2mb.
             </para>
            
             <para>
               CPU utilization will also go up with additional buffers, because a
               larger number of buffer pairs allows a larger number of background
               threads to compress in parallel. If you find that parallel
               compression is consuming too much memory or CPU, you can adjust this
               value downward.
             </para>
            
             <para>
               The default value is 16. Different values may deliver better or
               worse results, depending on your priorities and the dynamic
               performance characteristics of your storage and compute resources.
             </para>
            
             <para>
               This property is not the number of buffer pairs to use; it is an
               upper limit. An illustration: Suppose you have an application that
               uses the default value of this property (which is 16), and it runs
               on a machine with 2 CPU cores. In that case, DotNetZip will allocate
               4 buffer pairs per CPU core, for a total of 8 pairs.  The upper
               limit specified by this property has no effect.
             </para>
            
             <para>
               The application can set this value at any time, but it is effective
               only before the first call to Write(), which is when the buffers are
               allocated.
             </para>
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.BufferSize">
             <summary>
               The size of the buffers used by the compressor threads.
             </summary>
             <remarks>
            
             <para>
               The default buffer size is 128k. The application can set this value
               at any time, but it is effective only before the first Write().
             </para>
            
             <para>
               Larger buffer sizes implies larger memory consumption but allows
               more efficient compression. Using smaller buffer sizes consumes less
               memory but may result in less effective compression.  For example,
               using the default buffer size of 128k, the compression delivered is
               within 1% of the compression delivered by the single-threaded <see
               cref="T:Ionic.Zlib.DeflateStream"/>.  On the other hand, using a
               BufferSize of 8k can result in a compressed data stream that is 5%
               larger than that delivered by the single-threaded
               <c>DeflateStream</c>.  Excessively small buffer sizes can also cause
               the speed of the ParallelDeflateOutputStream to drop, because of
               larger thread scheduling overhead dealing with many many small
               buffers.
             </para>
            
             <para>
               The total amount of storage space allocated for buffering will be
               (N*S*2), where N is the number of buffer pairs, and S is the size of
               each buffer (this property). There are 2 buffers used by the
               compressor, one for input and one for output.  By default, DotNetZip
               allocates 4 buffer pairs per CPU core, so if your machine has 4
               cores, then the number of buffer pairs used will be 16. If you
               accept the default value of this property, 128k, then the
               ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory
               in total, or 4mb, in blocks of 128kb.  If you set this property to
               64kb, then the number will be 16 * 2 * 64kb of buffer memory, or
               2mb.
             </para>
            
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.Crc32">
            <summary>
            The CRC32 for the data that was written out, prior to compression.
            </summary>
            <remarks>
            This value is meaningful only after a call to Close().
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.BytesProcessed">
            <summary>
            The total number of uncompressed bytes processed by the ParallelDeflateOutputStream.
            </summary>
            <remarks>
            This value is meaningful only after a call to Close().
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Write(System.Byte[],System.Int32,System.Int32)">
             <summary>
               Write data to the stream.
             </summary>
            
             <remarks>
            
             <para>
               To use the ParallelDeflateOutputStream to compress data, create a
               ParallelDeflateOutputStream with CompressionMode.Compress, passing a
               writable output stream.  Then call Write() on that
               ParallelDeflateOutputStream, providing uncompressed data as input.  The
               data sent to the output stream will be the compressed form of the data
               written.
             </para>
            
             <para>
               To decompress data, use the <see cref="T:Ionic.Zlib.DeflateStream"/> class.
             </para>
            
             </remarks>
             <param name="buffer">The buffer holding data to write to the stream.</param>
             <param name="offset">the offset within that data array to find the first byte to write.</param>
             <param name="count">the number of bytes to write.</param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Flush">
            <summary>
            Flush the stream.
            </summary>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Close">
            <summary>
            Close the stream.
            </summary>
            <remarks>
            You must call Close on the stream to guarantee that all of the data written in has
            been compressed, and the compressed data has been written out.
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Dispose">
            <summary>Dispose the object</summary>
            <remarks>
              <para>
                Because ParallelDeflateOutputStream is IDisposable, the
                application must call this method when finished using the instance.
              </para>
              <para>
                This method is generally called implicitly upon exit from
                a <c>using</c> scope in C# (<c>Using</c> in VB).
              </para>
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Dispose(System.Boolean)">
            <summary>The Dispose method</summary>
            <param name="disposing">
              indicates whether the Dispose method was invoked by user code.
            </param>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Reset(System.IO.Stream)">
             <summary>
               Resets the stream for use with another stream.
             </summary>
             <remarks>
               Because the ParallelDeflateOutputStream is expensive to create, it
               has been designed so that it can be recycled and re-used.  You have
               to call Close() on the stream first, then you can call Reset() on
               it, to use it again on another stream.
             </remarks>
            
             <param name="stream">
               The new output stream for this era.
             </param>
            
             <example>
             <code>
             ParallelDeflateOutputStream deflater = null;
             foreach (var inputFile in listOfFiles)
             {
                 string outputFile = inputFile + ".compressed";
                 using (System.IO.Stream input = System.IO.File.OpenRead(inputFile))
                 {
                     using (var outStream = System.IO.File.Create(outputFile))
                     {
                         if (deflater == null)
                             deflater = new ParallelDeflateOutputStream(outStream,
                                                                        CompressionLevel.Best,
                                                                        CompressionStrategy.Default,
                                                                        true);
                         deflater.Reset(outStream);
            
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             deflater.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
             </example>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.CanSeek">
            <summary>
            Indicates whether the stream supports Seek operations.
            </summary>
            <remarks>
            Always returns false.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.CanRead">
            <summary>
            Indicates whether the stream supports Read operations.
            </summary>
            <remarks>
            Always returns false.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.CanWrite">
            <summary>
            Indicates whether the stream supports Write operations.
            </summary>
            <remarks>
            Returns true if the provided stream is writable.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.Length">
            <summary>
            Reading this property always throws a NotSupportedException.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.ParallelDeflateOutputStream.Position">
            <summary>
            Returns the current position of the output stream.
            </summary>
            <remarks>
              <para>
                Because the output gets written by a background thread,
                the value may change asynchronously.  Setting this
                property always throws a NotSupportedException.
              </para>
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Read(System.Byte[],System.Int32,System.Int32)">
            <summary>
            This method always throws a NotSupportedException.
            </summary>
            <param name="buffer">
              The buffer into which data would be read, IF THIS METHOD
              ACTUALLY DID ANYTHING.
            </param>
            <param name="offset">
              The offset within that data array at which to insert the
              data that is read, IF THIS METHOD ACTUALLY DID
              ANYTHING.
            </param>
            <param name="count">
              The number of bytes to write, IF THIS METHOD ACTUALLY DID
              ANYTHING.
            </param>
            <returns>nothing.</returns>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.Seek(System.Int64,System.IO.SeekOrigin)">
            <summary>
            This method always throws a NotSupportedException.
            </summary>
            <param name="offset">
              The offset to seek to....
              IF THIS METHOD ACTUALLY DID ANYTHING.
            </param>
            <param name="origin">
              The reference specifying how to apply the offset....  IF
              THIS METHOD ACTUALLY DID ANYTHING.
            </param>
            <returns>nothing. It always throws.</returns>
        </member>
        <member name="M:Ionic.Zlib.ParallelDeflateOutputStream.SetLength(System.Int64)">
            <summary>
            This method always throws a NotSupportedException.
            </summary>
            <param name="value">
              The new value for the stream length....  IF
              THIS METHOD ACTUALLY DID ANYTHING.
            </param>
        </member>
        <member name="M:Ionic.Zlib.Tree.DistanceCode(System.Int32)">
            <summary>
            Map from a distance to a distance code.
            </summary>
            <remarks> 
            No side effects. _dist_code[256] and _dist_code[257] are never used.
            </remarks>
        </member>
        <member name="T:Ionic.Zlib.FlushType">
            <summary>
            Describes how to flush the current deflate operation.
            </summary>
            <remarks>
            The different FlushType values are useful when using a Deflate in a streaming application.
            </remarks>
        </member>
        <member name="F:Ionic.Zlib.FlushType.None">
            <summary>No flush at all.</summary>
        </member>
        <member name="F:Ionic.Zlib.FlushType.Partial">
            <summary>Closes the current block, but doesn't flush it to
            the output. Used internally only in hypothetical
            scenarios.  This was supposed to be removed by Zlib, but it is
            still in use in some edge cases.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.FlushType.Sync">
            <summary>
            Use this during compression to specify that all pending output should be
            flushed to the output buffer and the output should be aligned on a byte
            boundary.  You might use this in a streaming communication scenario, so that
            the decompressor can get all input data available so far.  When using this
            with a ZlibCodec, <c>AvailableBytesIn</c> will be zero after the call if
            enough output space has been provided before the call.  Flushing will
            degrade compression and so it should be used only when necessary.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.FlushType.Full">
            <summary>
            Use this during compression to specify that all output should be flushed, as
            with <c>FlushType.Sync</c>, but also, the compression state should be reset
            so that decompression can restart from this point if previous compressed
            data has been damaged or if random access is desired.  Using
            <c>FlushType.Full</c> too often can significantly degrade the compression.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.FlushType.Finish">
            <summary>Signals the end of the compression/decompression stream.</summary>
        </member>
        <member name="T:Ionic.Zlib.CompressionLevel">
            <summary>
            The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.None">
            <summary>
            None means that the data will be simply stored, with no change at all.
            If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None
            cannot be opened with the default zip reader. Use a different CompressionLevel.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level0">
            <summary>
            Same as None.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.BestSpeed">
            <summary>
            The fastest but least effective compression.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level1">
            <summary>
            A synonym for BestSpeed.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level2">
            <summary>
            A little slower, but better, than level 1.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level3">
            <summary>
            A little slower, but better, than level 2.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level4">
            <summary>
            A little slower, but better, than level 3.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level5">
            <summary>
            A little slower than level 4, but with better compression.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Default">
            <summary>
            The default compression level, with a good balance of speed and compression efficiency.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level6">
            <summary>
            A synonym for Default.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level7">
            <summary>
            Pretty good compression!
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level8">
            <summary>
             Better compression than Level7!
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.BestCompression">
            <summary>
            The "best" compression, where best means greatest reduction in size of the input data stream.
            This is also the slowest compression.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionLevel.Level9">
            <summary>
            A synonym for BestCompression.
            </summary>
        </member>
        <member name="T:Ionic.Zlib.CompressionStrategy">
            <summary>
            Describes options for how the compression algorithm is executed.  Different strategies
            work better on different sorts of data.  The strategy parameter can affect the compression
            ratio and the speed of compression but not the correctness of the compresssion.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionStrategy.Default">
            <summary>
            The default strategy is probably the best for normal data.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionStrategy.Filtered">
            <summary>
            The <c>Filtered</c> strategy is intended to be used most effectively with data produced by a
            filter or predictor.  By this definition, filtered data consists mostly of small
            values with a somewhat random distribution.  In this case, the compression algorithm
            is tuned to compress them better.  The effect of <c>Filtered</c> is to force more Huffman
            coding and less string matching; it is a half-step between <c>Default</c> and <c>HuffmanOnly</c>.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionStrategy.HuffmanOnly">
            <summary>
            Using <c>HuffmanOnly</c> will force the compressor to do Huffman encoding only, with no
            string matching.
            </summary>
        </member>
        <member name="T:Ionic.Zlib.CompressionMode">
            <summary>
            An enum to specify the direction of transcoding - whether to compress or decompress.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionMode.Compress">
            <summary>
            Used to specify that the stream should compress the data.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.CompressionMode.Decompress">
            <summary>
            Used to specify that the stream should decompress the data.
            </summary>
        </member>
        <member name="T:Ionic.Zlib.ZlibException">
            <summary>
            A general purpose exception class for exceptions in the Zlib library.
            </summary>
        </member>
        <member name="M:Ionic.Zlib.ZlibException.#ctor">
            <summary>
            The ZlibException class captures exception information generated
            by the Zlib library.
            </summary>
        </member>
        <member name="M:Ionic.Zlib.ZlibException.#ctor(System.String)">
            <summary>
            This ctor collects a message attached to the exception.
            </summary>
            <param name="s">the message for the exception.</param>
        </member>
        <member name="M:Ionic.Zlib.SharedUtils.URShift(System.Int32,System.Int32)">
            <summary>
            Performs an unsigned bitwise right shift with the specified number
            </summary>
            <param name="number">Number to operate on</param>
            <param name="bits">Ammount of bits to shift</param>
            <returns>The resulting number from the shift operation</returns>
        </member>
        <member name="M:Ionic.Zlib.SharedUtils.ReadInput(System.IO.TextReader,System.Byte[],System.Int32,System.Int32)">
             <summary>
               Reads a number of characters from the current source TextReader and writes
               the data to the target array at the specified index.
             </summary>
            
             <param name="sourceTextReader">The source TextReader to read from</param>
             <param name="target">Contains the array of characteres read from the source TextReader.</param>
             <param name="start">The starting index of the target array.</param>
             <param name="count">The maximum number of characters to read from the source TextReader.</param>
            
             <returns>
               The number of characters read. The number will be less than or equal to
               count depending on the data available in the source TextReader. Returns -1
               if the end of the stream is reached.
             </returns>
        </member>
        <member name="T:Ionic.Zlib.Adler">
             <summary>
             Computes an Adler-32 checksum.
             </summary>
             <remarks>
             The Adler checksum is similar to a CRC checksum, but faster to compute, though less
             reliable.  It is used in producing RFC1950 compressed streams.  The Adler checksum
             is a required part of the "ZLIB" standard.  Applications will almost never need to
             use this class directly.
             </remarks>
            
             <exclude/>
        </member>
        <member name="M:Ionic.Zlib.Adler.Adler32(System.UInt32,System.Byte[],System.Int32,System.Int32)">
            <summary>
              Calculates the Adler32 checksum.
            </summary>
            <remarks>
              <para>
                This is used within ZLIB.  You probably don't need to use this directly.
              </para>
            </remarks>
            <example>
               To compute an Adler32 checksum on a byte array:
             <code>
               var adler = Adler.Adler32(0, null, 0, 0);
               adler = Adler.Adler32(adler, buffer, index, length);
             </code>
            </example>
        </member>
        <member name="T:Ionic.Zlib.ZlibCodec">
             <summary>
             Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951).
             </summary>
            
             <remarks>
             This class compresses and decompresses data according to the Deflate algorithm
             and optionally, the ZLIB format, as documented in <see
             href="http://www.ietf.org/rfc/rfc1950.txt">RFC 1950 - ZLIB</see> and <see
             href="http://www.ietf.org/rfc/rfc1951.txt">RFC 1951 - DEFLATE</see>.
             </remarks>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.InputBuffer">
            <summary>
            The buffer from which data is taken.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.NextIn">
            <summary>
            An index into the InputBuffer array, indicating where to start reading. 
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.AvailableBytesIn">
            <summary>
            The number of bytes available in the InputBuffer, starting at NextIn. 
            </summary>
            <remarks>
            Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. 
            The class will update this number as calls to Inflate/Deflate are made.
            </remarks>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.TotalBytesIn">
            <summary>
            Total number of bytes read so far, through all calls to Inflate()/Deflate().
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.OutputBuffer">
            <summary>
            Buffer to store output data.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.NextOut">
            <summary>
            An index into the OutputBuffer array, indicating where to start writing. 
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.AvailableBytesOut">
            <summary>
            The number of bytes available in the OutputBuffer, starting at NextOut. 
            </summary>
            <remarks>
            Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. 
            The class will update this number as calls to Inflate/Deflate are made.
            </remarks>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.TotalBytesOut">
            <summary>
            Total number of bytes written to the output so far, through all calls to Inflate()/Deflate().
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.Message">
            <summary>
            used for diagnostics, when something goes wrong!
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.CompressLevel">
            <summary>
            The compression level to use in this codec.  Useful only in compression mode.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.WindowBits">
            <summary>
            The number of Window Bits to use.  
            </summary>
            <remarks>
            This gauges the size of the sliding window, and hence the 
            compression effectiveness as well as memory consumption. It's best to just leave this 
            setting alone if you don't know what it is.  The maximum value is 15 bits, which implies
            a 32k window.  
            </remarks>
        </member>
        <member name="F:Ionic.Zlib.ZlibCodec.Strategy">
            <summary>
            The compression strategy to use.
            </summary>
            <remarks>
            This is only effective in compression.  The theory offered by ZLIB is that different
            strategies could potentially produce significant differences in compression behavior
            for different data sets.  Unfortunately I don't have any good recommendations for how
            to set it differently.  When I tested changing the strategy I got minimally different
            compression performance. It's best to leave this property alone if you don't have a
            good feel for it.  Or, you may want to produce a test harness that runs through the
            different strategy options and evaluates them on different file types. If you do that,
            let me know your results.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ZlibCodec.Adler32">
            <summary>
            The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this.
            </summary>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.#ctor">
            <summary>
            Create a ZlibCodec.
            </summary>
            <remarks>
            If you use this default constructor, you will later have to explicitly call 
            InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress 
            or decompress. 
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.#ctor(Ionic.Zlib.CompressionMode)">
            <summary>
            Create a ZlibCodec that either compresses or decompresses.
            </summary>
            <param name="mode">
            Indicates whether the codec should compress (deflate) or decompress (inflate).
            </param>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeInflate">
            <summary>
            Initialize the inflation state. 
            </summary>
            <remarks>
            It is not necessary to call this before using the ZlibCodec to inflate data; 
            It is implicitly called when you call the constructor.
            </remarks>
            <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeInflate(System.Boolean)">
             <summary>
             Initialize the inflation state with an explicit flag to
             govern the handling of RFC1950 header bytes.
             </summary>
            
             <remarks>
             By default, the ZLIB header defined in <see
             href="http://www.ietf.org/rfc/rfc1950.txt">RFC 1950</see> is expected.  If
             you want to read a zlib stream you should specify true for
             expectRfc1950Header.  If you have a deflate stream, you will want to specify
             false. It is only necessary to invoke this initializer explicitly if you
             want to specify false.
             </remarks>
            
             <param name="expectRfc1950Header">whether to expect an RFC1950 header byte
             pair when reading the stream of data to be inflated.</param>
            
             <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeInflate(System.Int32)">
            <summary>
            Initialize the ZlibCodec for inflation, with the specified number of window bits. 
            </summary>
            <param name="windowBits">The number of window bits to use. If you need to ask what that is, 
            then you shouldn't be calling this initializer.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeInflate(System.Int32,System.Boolean)">
             <summary>
             Initialize the inflation state with an explicit flag to govern the handling of
             RFC1950 header bytes. 
             </summary>
            
             <remarks>
             If you want to read a zlib stream you should specify true for
             expectRfc1950Header. In this case, the library will expect to find a ZLIB
             header, as defined in <see href="http://www.ietf.org/rfc/rfc1950.txt">RFC
             1950</see>, in the compressed stream.  If you will be reading a DEFLATE or
             GZIP stream, which does not have such a header, you will want to specify
             false.
             </remarks>
            
             <param name="expectRfc1950Header">whether to expect an RFC1950 header byte pair when reading 
             the stream of data to be inflated.</param>
             <param name="windowBits">The number of window bits to use. If you need to ask what that is, 
             then you shouldn't be calling this initializer.</param>
             <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.Inflate(Ionic.Zlib.FlushType)">
             <summary>
             Inflate the data in the InputBuffer, placing the result in the OutputBuffer.
             </summary>
             <remarks>
             You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and 
             AvailableBytesOut  before calling this method.
             </remarks>
             <example>
             <code>
             private void InflateBuffer()
             {
                 int bufferSize = 1024;
                 byte[] buffer = new byte[bufferSize];
                 ZlibCodec decompressor = new ZlibCodec();
             
                 Console.WriteLine("\n============================================");
                 Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length);
                 MemoryStream ms = new MemoryStream(DecompressedBytes);
             
                 int rc = decompressor.InitializeInflate();
             
                 decompressor.InputBuffer = CompressedBytes;
                 decompressor.NextIn = 0;
                 decompressor.AvailableBytesIn = CompressedBytes.Length;
             
                 decompressor.OutputBuffer = buffer;
             
                 // pass 1: inflate 
                 do
                 {
                     decompressor.NextOut = 0;
                     decompressor.AvailableBytesOut = buffer.Length;
                     rc = decompressor.Inflate(FlushType.None);
             
                     if (rc != ZlibConstants.Z_OK &amp;&amp; rc != ZlibConstants.Z_STREAM_END)
                         throw new Exception("inflating: " + decompressor.Message);
             
                     ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut);
                 }
                 while (decompressor.AvailableBytesIn &gt; 0 || decompressor.AvailableBytesOut == 0);
             
                 // pass 2: finish and flush
                 do
                 {
                     decompressor.NextOut = 0;
                     decompressor.AvailableBytesOut = buffer.Length;
                     rc = decompressor.Inflate(FlushType.Finish);
             
                     if (rc != ZlibConstants.Z_STREAM_END &amp;&amp; rc != ZlibConstants.Z_OK)
                         throw new Exception("inflating: " + decompressor.Message);
             
                     if (buffer.Length - decompressor.AvailableBytesOut &gt; 0)
                         ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut);
                 }
                 while (decompressor.AvailableBytesIn &gt; 0 || decompressor.AvailableBytesOut == 0);
             
                 decompressor.EndInflate();
             }
            
             </code>
             </example>
             <param name="flush">The flush to use when inflating.</param>
             <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.EndInflate">
            <summary>
            Ends an inflation session. 
            </summary>
            <remarks>
            Call this after successively calling Inflate().  This will cause all buffers to be flushed. 
            After calling this you cannot call Inflate() without a intervening call to one of the
            InitializeInflate() overloads.
            </remarks>
            <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.SyncInflate">
            <summary>
            I don't know what this does!
            </summary>
            <returns>Z_OK if everything goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeDeflate">
            <summary>
            Initialize the ZlibCodec for deflation operation.
            </summary>
            <remarks>
            The codec will use the MAX window bits and the default level of compression.
            </remarks>
            <example>
            <code>
             int bufferSize = 40000;
             byte[] CompressedBytes = new byte[bufferSize];
             byte[] DecompressedBytes = new byte[bufferSize];
             
             ZlibCodec compressor = new ZlibCodec();
             
             compressor.InitializeDeflate(CompressionLevel.Default);
             
             compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress);
             compressor.NextIn = 0;
             compressor.AvailableBytesIn = compressor.InputBuffer.Length;
             
             compressor.OutputBuffer = CompressedBytes;
             compressor.NextOut = 0;
             compressor.AvailableBytesOut = CompressedBytes.Length;
             
             while (compressor.TotalBytesIn != TextToCompress.Length &amp;&amp; compressor.TotalBytesOut &lt; bufferSize)
             {
               compressor.Deflate(FlushType.None);
             }
             
             while (true)
             {
               int rc= compressor.Deflate(FlushType.Finish);
               if (rc == ZlibConstants.Z_STREAM_END) break;
             }
             
             compressor.EndDeflate();
              
            </code>
            </example>
            <returns>Z_OK if all goes well. You generally don't need to check the return code.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeDeflate(Ionic.Zlib.CompressionLevel)">
            <summary>
            Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel.
            </summary>
            <remarks>
            The codec will use the maximum window bits (15) and the specified
            CompressionLevel.  It will emit a ZLIB stream as it compresses.
            </remarks>
            <param name="level">The compression level for the codec.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeDeflate(Ionic.Zlib.CompressionLevel,System.Boolean)">
            <summary>
            Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, 
            and the explicit flag governing whether to emit an RFC1950 header byte pair.
            </summary>
            <remarks>
            The codec will use the maximum window bits (15) and the specified CompressionLevel.
            If you want to generate a zlib stream, you should specify true for
            wantRfc1950Header. In this case, the library will emit a ZLIB
            header, as defined in <see href="http://www.ietf.org/rfc/rfc1950.txt">RFC
            1950</see>, in the compressed stream.  
            </remarks>
            <param name="level">The compression level for the codec.</param>
            <param name="wantRfc1950Header">whether to emit an initial RFC1950 byte pair in the compressed stream.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeDeflate(Ionic.Zlib.CompressionLevel,System.Int32)">
            <summary>
            Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, 
            and the specified number of window bits. 
            </summary>
            <remarks>
            The codec will use the specified number of window bits and the specified CompressionLevel.
            </remarks>
            <param name="level">The compression level for the codec.</param>
            <param name="bits">the number of window bits to use.  If you don't know what this means, don't use this method.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.InitializeDeflate(Ionic.Zlib.CompressionLevel,System.Int32,System.Boolean)">
             <summary>
             Initialize the ZlibCodec for deflation operation, using the specified
             CompressionLevel, the specified number of window bits, and the explicit flag
             governing whether to emit an RFC1950 header byte pair.
             </summary>
            
             <param name="level">The compression level for the codec.</param>
             <param name="wantRfc1950Header">whether to emit an initial RFC1950 byte pair in the compressed stream.</param>
             <param name="bits">the number of window bits to use.  If you don't know what this means, don't use this method.</param>
             <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.Deflate(Ionic.Zlib.FlushType)">
            <summary>
            Deflate one batch of data.
            </summary>
            <remarks>
            You must have set InputBuffer and OutputBuffer before calling this method.
            </remarks>
            <example>
            <code>
            private void DeflateBuffer(CompressionLevel level)
            {
                int bufferSize = 1024;
                byte[] buffer = new byte[bufferSize];
                ZlibCodec compressor = new ZlibCodec();
            
                Console.WriteLine("\n============================================");
                Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length);
                MemoryStream ms = new MemoryStream();
            
                int rc = compressor.InitializeDeflate(level);
            
                compressor.InputBuffer = UncompressedBytes;
                compressor.NextIn = 0;
                compressor.AvailableBytesIn = UncompressedBytes.Length;
            
                compressor.OutputBuffer = buffer;
            
                // pass 1: deflate 
                do
                {
                    compressor.NextOut = 0;
                    compressor.AvailableBytesOut = buffer.Length;
                    rc = compressor.Deflate(FlushType.None);
            
                    if (rc != ZlibConstants.Z_OK &amp;&amp; rc != ZlibConstants.Z_STREAM_END)
                        throw new Exception("deflating: " + compressor.Message);
            
                    ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut);
                }
                while (compressor.AvailableBytesIn &gt; 0 || compressor.AvailableBytesOut == 0);
            
                // pass 2: finish and flush
                do
                {
                    compressor.NextOut = 0;
                    compressor.AvailableBytesOut = buffer.Length;
                    rc = compressor.Deflate(FlushType.Finish);
            
                    if (rc != ZlibConstants.Z_STREAM_END &amp;&amp; rc != ZlibConstants.Z_OK)
                        throw new Exception("deflating: " + compressor.Message);
            
                    if (buffer.Length - compressor.AvailableBytesOut &gt; 0)
                        ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut);
                }
                while (compressor.AvailableBytesIn &gt; 0 || compressor.AvailableBytesOut == 0);
            
                compressor.EndDeflate();
            
                ms.Seek(0, SeekOrigin.Begin);
                CompressedBytes = new byte[compressor.TotalBytesOut];
                ms.Read(CompressedBytes, 0, CompressedBytes.Length);
            }
            </code>
            </example>
            <param name="flush">whether to flush all data as you deflate. Generally you will want to 
            use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to 
            flush everything. 
            </param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.EndDeflate">
            <summary>
            End a deflation session.
            </summary>
            <remarks>
            Call this after making a series of one or more calls to Deflate(). All buffers are flushed.
            </remarks>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.ResetDeflate">
            <summary>
            Reset a codec for another deflation session.
            </summary>
            <remarks>
            Call this to reset the deflation state.  For example if a thread is deflating
            non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first
            block and before the next Deflate(None) of the second block.
            </remarks>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.SetDeflateParams(Ionic.Zlib.CompressionLevel,Ionic.Zlib.CompressionStrategy)">
            <summary>
            Set the CompressionStrategy and CompressionLevel for a deflation session.
            </summary>
            <param name="level">the level of compression to use.</param>
            <param name="strategy">the strategy to use for compression.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibCodec.SetDictionary(System.Byte[])">
            <summary>
            Set the dictionary to be used for either Inflation or Deflation.
            </summary>
            <param name="dictionary">The dictionary bytes to use.</param>
            <returns>Z_OK if all goes well.</returns>
        </member>
        <member name="T:Ionic.Zlib.ZlibConstants">
            <summary>
            A bunch of constants used in the Zlib interface.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.WindowBitsMax">
            <summary>
            The maximum number of window bits for the Deflate algorithm.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.WindowBitsDefault">
            <summary>
            The default number of window bits for the Deflate algorithm.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_OK">
            <summary>
            indicates everything is A-OK
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_STREAM_END">
            <summary>
            Indicates that the last operation reached the end of the stream.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_NEED_DICT">
            <summary>
            The operation ended in need of a dictionary. 
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_STREAM_ERROR">
            <summary>
            There was an error with the stream - not enough data, not open and readable, etc.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_DATA_ERROR">
            <summary>
            There was an error with the data - not enough data, bad data, etc.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.Z_BUF_ERROR">
            <summary>
            There was an error with the working buffer.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.WorkingBufferSizeDefault">
            <summary>
            The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes.
            </summary>
        </member>
        <member name="F:Ionic.Zlib.ZlibConstants.WorkingBufferSizeMin">
            <summary>
            The minimum size of the working buffer used in the ZlibCodec class.  Currently it is 128 bytes.
            </summary>
        </member>
        <member name="T:Ionic.Zlib.ZlibStream">
             <summary>
             Represents a Zlib stream for compression or decompression.
             </summary>
             <remarks>
            
             <para>
             The ZlibStream is a <see
             href="http://en.wikipedia.org/wiki/Decorator_pattern">Decorator</see> on a <see
             cref="T:System.IO.Stream"/>.  It adds ZLIB compression or decompression to any
             stream.
             </para>
            
             <para> Using this stream, applications can compress or decompress data via
             stream <c>Read()</c> and <c>Write()</c> operations.  Either compresssion or
             decompression can occur through either reading or writing. The compression
             format used is ZLIB, which is documented in <see
             href="http://www.ietf.org/rfc/rfc1950.txt">IETF RFC 1950</see>, "ZLIB Compressed
             Data Format Specification version 3.3". This implementation of ZLIB always uses
             DEFLATE as the compression method.  (see <see
             href="http://www.ietf.org/rfc/rfc1951.txt">IETF RFC 1951</see>, "DEFLATE
             Compressed Data Format Specification version 1.3.") </para>
            
             <para>
             The ZLIB format allows for varying compression methods, window sizes, and dictionaries.
             This implementation always uses the DEFLATE compression method, a preset dictionary,
             and 15 window bits by default.
             </para>
            
             <para>
             This class is similar to <see cref="T:Ionic.Zlib.DeflateStream"/>, except that it adds the
             RFC1950 header and trailer bytes to a compressed stream when compressing, or expects
             the RFC1950 header and trailer bytes when decompressing.  It is also similar to the
             <see cref="T:Ionic.Zlib.GZipStream"/>.
             </para>
             </remarks>
             <seealso cref="T:Ionic.Zlib.DeflateStream" />
             <seealso cref="T:Ionic.Zlib.GZipStream" />
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode)">
             <summary>
             Create a <c>ZlibStream</c> using the specified <c>CompressionMode</c>.
             </summary>
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Compress</c>, the <c>ZlibStream</c>
               will use the default compression level. The "captive" stream will be
               closed when the <c>ZlibStream</c> is closed.
             </para>
            
             </remarks>
            
             <example>
             This example uses a <c>ZlibStream</c> to compress a file, and writes the
             compressed data to another file.
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
                 {
                     using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
             <code lang="VB">
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(fileToCompress &amp; ".zlib")
                 Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress)
                     Dim buffer As Byte() = New Byte(4096) {}
                     Dim n As Integer = -1
                     Do While (n &lt;&gt; 0)
                         If (n &gt; 0) Then
                             compressor.Write(buffer, 0, n)
                         End If
                         n = input.Read(buffer, 0, buffer.Length)
                     Loop
                 End Using
                 End Using
             End Using
             </code>
             </example>
            
             <param name="stream">The stream which will be read or written.</param>
             <param name="mode">Indicates whether the ZlibStream will compress or decompress.</param>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel)">
             <summary>
               Create a <c>ZlibStream</c> using the specified <c>CompressionMode</c> and
               the specified <c>CompressionLevel</c>.
             </summary>
            
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Decompress</c>, the level parameter is ignored.
               The "captive" stream will be closed when the <c>ZlibStream</c> is closed.
             </para>
            
             </remarks>
            
             <example>
               This example uses a <c>ZlibStream</c> to compress data from a file, and writes the
               compressed data to another file.
            
             <code>
             using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
             {
                 using (var raw = System.IO.File.Create(fileToCompress + ".zlib"))
                 {
                     using (Stream compressor = new ZlibStream(raw,
                                                               CompressionMode.Compress,
                                                               CompressionLevel.BestCompression))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
             }
             </code>
            
             <code lang="VB">
             Using input As Stream = File.OpenRead(fileToCompress)
                 Using raw As FileStream = File.Create(fileToCompress &amp; ".zlib")
                     Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
             End Using
             </code>
             </example>
            
             <param name="stream">The stream to be read or written while deflating or inflating.</param>
             <param name="mode">Indicates whether the ZlibStream will compress or decompress.</param>
             <param name="level">A tuning knob to trade speed for effectiveness.</param>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,System.Boolean)">
             <summary>
               Create a <c>ZlibStream</c> using the specified <c>CompressionMode</c>, and
               explicitly specify whether the captive stream should be left open after
               Deflation or Inflation.
             </summary>
            
             <remarks>
            
             <para>
               When mode is <c>CompressionMode.Compress</c>, the <c>ZlibStream</c> will use
               the default compression level.
             </para>
            
             <para>
               This constructor allows the application to request that the captive stream
               remain open after the deflation or inflation occurs.  By default, after
               <c>Close()</c> is called on the stream, the captive stream is also
               closed. In some cases this is not desired, for example if the stream is a
               <see cref="T:System.IO.MemoryStream"/> that will be re-read after
               compression.  Specify true for the <paramref name="leaveOpen"/> parameter to leave the stream
               open.
             </para>
            
             <para>
             See the other overloads of this constructor for example code.
             </para>
            
             </remarks>
            
             <param name="stream">The stream which will be read or written. This is called the
             "captive" stream in other places in this documentation.</param>
             <param name="mode">Indicates whether the ZlibStream will compress or decompress.</param>
             <param name="leaveOpen">true if the application would like the stream to remain
             open after inflation/deflation.</param>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.#ctor(System.IO.Stream,Ionic.Zlib.CompressionMode,Ionic.Zlib.CompressionLevel,System.Boolean)">
             <summary>
               Create a <c>ZlibStream</c> using the specified <c>CompressionMode</c>
               and the specified <c>CompressionLevel</c>, and explicitly specify
               whether the stream should be left open after Deflation or Inflation.
             </summary>
            
             <remarks>
            
             <para>
               This constructor allows the application to request that the captive
               stream remain open after the deflation or inflation occurs.  By
               default, after <c>Close()</c> is called on the stream, the captive
               stream is also closed. In some cases this is not desired, for example
               if the stream is a <see cref="T:System.IO.MemoryStream"/> that will be
               re-read after compression.  Specify true for the <paramref
               name="leaveOpen"/> parameter to leave the stream open.
             </para>
            
             <para>
               When mode is <c>CompressionMode.Decompress</c>, the level parameter is
               ignored.
             </para>
            
             </remarks>
            
             <example>
            
             This example shows how to use a ZlibStream to compress the data from a file,
             and store the result into another file. The filestream remains open to allow
             additional data to be written to it.
            
             <code>
             using (var output = System.IO.File.Create(fileToCompress + ".zlib"))
             {
                 using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress))
                 {
                     using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true))
                     {
                         byte[] buffer = new byte[WORKING_BUFFER_SIZE];
                         int n;
                         while ((n= input.Read(buffer, 0, buffer.Length)) != 0)
                         {
                             compressor.Write(buffer, 0, n);
                         }
                     }
                 }
                 // can write additional data to the output stream here
             }
             </code>
             <code lang="VB">
             Using output As FileStream = File.Create(fileToCompress &amp; ".zlib")
                 Using input As Stream = File.OpenRead(fileToCompress)
                     Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True)
                         Dim buffer As Byte() = New Byte(4096) {}
                         Dim n As Integer = -1
                         Do While (n &lt;&gt; 0)
                             If (n &gt; 0) Then
                                 compressor.Write(buffer, 0, n)
                             End If
                             n = input.Read(buffer, 0, buffer.Length)
                         Loop
                     End Using
                 End Using
                 ' can write additional data to the output stream here.
             End Using
             </code>
             </example>
            
             <param name="stream">The stream which will be read or written.</param>
            
             <param name="mode">Indicates whether the ZlibStream will compress or decompress.</param>
            
             <param name="leaveOpen">
             true if the application would like the stream to remain open after
             inflation/deflation.
             </param>
            
             <param name="level">
             A tuning knob to trade speed for effectiveness. This parameter is
             effective only when mode is <c>CompressionMode.Compress</c>.
             </param>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.FlushMode">
            <summary>
            This property sets the flush behavior on the stream.
            Sorry, though, not sure exactly how to describe all the various settings.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.BufferSize">
             <summary>
               The size of the working buffer for the compression codec.
             </summary>
            
             <remarks>
             <para>
               The working buffer is used for all stream operations.  The default size is
               1024 bytes. The minimum size is 128 bytes. You may get better performance
               with a larger buffer.  Then again, you might not.  You would have to test
               it.
             </para>
            
             <para>
               Set this before the first call to <c>Read()</c> or <c>Write()</c> on the
               stream. If you try to set it afterwards, it will throw.
             </para>
             </remarks>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.TotalIn">
            <summary> Returns the total number of bytes input so far.</summary>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.TotalOut">
            <summary> Returns the total number of bytes output so far.</summary>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.Dispose(System.Boolean)">
            <summary>
              Dispose the stream.
            </summary>
            <remarks>
              <para>
                This may or may not result in a <c>Close()</c> call on the captive
                stream.  See the constructors that have a <c>leaveOpen</c> parameter
                for more information.
              </para>
              <para>
                This method may be invoked in two distinct scenarios.  If disposing
                == true, the method has been called directly or indirectly by a
                user's code, for example via the public Dispose() method. In this
                case, both managed and unmanaged resources can be referenced and
                disposed.  If disposing == false, the method has been called by the
                runtime from inside the object finalizer and this method should not
                reference other objects; in that case only unmanaged resources must
                be referenced or disposed.
              </para>
            </remarks>
            <param name="disposing">
              indicates whether the Dispose method was invoked by user code.
            </param>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.CanRead">
            <summary>
            Indicates whether the stream can be read.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports reading.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.CanSeek">
            <summary>
            Indicates whether the stream supports Seek operations.
            </summary>
            <remarks>
            Always returns false.
            </remarks>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.CanWrite">
            <summary>
            Indicates whether the stream can be written.
            </summary>
            <remarks>
            The return value depends on whether the captive stream supports writing.
            </remarks>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.Flush">
            <summary>
            Flush the stream.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.Length">
            <summary>
            Reading this property always throws a <see cref="T:System.NotSupportedException"/>.
            </summary>
        </member>
        <member name="P:Ionic.Zlib.ZlibStream.Position">
             <summary>
               The position of the stream pointer.
             </summary>
            
             <remarks>
               Setting this property always throws a <see
               cref="T:System.NotSupportedException"/>. Reading will return the total bytes
               written out, if used in writing, or the total bytes read in, if used in
               reading.  The count may refer to compressed bytes or uncompressed bytes,
               depending on how you've used the stream.
             </remarks>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.Read(System.Byte[],System.Int32,System.Int32)">
             <summary>
             Read data from the stream.
             </summary>
            
             <remarks>
            
             <para>
               If you wish to use the <c>ZlibStream</c> to compress data while reading,
               you can create a <c>ZlibStream</c> with <c>CompressionMode.Compress</c>,
               providing an uncompressed data stream.  Then call <c>Read()</c> on that
               <c>ZlibStream</c>, and the data read will be compressed.  If you wish to
               use the <c>ZlibStream</c> to decompress data while reading, you can create
               a <c>ZlibStream</c> with <c>CompressionMode.Decompress</c>, providing a
               readable compressed data stream.  Then call <c>Read()</c> on that
               <c>ZlibStream</c>, and the data will be decompressed as it is read.
             </para>
            
             <para>
               A <c>ZlibStream</c> can be used for <c>Read()</c> or <c>Write()</c>, but
               not both.
             </para>
            
             </remarks>
            
             <param name="buffer">
             The buffer into which the read data should be placed.</param>
            
             <param name="offset">
             the offset within that data array to put the first byte read.</param>
            
             <param name="count">the number of bytes to read.</param>
            
             <returns>the number of bytes read</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.Seek(System.Int64,System.IO.SeekOrigin)">
             <summary>
             Calling this method always throws a <see cref="T:System.NotSupportedException"/>.
             </summary>
             <param name="offset">
               The offset to seek to....
               IF THIS METHOD ACTUALLY DID ANYTHING.
             </param>
             <param name="origin">
               The reference specifying how to apply the offset....  IF
               THIS METHOD ACTUALLY DID ANYTHING.
             </param>
            
             <returns>nothing. This method always throws.</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.SetLength(System.Int64)">
            <summary>
            Calling this method always throws a <see cref="T:System.NotSupportedException"/>.
            </summary>
            <param name="value">
              The new value for the stream length....  IF
              THIS METHOD ACTUALLY DID ANYTHING.
            </param>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.Write(System.Byte[],System.Int32,System.Int32)">
             <summary>
             Write data to the stream.
             </summary>
            
             <remarks>
            
             <para>
               If you wish to use the <c>ZlibStream</c> to compress data while writing,
               you can create a <c>ZlibStream</c> with <c>CompressionMode.Compress</c>,
               and a writable output stream.  Then call <c>Write()</c> on that
               <c>ZlibStream</c>, providing uncompressed data as input.  The data sent to
               the output stream will be the compressed form of the data written.  If you
               wish to use the <c>ZlibStream</c> to decompress data while writing, you
               can create a <c>ZlibStream</c> with <c>CompressionMode.Decompress</c>, and a
               writable output stream.  Then call <c>Write()</c> on that stream,
               providing previously compressed data. The data sent to the output stream
               will be the decompressed form of the data written.
             </para>
            
             <para>
               A <c>ZlibStream</c> can be used for <c>Read()</c> or <c>Write()</c>, but not both.
             </para>
             </remarks>
             <param name="buffer">The buffer holding data to write to the stream.</param>
             <param name="offset">the offset within that data array to find the first byte to write.</param>
             <param name="count">the number of bytes to write.</param>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.CompressString(System.String)">
             <summary>
               Compress a string into a byte array using ZLIB.
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.ZlibStream.UncompressString(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressString(System.Byte[])"/>
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressBuffer(System.Byte[])"/>
             <seealso cref="M:Ionic.Zlib.GZipStream.CompressString(System.String)"/>
            
             <param name="s">
               A string to compress.  The string will first be encoded
               using UTF8, then compressed.
             </param>
            
             <returns>The string in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.CompressBuffer(System.Byte[])">
             <summary>
               Compress a byte array into a new byte array using ZLIB.
             </summary>
            
             <remarks>
               Uncompress it with <see cref="M:Ionic.Zlib.ZlibStream.UncompressBuffer(System.Byte[])"/>.
             </remarks>
            
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressString(System.String)"/>
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressBuffer(System.Byte[])"/>
            
             <param name="b">
             A buffer to compress.
             </param>
            
             <returns>The data in compressed form</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.UncompressString(System.Byte[])">
             <summary>
               Uncompress a ZLIB-compressed byte array into a single string.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressString(System.String)"/>
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressBuffer(System.Byte[])"/>
            
             <param name="compressed">
               A buffer containing ZLIB-compressed data.
             </param>
            
             <returns>The uncompressed string</returns>
        </member>
        <member name="M:Ionic.Zlib.ZlibStream.UncompressBuffer(System.Byte[])">
             <summary>
               Uncompress a ZLIB-compressed byte array into a byte array.
             </summary>
            
             <seealso cref="M:Ionic.Zlib.ZlibStream.CompressBuffer(System.Byte[])"/>
             <seealso cref="M:Ionic.Zlib.ZlibStream.UncompressString(System.Byte[])"/>
            
             <param name="compressed">
               A buffer containing ZLIB-compressed data.
             </param>
            
             <returns>The data in uncompressed form</returns>
        </member>
    </members>
</doc>
