<?xml version="1.0"?>
<doc>
    <assembly>
        <name>GSF.TimeSeries</name>
    </assembly>
    <members>
        <member name="T:GSF.TimeSeries.Adapters.ConnectionStringParameterAttribute">
            <summary>
            Marks a parameter as being a connection string parameter used to configure an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute">
            <summary>
            Marks a parameter or class as having a custom configuration editor page used to configure that parameter or class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute.#ctor(System.String,System.String,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute"/> class.
            </summary>
            <param name="assemblyName">The name of the assembly in which the editor type resides.</param>
            <param name="typeName">The full name of the type of the editor.</param>
            <param name="connectionString">The connection string for the custom configuration screen.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute.#ctor(System.Type,System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute"/> class.
            </summary>
            <param name="editorType">The type of the editor.</param>
            <param name="connectionString">The connection string for the custom configuration screen.</param>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute.EditorType">
            <summary>
            Gets the type of the UI editor used to configure the custom adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.CustomConfigurationEditorAttribute.ConnectionString">
            <summary>
            Gets the connection string used to configure the editor.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.FilterAdapterBase">
            <summary>
            Base class for the <see cref="T:GSF.TimeSeries.Adapters.IFilterAdapter"/> interface.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.FilterAdapterBase"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FilterAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> expects, if any.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FilterAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FilterAdapterBase.ExecutionOrder">
            <summary>
            Gets or sets the values that determines the order in which filter adapters are executed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterBase.HandleNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Handler for new measurements that have not yet been routed.
            </summary>
            <param name="measurements">Measurements that have not yet been routed.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterBase.IsInputMeasurement(GSF.TimeSeries.MeasurementKey)">
            <summary>
            Determines if the given measurement key represents
            a signal that is bound for this filter adapter.
            </summary>
            <param name="key">The key that identifies the signal.</param>
            <returns>True if measurements for the given signal are bound for this filter adapter.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterBase.ProcessMeasurements(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Processes the new measurements before they have been routed to other adapters.
            </summary>
            <param name="measurements">The new measurements that have not yet been routed.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.FilterAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Adapters.IFilterAdapter"/> implementations.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.FilterAdapterCollection.CollectionCountChanged">
            <summary>
            Provides notification of change in collection count.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.FilterAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FilterAdapterCollection.ExecutionOrder">
            <summary>
            Gets or sets the values that determines the order in which filter adapters are executed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.HandleNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Handler for new measurements that have not yet been routed.
            </summary>
            <param name="measurements">Measurements that have not yet been routed.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.TryCreateAdapter(System.Data.DataRow,GSF.TimeSeries.Adapters.IFilterAdapter@)">
            <summary>
            Attempts to create an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            See <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> property for expected <see cref="T:System.Data.DataRow"/> column names.
            </remarks>
            <exception cref="T:System.NullReferenceException"><paramref name="adapterRow"/> is null.</exception>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.InsertItem(System.Int32,GSF.TimeSeries.Adapters.IFilterAdapter)">
            <summary>
            Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1"/> the specified index.
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation to insert.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.SetItem(System.Int32,GSF.TimeSeries.Adapters.IFilterAdapter)">
            <summary>
            Assigns a new element to the <see cref="T:System.Collections.ObjectModel.Collection`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index for which item should be assigned.</param>
            <param name="item">The <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation to assign.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.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>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FilterAdapterCollection.OnCollectionCountChanged">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.FilterAdapterCollection.CollectionCountChanged"/> event.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IaonSession">
            <summary>
            Represents a new Input, Action, Output interface session.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`2.Argument1"/> is the new status message.<br/>
            <see cref="F:GSF.EventArgs`2.Argument2"/> is the message <see cref="T:GSF.UpdateType"/>.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.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="E:GSF.TimeSeries.Adapters.IaonSession.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.IAdapter.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.ConfigurationChanged">
            <summary>
            Event is raised when adapter is aware of a configuration change.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.UnpublishedSamples">
            <summary>
            Event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation reports its current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.ProcessingComplete">
            <summary>
            Indicates to the host that processing for one of the input adapters has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IaonSession.Disposed">
            <summary>
            Event is raised when this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> is disposed or an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> in the collection is disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.AllAdapters">
            <summary>
            Gets the all adapters collection for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.FilterAdapters">
            <summary>
            Gets the filter adapter collection for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.InputAdapters">
            <summary>
            Gets the input adapter collection for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.ActionAdapters">
            <summary>
            Gets the action adapter collection for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.OutputAdapters">
            <summary>
            Gets the output adapter collection for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.RoutingTables">
            <summary>
            Gets the routing tables for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.InputMeasurementKeysRestriction">
            <summary>
            Gets or sets a routing table restriction for a collection of input measurement keys.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.DataSource">
            <summary>
            Gets or sets the configuration <see cref="T:System.Data.DataSet"/> for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.NodeID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> node ID  for this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.Name">
            <summary>
            Gets name assigned to this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IaonSession.Status">
            <summary>
            Gets the combined status of the adapters in this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> 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.TimeSeries.Adapters.IaonSession.Initialize(System.Boolean)">
            <summary>
            Initialize and start adapters.
            </summary>
            <param name="autoStart">Sets flag that determines if adapters should be automatically started.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.TemporalProcessingSupportExists(System.String)">
            <summary>
            Gets flag that determines if temporal processing is supported in this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.
            </summary>
            <param name="collection">Name of collection over which to check support (e.g., "InputAdapters"); or <c>null</c> for all collections.</param>
            <returns>Flag that determines if temporal processing is supported in this <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.GetDerivedName(System.Object)">
            <summary>
            Gets derived name of specified object.
            </summary>
            <param name="sender">Sending object from which to derive name.</param>
            <returns>Derived name of specified object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables as long as all adapters have been initialized.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnStatusMessage(System.Object,System.String,GSF.UpdateType)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.StatusMessage"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="status">New status message.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnStatusMessage(System.Object,System.String,GSF.UpdateType,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convenience.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnProcessException(System.Object,System.Exception)">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.IaonSession.ProcessException"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnInputMeasurementKeysUpdated(System.Object)">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.IaonSession.InputMeasurementKeysUpdated"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnOutputMeasurementsUpdated(System.Object)">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.IaonSession.OutputMeasurementsUpdated"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnConfigurationChanged(System.Object)">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.IaonSession.ConfigurationChanged"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnUnpublishedSamples(System.Object,System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.UnpublishedSamples"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnUnprocessedMeasurements(System.Object,System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.UnprocessedMeasurements"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnProcessingComplete(System.Object,System.EventArgs)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.ProcessingComplete"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="e"><see cref="T:System.EventArgs"/>, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OnDisposed(System.Object)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.IaonSession.Disposed"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.StatusMessageHandler(System.Object,GSF.EventArgs{System.String})">
            <summary>
            Event handler for reporting status messages.
            </summary>
            <param name="sender">Event source of the status message.</param>
            <param name="e">Event arguments containing the status message to report.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.ProcessExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing reported exceptions.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.InputMeasurementKeysUpdatedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for updates to adapter input measurement key definitions.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.OutputMeasurementsUpdatedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for updates to adapter output measurement definitions.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.ConfigurationChangedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for adapter notifications about configuration changes.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.UnpublishedSamplesHandler(System.Object,GSF.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unpublished samples.
            </summary>
            <param name="sender">Event source reference to adapter, typically an action adapter, that is reporting the number of unpublished data samples.</param>
            <param name="e">Event arguments containing number of samples, in seconds of data, of unpublished data in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unpublished samples, in seconds of data, in action adapters.<br/>
            This method is typically called once every five seconds.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.RequestTemporalSupportHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for requesting temporal support.
            </summary>
            <param name="sender">Event source reference to adapter collection, typically an action adapter collection, that is requesting temporal support.</param>
            <param name="e">Event arguments are not used.</param>
            <remarks>
            Action adapter collections use this handler to make sure temporal support is initialized before setting up temporal sessions.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.UnprocessedMeasurementsHandler(System.Object,GSF.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unprocessed measurements.
            </summary>
            <param name="sender">Event source reference to adapter, typically an output adapter, that is reporting the number of unprocessed measurements.</param>
            <param name="e">Event arguments containing number of queued (i.e., unprocessed) measurements in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unprocessed measurements in output adapters.<br/>
            This method is typically called once every five seconds.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.NewMeasurementsHandler(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            Event handler for new measurement notifications from input adapters and action adapters.
            </summary>
            <param name="sender">Event source reference to the adapter that is reporting new measurements.</param>
            <param name="e">Event arguments for event that contains references to the new measurements.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.ProcessingCompleteHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for processing complete notifications from input adapters.
            </summary>
            <param name="sender">Event source reference to input adapter that is reporting processing completion.</param>
            <param name="e">Event arguments for event, if any; otherwise <see cref="F:System.EventArgs.Empty"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.DisposedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for disposed events from all adapters.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IaonSession.ExtractTemporalConfiguration(System.Data.DataSet)">
            <summary>
            Extracts a configuration that supports temporal processing from an existing real-time configuration.
            </summary>
            <param name="realtimeConfiguration">Real-time <see cref="T:System.Data.DataSet"/> configuration.</param>
            <returns>A new <see cref="T:System.Data.DataSet"/> configuration for adapters that support temporal processing.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IFilterAdapter">
            <summary>
            Represents a module that processes input measurements on
            the way by before routing the measurements to other adapters.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IFilterAdapter.ExecutionOrder">
            <summary>
            Gets or sets the values that determines the order in which filter adapters are executed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IFilterAdapter.HandleNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Handler for new measurements that have not yet been routed.
            </summary>
            <param name="measurements">Measurements that have not yet been routed.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager">
            <summary>
            Represents the interface for implementations of independent adapter collection managers.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloadWaitTimeout">
            <summary>
            Gets or sets the wait timeout, in milliseconds, that system wait for system configuration reload to complete.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloadWaitAttempts">
            <summary>
            Gets or sets the total number of attempts to wait for system configuration reloads when waiting for configuration updates to be available.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DatabaseConnectionString">
            <summary>
            Gets or sets the connection string used for database operations. Leave blank to use local configuration database defined in "systemSettings".
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DatabaseProviderString">
            <summary>
            Gets or sets the provider string used for database operations. Defaults to a SQL Server provider string.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.PointTagTemplate">
            <summary>
            Gets or sets template for output measurement point tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.AlternateTagTemplate">
            <summary>
            Gets or sets template for output measurement alternate tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalReferenceTemplate">
            <summary>
            Gets or sets template for output measurement signal reference names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DescriptionTemplate">
            <summary>
            Gets or sets template for output measurement descriptions.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ParentDeviceAcronymTemplate">
            <summary>
            Gets or sets template for the parent device acronym used to group associated output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalType">
            <summary>
            Gets or sets default signal type to use for all output measurements when <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalTypes"/> array is not defined.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalTypes">
            <summary>
            Gets per adapter signal type for output measurements, used when each output needs to be a different type.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.CustomAdapterSettings">
            <summary>
            Gets any custom adapter settings to be added to each adapter connection string. Can be used to add
            settings that are custom per adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.TargetHistorianAcronym">
            <summary>
            Gets or sets the target historian acronym for output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SourceMeasurementTable">
            <summary>
            Gets or sets the source measurement table to use for configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.RoutingTables">
            <summary>
            Gets routing tables used by<see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OriginalDataMember">
            <summary>
            Gets original data member setting for <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.AutoReparseConnectionString">
            <summary>
            Gets or sets flag that determines if the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/> instance
            <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString"/> should be automatically parsed every time the
            <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> is updated without requiring adapter to be reinitialized.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.InputMeasurementKeyTypes">
            <summary>
            Gets input measurement <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeys"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OutputMeasurementTypes">
            <summary>
            Gets output measurement <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurements"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloadedWaitHandle">
            <summary>
            Gets or sets wait handle used by <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/> instance to
            manage waiting for changes to be loaded in system configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.PerAdapterInputCount">
            <summary>
            Gets number of input measurement required by each adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.InputMeasurementIndexUsedForName">
            <summary>
            Gets or sets the index into the per adapter input measurements to use for target adapter name.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.PerAdapterOutputNames">
            <summary>
            Gets output measurement names to use for each adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.AdapterIDCounter">
            <summary>
            Gets or sets current adapter ID counter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.CurrentAdapterIndex">
            <summary>
            Gets adapter index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.CurrentOutputIndex">
            <summary>
            Gets adapter output index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.CurrentDeviceID">
            <summary>
            Gets associated device ID for <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.CurrentAdapterIndex"/>, if any, for measurement generation.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ParseConnectionString">
            <summary>
            Parses connection string. Derived classes should override for custom connection string parsing.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloaded">
            <summary>
            Notifies derived classes that configuration has been reloaded.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.GetConfiguredConnection">
            <summary>
            Gets configured database connection.
            </summary>
            <returns>New ADO data connection based on configured settings.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.EnumerateAdapters">
            <summary>
            Enumerates child adapters
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.GetAdapterStatus(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="adapterIndex">Enumerated index for child adapter.</param>
            <returns>Status for adapter with specified <paramref name="adapterIndex"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OnConfigurationChanged">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConfigurationChanged"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IIndependentAdapterManager.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1">
            <summary>
            Represents an adapter base class that provides functionality to manage and distribute measurements to a collection of action adapters.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DefaultFramesPerSecond">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.FramesPerSecond"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DefaultLagTime">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.LagTime"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DefaultLeadTime">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.LeadTime"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DefaultPerformTimestampReasonabilityCheck">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PerformTimestampReasonabilityCheck"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DefaultUseLocalClockAsRealTime">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.UseLocalClockAsRealTime"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements for the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second applied to each adapter.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:GSF.TimeSeries.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second) applied to each adapter.
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second) applied to each adapter.
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PerformTimestampReasonabilityCheck">
            <summary>
            Gets or sets flag that determines if timestamp reasonability checks should be performed on incoming
            measurements (i.e., measurement timestamps are compared to system clock for reasonability using
            <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.LeadTime"/> tolerance).
            </summary>
            <remarks>
            Setting this value to <c>false</c> will make the concentrator use the latest value received as "real-time"
            without validation; this is not recommended in production since time reported by source devices may
            be grossly incorrect. For non-production configurations, setting this value to false will allow
            concentration of historical data.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real-time.
            </summary>
            <remarks>
            Use your local system clock as real-time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ConfigurationReloadWaitTimeout">
            <summary>
            Gets or sets the wait timeout, in milliseconds, that system wait for system configuration reload to complete.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ConfigurationReloadWaitAttempts">
            <summary>
            Gets or sets the total number of attempts to wait for system configuration reloads when waiting for configuration updates to be available.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DatabaseConnectionString">
            <summary>
            Gets or sets the connection string used for database operations. Leave blank to use local configuration database defined in "systemSettings".
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DatabaseProviderString">
            <summary>
            Gets or sets the provider string used for database operations. Defaults to a SQL Server provider string.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PointTagTemplate">
            <summary>
            Gets or sets template for output measurement point tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AlternateTagTemplate">
            <summary>
            Gets or sets template for output measurement alternate tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalReferenceTemplate">
            <summary>
            Gets or sets template for output measurement signal reference names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DescriptionTemplate">
            <summary>
            Gets or sets template for output measurement descriptions.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParentDeviceAcronymTemplate">
            <summary>
            Gets or sets template for the parent device acronym used to group associated output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalType">
            <summary>
            Gets or sets default signal type to use for all output measurements when <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalTypes"/> array is not defined.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalTypes">
            <summary>
            Gets per adapter signal type for output measurements, used when each output needs to be a different type.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CustomAdapterSettings">
            <summary>
            Gets any custom adapter settings to be added to each adapter connection string. Can be used to add
            settings that are custom per adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.TargetHistorianAcronym">
            <summary>
            Gets or sets the target historian acronym for output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SourceMeasurementTable">
            <summary>
            Gets or sets the source measurement table to use for configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>. Updates
            to this property will cascade to all adapters in this <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PerAdapterInputCount">
            <summary>
            Gets number of input measurement required by each adapter. If value is not constant, use
            <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CurrentAdapterIndex"/> to determine input count for adapter at current index.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InputMeasurementIndexUsedForName">
            <summary>
            Gets or sets the index into the per adapter input measurements to use for target adapter name.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PerAdapterOutputNames">
            <summary>
            Gets output measurement names to use for each adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AutoReparseConnectionString">
            <summary>
            Gets or sets flag that determines if the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/> adapter
            <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString"/> should be automatically parsed every time the
            <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.DataSource"/> is updated without requiring adapter to be reinitialized. Defaults to <c>true</c>
            to allow child adapters to come and go based on updates to system configuration.
            </summary>
            <remarks>
            When this value is <c>true</c> (the default), implementors must call the <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InitializeChildAdapterManagement(GSF.TimeSeries.MeasurementKey[])"/>
            method an overridden <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParseConnectionString"/> method.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InputMeasurementKeyTypes">
            <summary>
            Gets input measurement <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeys"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.OutputMeasurementTypes">
            <summary>
            Gets output measurement <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurements"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AdapterIDCounter">
            <summary>
            Gets or sets current adapter ID counter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CurrentAdapterIndex">
            <summary>
            Gets adapter index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CurrentOutputIndex">
            <summary>
            Gets adapter output index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CurrentDeviceID">
            <summary>
            Gets associated device ID for <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.CurrentAdapterIndex"/>, if any, for measurement generation. If overridden to provide custom
            device ID, <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParentDeviceAcronymTemplate"/> should be set to <c>null</c> so no parent device is created.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.Status">
            <summary>
            Returns the detailed status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`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.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1" />.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InitializeChildAdapterManagement(GSF.TimeSeries.MeasurementKey[])">
            <summary>
            Initializes management operations for child adapters based on inputs. Derived classes should override
            <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParseConnectionString"/> and call this method when <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AutoReparseConnectionString"/> is
            <c>true</c> (the default).
            </summary>
            <param name="inputMeasurementKeys">Input measurement keys to use for initialization.</param>
            <remarks>
            When <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AutoReparseConnectionString"/> is <c>true</c> (the default), implementors must override
            the <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParseConnectionString"/> method and at least call this method.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ValidateEvenInputCount">
            <summary>
            Validates that an even number of inputs are provided for specified <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.PerAdapterInputCount"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ParseConnectionString">
            <summary>
            Parses connection string. Derived classes should override for custom connection string parsing and call the
            <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InitializeChildAdapterManagement(GSF.TimeSeries.MeasurementKey[])"/> method when <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AutoReparseConnectionString"/> is
            <c>true</c> (the default).
            </summary>
            <remarks>
            When <see cref="P:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.AutoReparseConnectionString"/> is <c>true</c> (the default), implementors must override
            this method and at least call the <see cref="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.InitializeChildAdapterManagement(GSF.TimeSeries.MeasurementKey[])"/> method.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.ConfigurationReloaded">
            <summary>
            Notifies derived classes that configuration has been reloaded
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> connected to this <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.EnumerateAdapters">
            <summary>
            Enumerates child adapters.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.GetAdapterStatus(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="adapterIndex">Enumerated index for child adapter.</param>
            <returns>Status for adapter with specified <paramref name="adapterIndex"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentActionAdapterManagerBase`1.GetConfiguredConnection">
            <summary>
            Gets configured database connection.
            </summary>
            <returns>New ADO data connection based on configured settings.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions">
            <summary>
            Represents an adapter base class that provides functionality to manage and distribute measurements to a collection of action adapters.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultConfigurationReloadWaitTimeout">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloadWaitTimeout"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultConfigurationReloadWaitAttempts">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ConfigurationReloadWaitAttempts"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultDatabaseConnectionString">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DatabaseConnectionString"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultDatabaseProviderString">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DatabaseProviderString"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultPointTagTemplate">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.PointTagTemplate"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultAlternateTagTemplate">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.AlternateTagTemplate"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultSignalReferenceTemplate">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalReferenceTemplate"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultDescriptionTemplate">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.DescriptionTemplate"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultParentDeviceAcronymTemplate">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.ParentDeviceAcronymTemplate"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultSignalType">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SignalType"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultTargetHistorianAcronym">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.TargetHistorianAcronym"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.DefaultSourceMeasurementTable">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.SourceMeasurementTable"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.FindAdapter(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.String)">
            <summary>
            Finds child adapter with specified <paramref name="adapterName"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="adapterName">Adapter name to find.</param>
            <returns><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance with <paramref name="adapterName"/>, if found; otherwise, <c>null</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.LookupPointTag(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Guid,System.String)">
            <summary>
            Lookups up point tag name from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Point tag name, if found; otherwise, string representation of provided signal ID.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.LookupDevice(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Guid,System.String)">
            <summary>
            Lookups up associated device name from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Device name, if found; otherwise, string representation of associated point tag.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.LookupPhasorLabel(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Guid,System.String)">
            <summary>
            Lookups up associated phasor label from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Phasor label name, if found; otherwise, string representation associated point tag.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.SignalIDExists(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Guid,System.String)">
            <summary>
            Determines if <paramref name="signalID"/> exists in local configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="signalID">Signal ID to find.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><c>true</c>, if <paramref name="signalID"/> is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.GetMeasurementRecord(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Int32,System.String,System.String,System.String,System.String,GSF.Units.EE.SignalType,System.String)">
            <summary>
            Gets measurement record, creating it if needed.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="currentDeviceID">Device ID associated with current adapter, or zero if none.</param>
            <param name="pointTag">Point tag of measurement.</param>
            <param name="alternateTag">Alternate tag of measurement.</param>
            <param name="signalReference">Signal reference of measurement.</param>
            <param name="description">Description of measurement.</param>
            <param name="signalType">Signal type of measurement.</param>
            <param name="targetHistorianAcronym">Acronym of target historian for measurement.</param>
            <returns>Measurement record.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions.WaitForSignalsToLoad(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Guid[],System.String)">
            <summary>
            Waits for <paramref name="signalIDs"/> to be loaded in system configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="signalIDs">Signal IDs to wait for.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleConstruct(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Handles construction steps for a new <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleDispose(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Disposes resources used by the <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleInitialize(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions" />.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleUpdateDataSource(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>. Updates to this
            property will cascade to all adapters in this <see cref="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions"/> instance.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleStatus(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Returns the detailed status for the <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleParseConnectionString(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Parses connection string. Derived classes should override for custom connection string parsing.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleValidateEvenInputCount(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Validates that an even number of inputs are provided for specified <see cref="P:GSF.TimeSeries.Adapters.IIndependentAdapterManager.PerAdapterInputCount"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleRecalculateRoutingTables(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Recalculates routing tables.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleQueueMeasurementsForProcessing(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> connected to this <see cref="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleGetShortStatus(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentAdapterManagerExtensions"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleEnumerateAdapters(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Enumerates child adapters.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleGetAdapterStatus(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="adapterIndex">Enumerated index for child adapter.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.HandleGetConfiguredConnection(GSF.TimeSeries.Adapters.IIndependentAdapterManager)">
            <summary>
            Gets configured database connection.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <returns>New ADO data connection based on configured settings.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentAdapterManagerHandlers.DataSourceChanged(GSF.TimeSeries.Adapters.IIndependentAdapterManager,System.Data.DataSet)">
            <summary>
            Determines whether the data in the data source has actually changed when receiving a new data source.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IIndependentAdapterManager"/> instance.</param>
            <param name="newDataSource">New data source to check.</param>
            <returns><c>true</c> if data source has changed; otherwise, <c>false</c>.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase">
            <summary>
            Represents an adapter base class that provides functionality to manage and distribute measurements to a collection of input adapters.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ConfigurationReloadWaitTimeout">
            <summary>
            Gets or sets the wait timeout, in milliseconds, that system wait for system configuration reload to complete.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ConfigurationReloadWaitAttempts">
            <summary>
            Gets or sets the total number of attempts to wait for system configuration reloads when waiting for configuration updates to be available.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.DatabaseConnectionString">
            <summary>
            Gets or sets the connection string used for database operations. Leave blank to use local configuration database defined in "systemSettings".
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.DatabaseProviderString">
            <summary>
            Gets or sets the provider string used for database operations. Defaults to a SQL Server provider string.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.PointTagTemplate">
            <summary>
            Gets or sets template for output measurement point tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.AlternateTagTemplate">
            <summary>
            Gets or sets template for output measurement alternate tag names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SignalReferenceTemplate">
            <summary>
            Gets or sets template for output measurement signal reference names.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.DescriptionTemplate">
            <summary>
            Gets or sets template for output measurement descriptions.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ParentDeviceAcronymTemplate">
            <summary>
            Gets or sets template for the parent device acronym used to group associated output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SignalType">
            <summary>
            Gets or sets default signal type to use for all output measurements when <see cref="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SignalTypes"/> array is not defined.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SignalTypes">
            <summary>
            Gets per adapter signal type for output measurements, used when each output needs to be a different type.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.CustomAdapterSettings">
            <summary>
            Gets any custom adapter settings to be added to each adapter connection string. Can be used to add
            settings that are custom per adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.TargetHistorianAcronym">
            <summary>
            Gets or sets the target historian acronym for output measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SourceMeasurementTable">
            <summary>
            Gets or sets the source measurement table to use for configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>. Updates
            to this property will cascade to all adapters in this <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.PerAdapterOutputNames">
            <summary>
            Gets output measurement names to use for each adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.AutoReparseConnectionString">
            <summary>
            Gets or sets flag that determines if the <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/> adapter
            <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString"/> should be automatically parsed every time
            the <see cref="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.DataSource"/> is updated without requiring adapter to be reinitialized. Defaults
            to <c>true</c> to allow child adapters to come and go based on updates to system configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.OutputMeasurementTypes">
            <summary>
            Gets output measurement <see cref="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurements"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.CurrentAdapterIndex">
            <summary>
            Gets adapter index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.CurrentOutputIndex">
            <summary>
            Gets adapter output index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.CurrentDeviceID">
            <summary>
            Gets associated device ID for <see cref="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.CurrentAdapterIndex"/>, if any, for measurement generation. If overridden to provide custom
            device ID, <see cref="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ParentDeviceAcronymTemplate"/> should be set to <c>null</c> so no parent device is created.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.Status">
            <summary>
            Returns the detailed status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/> 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.TimeSeries.Adapters.IndependentInputAdapterManagerBase.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase" />.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ParseConnectionString">
            <summary>
            Parses connection string. Derived classes should override for custom connection string parsing.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.ConfigurationReloaded">
            <summary>
            Notifies derived classes that configuration has been reloaded
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.EnumerateAdapters">
            <summary>
            Enumerates child adapters.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.GetAdapterStatus(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="adapterIndex">Enumerated index for child adapter.</param>
            <returns>Status for adapter with specified <paramref name="adapterIndex"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentInputAdapterManagerBase.GetConfiguredConnection">
            <summary>
            Gets configured database connection.
            </summary>
            <returns>New ADO data connection based on configured settings.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase">
            <summary>
            Represents an adapter base class that provides functionality to manage and distribute measurements to a collection of output adapters.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements for the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.ConfigurationReloadWaitTimeout">
            <summary>
            Gets or sets the wait timeout, in milliseconds, that system wait for system configuration reload to complete.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.ConfigurationReloadWaitAttempts">
            <summary>
            Gets or sets the total number of attempts to wait for system configuration reloads when waiting for configuration updates to be available.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.DatabaseConnectionString">
            <summary>
            Gets or sets the connection string used for database operations. Leave blank to use local configuration database defined in "systemSettings".
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.DatabaseProviderString">
            <summary>
            Gets or sets the provider string used for database operations. Defaults to a SQL Server provider string.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.CustomAdapterSettings">
            <summary>
            Gets any custom adapter settings to be added to each adapter connection string. Can be used to add
            settings that are custom per adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.SourceMeasurementTable">
            <summary>
            Gets or sets the source measurement table to use for configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>. Updates
            to this property will cascade to all adapters in this <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.PerAdapterInputCount">
            <summary>
            Gets number of input measurement required by each adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.InputMeasurementIndexUsedForName">
            <summary>
            Gets or sets the index into the per adapter input measurements to use for target adapter name.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.AutoReparseConnectionString">
            <summary>
            Gets or sets flag that determines if the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/> adapter
            <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString"/> should be automatically parsed every time
            the <see cref="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.DataSource"/> is updated without requiring adapter to be reinitialized. Defaults
            to <c>true</c> to allow child adapters to come and go based on updates to system configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.InputMeasurementKeyTypes">
            <summary>
            Gets input measurement <see cref="T:GSF.Units.EE.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeys"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.CurrentAdapterIndex">
            <summary>
            Get adapter index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.CurrentOutputIndex">
            <summary>
            Get adapter output index currently being processed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.CurrentDeviceID">
            <summary>
            Gets associated device ID for <see cref="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.CurrentAdapterIndex"/>, if any, for measurement generation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.Status">
            <summary>
            Returns the detailed status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/> 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.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase" />.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.ValidateEvenInputCount">
            <summary>
            Validates that an even number of inputs are provided for specified <see cref="P:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.PerAdapterInputCount"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.ParseConnectionString">
            <summary>
            Parses connection string. Derived classes should override for custom connection string parsing.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.ConfigurationReloaded">
            <summary>
            Notifies derived classes that configuration has been reloaded
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> connected to this <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.EnumerateAdapters">
            <summary>
            Enumerates child adapters.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.GetAdapterStatus(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="adapterIndex">Enumerated index for child adapter.</param>
            <returns>Status for adapter with specified <paramref name="adapterIndex"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IndependentOutputAdapterManagerBase.GetConfiguredConnection">
            <summary>
            Gets configured database connection.
            </summary>
            <returns>New ADO data connection based on configured settings.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IOptimizedRoutingConsumer">
            <summary>
            Provides an alternative means of routing messages one at a time if an adapter
            is more efficient at receiving messages.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IOptimizedRoutingConsumer.GetRoutingPassthroughMethods">
            <summary>
            Gets the alternative routing method callbacks for this adapter.
            </summary>
            <returns>The methods if the adapter supports them. Null if this method is not to be used.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IRouteMappingTables">
            <summary>
            An interface to provide a custom implementation of the routing functionality of the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/>
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IRouteMappingTables.RouteCount">
            <summary>
            Gets the number of routes in this routing table.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IRouteMappingTables.Initialize(System.Action{System.String},System.Action{System.Exception})">
            <summary>
            Assigns the status messaging callbacks.
            </summary>
            <param name="onStatusMessage">Raise status messages on this callback</param>
            <param name="onProcessException">Raise exceptions on this callback</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IRouteMappingTables.PatchRoutingTable(GSF.TimeSeries.Adapters.RoutingTablesAdaptersList,GSF.TimeSeries.Adapters.RoutingTablesAdaptersList)">
            <summary>
            Patches the existing routing table with the supplied adapters.
            </summary>
            <param name="producerAdapters">all of the producers</param>
            <param name="consumerAdapters">all of the consumers</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IRouteMappingTables.InjectMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            This method will directly inject measurements into the routing table and use a shared local input adapter. For
            contention reasons, it is not recommended this be its default use case, but it is necessary at times.
            </summary>
            <param name="sender">the sender object</param>
            <param name="measurements">the event arguments</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.MetadataHelpers">
            <summary>
            Represents functionality to manage device and measurement metadata for adapters.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.MetadataHelpers.DefaultMeasurementTable">
            <summary>
            Defines the default measurement table name.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.MetadataHelpers.DefaultConfigurationReloadWaitTimeout">
            <summary>
            Defines the default value for the configuration reload wait timeout.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.MetadataHelpers.DefaultConfigurationReloadWaitAttempts">
            <summary>
            Defines the default value for the configuration reload wait attempts.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.GetParentDevice(GSF.TimeSeries.Adapters.IAdapter,System.String)">
            <summary>
            Gets ID of parent device, creating or updating record if needed, for the current <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="parentDeviceAcronymTemplate">Parent device acronym template. Use '{0}' to reference <see cref="P:GSF.TimeSeries.Adapters.IAdapter.Name"/>.</param>
            <returns>ID of parent device; or, <c>null</c> on failure.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.LookupPointTag(GSF.TimeSeries.Adapters.IAdapter,System.Guid,System.String)">
            <summary>
            Looks up point tag name from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Point tag name, if found; otherwise, string representation of provided signal ID.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.LookupSignalReference(GSF.TimeSeries.Adapters.IAdapter,System.Guid,System.String)">
            <summary>
            Looks up signal reference from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Signal reference name, if found; otherwise, string representation of provided signal ID.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.LookupMeasurementKey(GSF.TimeSeries.Adapters.IAdapter,System.Guid,System.UInt64,System.String,System.String)">
            <summary>
            Looks up or creates measurement key based on provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="id">Measurement ID to use for creating new measurement key.</param>
            <param name="source">Source name used for meta-data lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Found or newly created measurement key. Failure to create key results in <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.</returns>
            <remarks>
            This is a metadata first lookup operation.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.LookupDevice(GSF.TimeSeries.Adapters.IAdapter,System.Guid,System.String)">
            <summary>
            Looks up associated device acronym and ID from provided <paramref name="signalID"/>.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Device acronym and ID tuple, if found; otherwise, string representation of associated point tag and ID of zero.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.SignalIDExists(GSF.TimeSeries.Adapters.IAdapter,System.Guid,System.String)">
            <summary>
            Determines if <paramref name="signalID"/> exists in local configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalID">Signal ID to find.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><c>true</c>, if <paramref name="signalID"/> is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.PointTagExists(GSF.TimeSeries.Adapters.IAdapter,System.String,System.Guid@,System.String)">
            <summary>
            Determines if <paramref name="pointTag"/> exists in local configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="pointTag">Point tag to find./</param>
            <param name="signalID">Signal ID of measurement with specified point tag.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><c>true</c>, if <paramref name="pointTag"/> is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.SignalReferenceExists(GSF.TimeSeries.Adapters.IAdapter,System.String,System.Guid@,System.String)">
            <summary>
            Determines if <paramref name="signalReference"/> exists in local configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="signalReference">Point tag to find./</param>
            <param name="signalID">Signal ID of measurement with specified point tag.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><c>true</c>, if <paramref name="signalReference"/> is found; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.GetMeasurementRecord(GSF.TimeSeries.Adapters.IAdapter,System.Nullable{System.Int32},System.String,System.String,System.String,System.String,GSF.Units.EE.SignalType,System.String,System.Boolean)">
            <summary>
            Gets measurement record, creating it if needed.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="currentDeviceID">Device ID associated with current adapter, or zero if none.</param>
            <param name="pointTag">Point tag of measurement.</param>
            <param name="alternateTag">Alternate tag of measurement.</param>
            <param name="signalReference">Signal reference of measurement.</param>
            <param name="description">Description of measurement.</param>
            <param name="signalType">Signal type of measurement.</param>
            <param name="targetHistorianAcronym">Acronym of target historian for measurement.</param>
            <param name="sendChangedNotification">Flag that determines if host system should be notified of configuration changes.</param>
            <returns>Measurement record.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.OnConfigurationChanged(GSF.TimeSeries.Adapters.IAdapter)">
            <summary>
            Notifies host system of configuration changes.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.WaitForSignalsToLoad(GSF.TimeSeries.Adapters.IAdapter,System.Threading.ManualResetEventSlim,System.Collections.Generic.IReadOnlyList{System.Guid},System.Int32,System.Int32,System.String)">
            <summary>
            Waits for <paramref name="signalIDs"/> to be loaded in system configuration.
            </summary>
            <param name="instance">Target <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance.</param>
            <param name="configurationReloadedWaitHandle">Wait handle to signal when configuration has been reloaded.</param>
            <param name="signalIDs">Signal IDs to wait for.</param>
            <param name="configurationReloadWaitTimeout">Configuration reload wait timeout.</param>
            <param name="configurationReloadWaitAttempts">Configuration reload wait attempts.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><c>true</c> if <paramref name="signalIDs"/> are loaded; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.MetadataHelpers.ElapsedWaitTimeString(System.Int32,System.Int32)">
            <summary>
            Gets string representation of elapsed wait time for <paramref name="configurationReloadWaitTimeout"/> and <paramref name="configurationReloadWaitAttempts"/>.
            </summary>
            <param name="configurationReloadWaitTimeout">Configuration reload wait timeout.</param>
            <param name="configurationReloadWaitAttempts">Configuration reload wait attempts.</param>
            <returns>String representation of elapsed wait time.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase">
            <summary>
            Represents an adapter base class that provides functionality to operate on a 1-second window of data.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.DefaultSourceMeasurementTable">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.SourceMeasurementTable"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.InputCount">
            <summary>
            Gets or sets the expected number of input measurements for a <see cref="T:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.OutputCount">
            <summary>
            Gets or sets the expected number of output measurements for a <see cref="T:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.SubsecondOffsets">
            <summary>
            Gets sub-second offsets based on current <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.FramesPerSecond"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the action adapter expects.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the action adapter will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.SourceMeasurementTable">
            <summary>
            Gets or sets the source measurement table to use for configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.InputMeasurementKeyTypes">
            <summary>
            Gets or sets input measurement <see cref="T:GSF.Units.EE.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeys"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.OutputMeasurementTypes">
            <summary>
            Gets or sets output measurement <see cref="T:GSF.Units.EE.SignalType"/>'s for each of the <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurements"/>, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.Status">
            <summary>
            Returns the detailed status of the <see cref="T:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase" />.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.ProcessDataWindow(GSF.Ticks,GSF.TimeSeries.IMeasurement[0:,0:])">
            <summary>
            Processes 1-second data window.
            </summary>
            <param name="timestamp">Top of second window timestamp.</param>
            <param name="dataWindow">1-second data window.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OneSecondDataWindowAdapterBase.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:GSF.TimeSeries.IFrame" /> of time-aligned collection of <see cref="T:GSF.TimeSeries.IMeasurement" />
            values that arrived within defined <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime" />.
            </summary>
            <param name="frame">Collection of measurements with the same timestamp that arrived within <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime" /> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:GSF.TimeSeries.IFrame" /> within a second ranging from zero to <c><see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond" /> - 1</c>.</param>
            <remarks>
            If user implemented publication function consistently exceeds available publishing time (i.e., <c>1 / <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond" /></c> seconds),
            concentration will fall behind. A small amount of this time is required by the <see cref="T:GSF.TimeSeries.ConcentratorBase" /> for processing overhead, so actual total time
            available for user function process will always be slightly less than <c>1 / <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond" /></c> seconds.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.RoutingPassthroughMethod">
            <summary>
            A set of methods that can be called to route measurements to an adapter that implements <see cref="T:GSF.TimeSeries.Adapters.IOptimizedRoutingConsumer"/>
            Note, this method will be called within a synchronized context.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RoutingPassthroughMethod.ProcessMeasurementList">
            <summary>
            Measurements can be directly passed through to this method without the need for routing/filtering.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingPassthroughMethod.#ctor(System.Action{System.Collections.Generic.List{GSF.TimeSeries.IMeasurement}})">
            <summary>
            Creates <see cref="T:GSF.TimeSeries.Adapters.RoutingPassthroughMethod"/>.
            </summary>
            <param name="processMeasurementList"></param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue">
            <summary>
            The standard and default routing table that uses double buffer queues to route measurements.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue.#ctor">
            <summary>
            Instances a new <see cref="T:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue.Initialize(System.Action{System.String},System.Action{System.Exception})">
            <summary>
            Assigns the status messaging callbacks.
            </summary>
            <param name="onStatusMessage">Raise status messages on this callback</param>
            <param name="onProcessException">Raise exceptions on this callback</param>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue.RouteCount">
            <summary>
            Gets the number of routes in this routing table.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue.PatchRoutingTable(GSF.TimeSeries.Adapters.RoutingTablesAdaptersList,GSF.TimeSeries.Adapters.RoutingTablesAdaptersList)">
            <summary>
            Patches the existing routing table with the supplied adapters.
            </summary>
            <param name="producerAdapters">all of the producers</param>
            <param name="consumerAdapters">all of the consumers</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingDoubleBufferQueue.InjectMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            This method will directly inject measurements into the routing table and use a shared local input adapter. For
            contention reasons, it is not recommended this be its default use case, but it is necessary at times.
            </summary>
            <param name="sender">the sender object</param>
            <param name="measurements">the event arguments</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList">
            <summary>
            Indicates how the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/> have changed from one route calculation to another.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.NewAdapter">
            <summary>
            A list of all <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> that did NOT existed in the old route calculation, but do exist in the new route calculation. 
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.ExistingAdapter">
            <summary>
            A list of all <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> that existed in the old route calculation, and also exist in the new route calculation. 
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.OldAdapter">
            <summary>
            A list of all <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> that existed in the old route calculation, but do NOT exist in the new route calculation. 
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.NewAndExistingAdapters">
            <summary>
            A union of <see cref="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.NewAdapter"/> with <see cref="F:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.ExistingAdapter"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList.#ctor(System.Collections.Generic.HashSet{GSF.TimeSeries.Adapters.IAdapter},System.Collections.Generic.HashSet{GSF.TimeSeries.Adapters.IAdapter})">
            <summary>
            Creates a <see cref="T:GSF.TimeSeries.Adapters.RoutingTablesAdaptersList"/>
            </summary>
            <param name="previousAdapterList">A complete list of all the adapters that existed before.</param>
            <param name="currentAdapterList">A complete list of all the adapters that exist now</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu">
            <summary>
            Represents an alternative routing table that has intentional delays to lower overall CPU utilization.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.GlobalCache.GlobalDestinationLookup">
            <summary>
            Contains all consumers for all adapters regardless of if they are optimized or not.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.GlobalCache.NormalDestinationAdapters">
            <summary>
            Normal as opposed to optimized ones;
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.m_maxPendingMeasurements">
            <summary>
            Once this many measurements have been queued, a route operation will not wait the mandatory wait time
            and will immediately start the routing process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.#ctor">
            <summary>
            Creates a <see cref="T:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu"/>
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.RouteCount">
            <summary>
            Gets the number of routes in this routing table.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.Initialize(System.Action{System.String},System.Action{System.Exception})">
            <summary>
            Assigns the status messaging callbacks.
            </summary>
            <param name="onStatusMessage">Raise status messages on this callback</param>
            <param name="onProcessException">Raise exceptions on this callback</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.PatchRoutingTable(GSF.TimeSeries.Adapters.RoutingTablesAdaptersList,GSF.TimeSeries.Adapters.RoutingTablesAdaptersList)">
            <summary>
            Patches the existing routing table with the supplied adapters.
            </summary>
            <param name="producerAdapters">all of the producers</param>
            <param name="consumerAdapters">all of the consumers</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RouteMappingHighLatencyLowCpu.InjectMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            This method will directly inject measurements into the routing table and use a shared local input adapter. For
            contention reasons, it is not recommended this be its default use case, but it is necessary at times.
            </summary>
            <param name="sender">the sender object</param>
            <param name="measurements">the event arguments</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.RoutingTables">
            <summary>
            Represents the routing tables for the Iaon adapters.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.RoutingTables.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.RoutingTables.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.TimeSeries.Adapters.RoutingTables.#ctor(GSF.TimeSeries.Adapters.IRouteMappingTables)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/> class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RoutingTables.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RoutingTables.InputAdapters">
            <summary>
            Gets or sets the active <see cref="T:GSF.TimeSeries.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RoutingTables.ActionAdapters">
            <summary>
            Gets or sets the active <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.RoutingTables.OutputAdapters">
            <summary>
            Gets or sets the active <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.RoutingTables"/> 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.TimeSeries.Adapters.RoutingTables.CalculateRoutingTables(GSF.TimeSeries.MeasurementKey[])">
            <summary>
            Spawn routing tables recalculation.
            </summary>
            <param name="inputMeasurementKeysRestriction">Input measurement keys restriction.</param>
            <remarks>
            Set the <paramref name="inputMeasurementKeysRestriction"/> to null to use full adapter I/O routing demands.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.InjectMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            This method will directly inject measurements into the routing table and use a shared local input adapter. For
            contention reasons, it is not recommended this be its default use case, but it is necessary at times.
            </summary>
            <param name="sender">the sender object</param>
            <param name="measurements">the event arguments</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.BroadcastMeasurementsHandler(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            Event handler for distributing new measurements in a broadcast fashion.
            </summary>
            <param name="sender">Event source reference to adapter that generated new measurements.</param>
            <param name="e">Event arguments containing a collection of new measurements.</param>
            <remarks>
            Time-series framework uses this handler to route new measurements to the action and output adapters; adapter will handle filtering.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.RoutingTables.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.RoutingTables.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.HandleConnectOnDemandAdapters(System.Collections.Generic.ISet{GSF.TimeSeries.MeasurementKey},GSF.TimeSeries.Adapters.IInputAdapter[],GSF.TimeSeries.Adapters.IActionAdapter[],GSF.TimeSeries.Adapters.IOutputAdapter[])">
            <summary>
            Starts or stops connect on demand adapters based on current state of demanded input or output signals.
            </summary>
            <param name="inputMeasurementKeysRestriction">The set of signals to be produced by the chain of adapters to be handled.</param>
            <param name="inputAdapterCollection">Collection of input adapters at start of routing table calculation.</param>
            <param name="actionAdapterCollection">Collection of action adapters at start of routing table calculation.</param>
            <param name="outputAdapterCollection">Collection of output adapters at start of routing table calculation.</param>
            <remarks>
            Set the <paramref name="inputMeasurementKeysRestriction"/> to null to use full adapter routing demands.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.TraverseDependencyChain(System.Collections.Generic.ISet{GSF.TimeSeries.MeasurementKey},GSF.TimeSeries.Adapters.IInputAdapter[],GSF.TimeSeries.Adapters.IActionAdapter[],GSF.TimeSeries.Adapters.IOutputAdapter[])">
            <summary>
            Determines the set of adapters in the dependency chain that produces the set of signals in the
            <paramref name="inputMeasurementKeysRestriction"/> and returns the set of input signals required by the
            adapters in the chain and the set of output signals produced by the adapters in the chain.
            </summary>
            <param name="inputMeasurementKeysRestriction">The set of signals that must be produced by the dependency chain.</param>
            <param name="inputAdapterCollection">Collection of input adapters at start of routing table calculation.</param>
            <param name="actionAdapterCollection">Collection of action adapters at start of routing table calculation.</param>
            <param name="outputAdapterCollection">Collection of output adapters at start of routing table calculation.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.RoutingTables.TraverseDependencyChain(GSF.TimeSeries.Adapters.IInputAdapter[],GSF.TimeSeries.Adapters.IActionAdapter[],GSF.TimeSeries.Adapters.IOutputAdapter[])">
            <summary>
            Determines the set of adapters in the dependency chain for all adapters in the system which are either not connect or demand or are demanded.
            </summary>
            <param name="inputAdapterCollection">Collection of input adapters at start of routing table calculation.</param>
            <param name="actionAdapterCollection">Collection of action adapters at start of routing table calculation.</param>
            <param name="outputAdapterCollection">Collection of output adapters at start of routing table calculation.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.ActionAdapterBase">
            <summary>
            Represents the base class for action adapters.
            </summary>
            <remarks>
            This base class acts as a measurement concentrator which time aligns all incoming measurements for proper processing.
            Derived classes are expected to override <see cref="M:GSF.TimeSeries.ConcentratorBase.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)"/> to handle time aligned measurements
            and call <see cref="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterBase.ConfigurationChanged">
            <summary>
            Event is raised when adapter is aware of a configuration change.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.Name">
            <summary>
            Gets name of the action adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this action adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to action adapter.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.DataSource"/> table:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='GSF' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multiplier to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            <para>
            Note that framesPerSecond, lagTime and leadTime are required parameters, all other parameters are optional.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.ConnectionInfo">
            <summary>
            Gets connection info for adapter, if any.
            </summary>
            <remarks>
            For example, this could return IP or host name of source connection.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:GSF.TimeSeries.Adapters.ActionAdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or otherwise connect on demand.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:GSF.TimeSeries.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the action adapter expects.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the action adapter will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.StartTimeConstraint">
            <summary>
            Gets the start time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.MinimumMeasurementsToUse">
            <summary>
            Gets or sets minimum number of input measurements required for adapter.  Set to -1 to require all.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the action adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.ShowConcentratorStatus">
            <summary>
            Gets flags that determines if <see cref="T:GSF.TimeSeries.ConcentratorBase"/> class status should be included in <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/> status.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the action adapter.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/> 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.TimeSeries.Adapters.ActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterBase.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.Start">
            <summary>
            Starts the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.Stop">
            <summary>
            Stops the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.ExamineQueueState">
            <summary>
            Examines the concentrator frame queue state of the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.ResetStatistics">
            <summary>
            Resets the statistics of the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the initialized state of the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing. Measurements are automatically filtered to the defined <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing constraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multiple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.TryGetMinimumNeededMeasurements(GSF.TimeSeries.IFrame,GSF.TimeSeries.IMeasurement[]@)">
            <summary>
            Attempts to retrieve the minimum needed number of measurements from the frame (as specified by MinimumMeasurementsToUse)
            </summary>
            <param name="frame">Source frame for the measurements</param>
            <param name="measurements">Return array of measurements</param>
            <returns>True if minimum needed number of measurements were returned in measurement array</returns>
            <remarks>
            <para>
            Remember this function will *only* return the minimum needed number of measurements, no more.  If you want to use
            all available measurements in your adapter you should just use Frame.Measurements.Values directly.
            </para>
            <para>
            Note that the measurements array parameter will be created if the reference is null, otherwise if caller creates
            array it must be sized to MinimumMeasurementsToUse
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convenience.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterBase.OnConfigurationChanged">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterBase.ConfigurationChanged"/> event.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.ActionAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> implementations.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the action adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.UnpublishedSamples">
            <summary>
            This event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.RequestTemporalSupport">
            <summary>
            Event is raised when temporal support is requested.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterCollection.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterCollection.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterCollection.ConvertReadonlyCollectionsToWritable">
            <summary>
            Gets or sets flag that determines if readonly collections should be converted
            to writable so published measurement sets can be augmented by filter adapters.
            </summary>
            <remarks>
            When filter adapters are detected in the <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, collections that
            output new measurements should convert all readonly measurement collections into
            collections that can be modified so that measurements can be removed if needed.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.ActionAdapterCollection.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> implementation in
            this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.OnNewMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">New measurements event arguments.</param>
            <remarks>
            This event handler is overridable to allow derived class interception of all
            measurements flowing out of the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.UnpublishedSamples"/> event.
            </summary>
            <param name="unpublishedSamples">Total number of unpublished seconds of data in the queue.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.OnRequestTemporalSupport">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.ActionAdapterCollection.RequestTemporalSupport"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.InitializeItem(GSF.TimeSeries.Adapters.IActionAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> implementation.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.ActionAdapterCollection.DisposeItem(GSF.TimeSeries.Adapters.IActionAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> to dispose.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.AdapterBase">
            <summary>
            Represents the base class for any adapter.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.AdapterBase.DefaultMeasurementReportingInterval">
            <summary>
            Default measurement reporting interval.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.AdapterBase.DefaultInitializationTimeout">
            <summary>
            Default initialization timeout.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterBase.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="E:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterBase.ConfigurationChanged">
            <summary>
            Event is raised when adapter is aware of a configuration change.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterBase.Disposed">
            <summary>
            Event is raised when <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> is disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Name">
            <summary>
            Gets or sets the name of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide a name for the adapter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.DataSource"/> table:<br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='GSF' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multiplier to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.ConnectionInfo">
            <summary>
            Gets connection info for adapter, if any.
            </summary>
            <remarks>
            For example, this could return IP or host name of source connection.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:GSF.TimeSeries.Adapters.AdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or otherwise connect on demand.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> expects, if any.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements handled thus far by the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.MeasurementReportingInterval">
            <summary>
            Gets or sets the measurement reporting interval.
            </summary>
            <remarks>
            This is used to determined how many measurements should be processed before reporting status.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Base class simply starts or stops <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> based on flag value. Derived classes should
            extend this if needed to enable or disable operational state of the adapter based on flag value.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.StartTime">
            <summary>
            Gets the UTC time this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> was started.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.StopTime">
            <summary>
            Gets the UTC time this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> was stopped.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.StartTimeConstraint">
            <summary>
            Gets the start time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the adapter has been active.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:GSF.TimeSeries.Adapters.AdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.Status">
            <summary>
            Gets the status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterBase.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> 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.TimeSeries.Adapters.AdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.Start">
            <summary>
            Starts the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.Stop">
            <summary>
            Stops the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the initialized state of the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing constraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multiple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convenience.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.OnConfigurationChanged">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ConfigurationChanged"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.IncrementProcessedMeasurements(System.Int64)">
            <summary>
            Safely increments the total processed measurements.
            </summary>
            <param name="totalAdded"></param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.GetStatusWithMessageLevelPrefix(System.String,GSF.Diagnostics.MessageLevel)">
            <summary>
            Gets status message with common time-series messaging prefix for given <see cref="T:GSF.Diagnostics.MessageLevel"/>.
            </summary>
            <param name="status">Status message.</param>
            <param name="level">Message level.</param>
            <returns>Status message with common time-series messaging prefix for given <see cref="T:GSF.Diagnostics.MessageLevel"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.ParseFilterExpression(System.String,System.String@,System.String@,System.String@,System.Int32@)">
            <summary>
            Parses a standard FILTER styles expression into its constituent parts.
            </summary>
            <param name="filterExpression">Filter expression to parse.</param>
            <param name="tableName">Name of table in filter expression.</param>
            <param name="whereExpression">Where expression in filter expression.</param>
            <param name="sortField">Sort field, if any, in filter expression.</param>
            <param name="takeCount">Total row restriction, if any, in filter expression.</param>
            <returns><c>true</c> if filter expression was successfully parsed; otherwise <c>false</c>.</returns>
            <remarks>
            This method can be safely called from multiple threads.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.ParseTimeTag(System.String)">
            <summary>
            Parses a string formatted as an absolute or relative time tag.
            </summary>
            <param name="timetag">String formatted as an absolute or relative time tag.</param>
            <returns>
            <see cref="T:System.DateTime"/> representing the parsed <paramref name="timetag"/> string formatted as an absolute or relative time tag.
            </returns>
            <remarks>
            <para>
            Relative times are parsed based on an offset to current time (UTC) specified by "*".
            </para>
            <para>
            The <paramref name="timetag"/> parameter can be specified in one of the following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*+2d</term>
                    <description>Evaluates to 2 days from <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="timetag"/> parameter cannot be null or empty.</exception>
            <exception cref="T:System.FormatException"><paramref name="timetag"/> does not contain a valid string representation of a date and time.</exception>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.LoadInputSourceIDs(GSF.TimeSeries.Adapters.IAdapter,System.String)">
            <summary>
            Loads an <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> or <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> instance's input measurement keys from a specific set of source ID's.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to load input measurement keys for.</param>
            <param name="measurementTable">Measurement table name used to load input source ID's.</param>
            <remarks>
            Any existing input measurement keys will be distinctly merged with those associated with specified source ID's.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.LoadOutputSourceIDs(GSF.TimeSeries.Adapters.IAdapter,System.String)">
            <summary>
            Loads an <see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> or <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> instance's output measurements from a specific set of source ID's.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to load output measurements for.</param>
            <param name="measurementTable">Measurement table name used to load output source ID's.</param>
            <remarks>
            Any existing output measurements will be distinctly merged with those associated with specified source ID's.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.ParseInputMeasurementKeys(System.Data.DataSet,System.Boolean,System.String,System.String)">
            <summary>
            Parses input measurement keys from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define input measurement keys.</param>
            <param name="allowSelect">Determines if database access via "SELECT" statement should be allowed for defining input measurement keys (see remarks about security).</param>
            <param name="value">Value of setting used to define input measurement keys, typically "inputMeasurementKeys".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected input measurement keys.</returns>
            <remarks>
            Security warning: allowing SELECT statements, i.e., setting <paramref name="allowSelect"/> to <c>true</c>, should only be allowed in cases where SQL
            injection would not be an issue (e.g., in places where a user can already access the database and would have nothing to gain via an injection attack).
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.ParseOutputMeasurementKeys(System.Data.DataSet,System.Boolean,System.String,System.String)">
            <summary>
            Parses output measurement keys from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define output measurements.</param>
            <param name="allowSelect">Determines if database access via "SELECT" statement should be allowed for defining output measurement keys (see remarks about security).</param>
            <param name="value">Value of setting used to define output measurements, typically "outputMeasurements".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected output measurements.</returns>
            <remarks>
            Security warning: allowing SELECT statements, i.e., setting <paramref name="allowSelect"/> to <c>true</c>, should only be allowed in cases where SQL
            injection would not be an issue (e.g., in places where a user can already access the database and would have nothing to gain via an injection attack).
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterBase.ParseOutputMeasurements(System.Data.DataSet,System.Boolean,System.String,System.String)">
            <summary>
            Parses output measurements from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define output measurements.</param>
            <param name="allowSelect">Determines if database access via "SELECT" statement should be allowed for defining output measurements (see remarks about security).</param>
            <param name="value">Value of setting used to define output measurements, typically "outputMeasurements".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected output measurements.</returns>
            <remarks>
            Security warning: allowing SELECT statements, i.e., setting <paramref name="allowSelect"/> to <c>true</c>, should only be allowed in cases where SQL
            injection would not be an issue (e.g., in places where a user can already access the database and would have nothing to gain via an injection attack).
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementations.
            </summary>
            <typeparam name="T">Type of <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> this collection contains.</typeparam>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.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="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConfigurationChanged">
            <summary>
            Event is raised when adapter is aware of a configuration change.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Disposed">
            <summary>
            Event is raised when this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> is disposed or an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> in the collection is disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Name">
            <summary>
            Gets or sets the name of this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter collection has been initialized successfully.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            Updates to this property will cascade to all items in this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> used to <see cref="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Initialize"/> this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InitializationTimeout">
            <summary>
            Gets or sets the default adapter time that represents the maximum time system will wait during <see cref="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter collection should automatically start items when <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.AutoInitialize"/> is <c>false</c>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> expects, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            The collection classes simply track this value if assigned, no automatic action is taken.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            The collection classes simply track this value if assigned, no automatic action is taken.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter collection supports temporal processing.
            </summary>
            <remarks>
            For collections this defaults to <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StartTimeConstraint">
            <summary>
            Gets the start time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter collection and applies this interval to each adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the adapter has been active.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation
            in the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StartTime">
            <summary>
            Gets the UTC time this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> was started.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StopTime">
            <summary>
            Gets the UTC time this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> was stopped.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> is read-only.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.MonitorTimerEnabled">
            <summary>
            Gets or sets flag that determines if monitor timer should be used for monitoring processed measurement statistics for the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.AutoInitialize">
            <summary>
            Gets flag that determines if <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`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.TimeSeries.Adapters.AdapterCollectionBase`1.Initialize">
            <summary>
            Loads all <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementations defined in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/>.
            </summary>
            <remarks>
            <para>
            Table name specified in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </para>
            <para>
            Note that when calling this method any existing items will be cleared allowing a "re-initialize".
            </para>
            </remarks>
            <exception cref="T:System.NullReferenceException">DataSource is null.</exception>
            <exception cref="T:System.InvalidOperationException">DataMember is null or empty.</exception>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.TryCreateAdapter(System.Data.DataRow,`0@)">
            <summary>
            Attempts to create an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            See <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> property for expected <see cref="T:System.Data.DataRow"/> column names.
            </remarks>
            <exception cref="T:System.NullReferenceException"><paramref name="adapterRow"/> is null.</exception>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.TryGetAdapterByID(System.UInt32,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.TryGetAdapterByName(System.String,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.TryGetAdapter``1(``0,System.Func{`0,``0,System.Boolean},`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="value"/> given <paramref name="testItem"/> function.
            </summary>
            <param name="value">Value of adapter to get.</param>
            <param name="testItem">Function delegate used to test item <paramref name="value"/>.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="value"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Start">
            <summary>
            Starts, or restarts, each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation in this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.Stop">
            <summary>
            Stops each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation in this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter collection and applies this constraint to each adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing constraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multiple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convenience.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnProcessException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.OnConfigurationChanged">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ConfigurationChanged"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InsertItem(System.Int32,`0)">
            <summary>
            Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1"/> the specified index.
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation to insert.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.SetItem(System.Int32,`0)">
            <summary>
            Assigns a new element to the <see cref="T:System.Collections.ObjectModel.Collection`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index for which item should be assigned.</param>
            <param name="item">The <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation to assign.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`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>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.InitializeItem(`0)">
            <summary>
            Wires events and initializes new <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DisposeItem(`0)">
            <summary>
            Un-wires events and disposes of <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to dispose.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.AdapterCommandAttribute">
            <summary>
            Represents an attribute that allows a method in an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> class to be exposed as
            an invokable command.
            </summary>
            <remarks>
            Only public methods will be exposed as invokable.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCommandAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.AdapterCommandAttribute"/> with the specified <paramref name="description"/> value.
            </summary>
            <param name="description">Assigns the description for this adapter command.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AdapterCommandAttribute.#ctor(System.String,System.String[])">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.AdapterCommandAttribute"/> with the specified <paramref name="description"/> value.
            </summary>
            <param name="description">Assigns the description for this adapter command.</param>
            <param name="allowedRoles">Assigns the roles which are allowed to invoke this adapter command.</param>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCommandAttribute.Description">
            <summary>
            Gets the description of this adapter command.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AdapterCommandAttribute.AllowedRoles">
            <summary>
            Gets the roles which are allowed to invoke this adapter command.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.AllAdaptersCollection">
            <summary>
            Represents a collection of all <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/> implementations (i.e., a collection of <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/>'s).
            </summary>
            <remarks>
            This collection allows all <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/> implementations to be managed as a group.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AllAdaptersCollection.AutoInitialize">
            <summary>
            Gets flag that determines if <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
            <remarks>
            We don't auto-initialize collections added to the <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/> since no data source
            will be available when the collections are being created.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.AllAdaptersCollection.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            Updates to this property will cascade to all items in this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:GSF.TimeSeries.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.Initialize">
            <summary>
            Initializes each <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/> implementation in this <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.InitializeItem(GSF.TimeSeries.Adapters.IAdapterCollection)">
            <summary>
            Wires events and initializes new <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementation.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.AddNewAdapters(System.Data.DataSet)">
            <summary>
            Create newly defined adapters in the adapter collection configurations. 
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.RemoveOldAdapters(System.Data.DataSet)">
            <summary>
            Remove adapters that are no longer present in the adapter collection configurations. 
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.TryGetAnyAdapterByID(System.UInt32,GSF.TimeSeries.Adapters.IAdapter@,GSF.TimeSeries.Adapters.IAdapterCollection@)">
            <summary>
            Attempts to get any adapter in all collections with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <param name="adapterCollection">Adapter collection reference if <paramref name="adapter"/> is found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.TryGetAnyAdapterByName(System.String,GSF.TimeSeries.Adapters.IAdapter@,GSF.TimeSeries.Adapters.IAdapterCollection@)">
            <summary>
            Attempts to get any adapter in all collections with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <param name="adapterCollection">Adapter collection reference if <paramref name="adapter"/> is found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> based on its ID from any collection.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            This method traverses all collections looking for an adapter with the specified ID.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.TryCreateAdapter(System.Data.DataRow,GSF.TimeSeries.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.AllAdaptersCollection.TryGetAdapterByID(System.UInt32,GSF.TimeSeries.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase">
            <summary>
            Represents the base class for simple, non-time-aligned, action adapters.
            </summary>
            <remarks>
            This base class acts on incoming measurements, in a non-time-aligned fashion, for general processing. If derived
            class needs time-aligned data for processing, the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterBase"/> class should be used instead.
            Derived classes are expected call <see cref="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultRespectInputDemands">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RespectInputDemands"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultRespectOutputDemands">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RespectOutputDemands"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultFramesPerSecond">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.FramesPerSecond"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultLagTime">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LagTime"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultLeadTime">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LeadTime"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultTrackLatestMeasurements">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.TrackLatestMeasurements"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultUseLocalClockAsRealTime">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DefaultFallBackOnLocalClock">
            <summary>
            Default value for the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.FallBackOnLocalClock"/> property.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UnpublishedSamples">
            <summary>
            This event is raised by derived class, if needed, to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase"/> expects, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.FramesPerSecond">
            <summary>
            Gets or sets the frames per second to be used by the <see cref="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase"/>.
            </summary>
            <remarks>
            This value is only tracked in the <see cref="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase"/>, derived class will determine its use.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.TrackLatestMeasurements">
            <summary>
            Gets or sets flag to start tracking the absolute latest received measurement values.
            </summary>
            <remarks>
            Latest received measurement value will be available via the <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LatestMeasurements"/> property.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.LatestMeasurements">
            <summary>
            Gets reference to the collection of absolute latest received measurement values.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real time.
            </summary>
            <remarks>
            Use your local system clock as real time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            Turn this off if the class is intended to process historical data.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.FallBackOnLocalClock">
            <summary>
            Gets or sets flag that determines whether to fall back on local clock time as real time when time is unreasonable.
            </summary>
            <remarks>
            This property is only applicable when <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime"/> is <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.RealTime">
            <summary>
            Gets the most accurate time value that is available. If <see cref="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime"/> = <c>true</c>, then
            this function will return <see cref="P:System.DateTime.UtcNow"/>. Otherwise, this function will return the timestamp of the
            most recent measurement.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.FacileActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.FacileActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.QueueMeasurementForProcessing(GSF.TimeSeries.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.FacileActionAdapterBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.FacileActionAdapterBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IActionAdapter">
            <summary>
            Represents the abstract interface for any action adapter.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IActionAdapter.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IActionAdapter.UnpublishedSamples">
            <summary>
            This event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IActionAdapter.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> to apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> to apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IActionAdapter.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IActionAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues measurements for processing.  Measurements are automatically filtered to the defined <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for calculation processing.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IAdapter">
            <summary>
            Represents the abstract interface for any adapter.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IAdapter.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IAdapter.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to capture any exceptions that might be thrown by
            user code in any processing to prevent third-party code from causing an unhandled exception
            in the host.  Errors are reported via this event so host administrators will be aware of the exception.
            Any needed connection cycle to data adapter should be restarted when an exception is encountered.
            </para>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the exception that was thrown.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IAdapter.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:GSF.TimeSeries.Adapters.IAdapter.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IAdapter.ConfigurationChanged">
            <summary>
            Event is raised when adapter is aware of a configuration change.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.ConnectionInfo">
            <summary>
            Gets connection info for adapter, if any.
            </summary>
            <remarks>
            For example, this could return IP or host name of source connection.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:GSF.TimeSeries.Adapters.IAdapter.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.Name">
            <summary>
            Gets or sets name of this <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.ID">
            <summary>
            Gets or sets the numeric ID associated with this <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
            <remarks>
            Implementers only need to track this value.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:GSF.TimeSeries.Adapters.IAdapter.Start"/> for initialization.
            </summary>
            <remarks>
            Implementers should use value <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or connect on demand.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the adapter expects.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the adapter will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.StartTimeConstraint">
            <summary>
            Gets the start time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:GSF.TimeSeries.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapter.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapter.Start">
            <summary>
             Starts the adapter, if it is not already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapter.Stop">
            <summary>
            Stops the adapter.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapter.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line adapter status.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current adapter status.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing constraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multiple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IAdapterExtensions">
            <summary>
            Defines static extension functions for <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> implementations.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterExtensions.TemporalConstraintIsDefined(GSF.TimeSeries.Adapters.IAdapter)">
            <summary>
            Returns <c>true</c> if <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> has a temporal constraint defined, i.e., either
            <see cref="P:GSF.TimeSeries.Adapters.IAdapter.StartTimeConstraint"/> or <see cref="P:GSF.TimeSeries.Adapters.IAdapter.StopTimeConstraint"/> is not
            set to its default value.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance to test.</param>
            <returns><c>true</c> if <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> has a temporal constraint defined.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterExtensions.InputMeasurementKeys(GSF.TimeSeries.Adapters.IAdapter)">
            <summary>
            Returns the <see cref="T:GSF.TimeSeries.MeasurementKey"/> values of the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> input measurements.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance input measurements to convert.</param>
            <returns><see cref="T:GSF.TimeSeries.MeasurementKey"/> values of the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> input measurements.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterExtensions.OutputMeasurementKeys(GSF.TimeSeries.Adapters.IAdapter)">
            <summary>
            Returns the <see cref="T:GSF.TimeSeries.MeasurementKey"/> values of the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> output measurements.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> instance output measurements to convert.</param>
            <returns><see cref="T:GSF.TimeSeries.MeasurementKey"/> values of the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> output measurements.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterExtensions.InputMeasurementKeys``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets a distinct list of input measurement keys for all of the provided adapters.
            </summary>
            <typeparam name="T">Type of <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</typeparam>
            <param name="adapters">Source <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> enumeration.</param>
            <returns>Distinct list of input measurement keys for all of the provided adapters.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterExtensions.OutputMeasurementKeys``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets a distinct list of output measurement keys for all of the provided adapters.
            </summary>
            <typeparam name="T">Type of <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</typeparam>
            <param name="adapters">Source <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> enumeration.</param>
            <returns>Distinct list of output measurement keys for all of the provided adapters.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IAdapterCollection">
            <summary>
            Represents the abstract interface for a collection of adapters.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IAdapterCollection.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:GSF.TimeSeries.Adapters.IAdapter.DataSource"/> used to initialize this <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:GSF.TimeSeries.Adapters.IAdapterCollection.DataMember"/> from <see cref="P:GSF.TimeSeries.Adapters.IAdapter.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterCollection.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterCollection.TryGetAdapterByID(System.UInt32,GSF.TimeSeries.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterCollection.TryGetAdapterByName(System.String,GSF.TimeSeries.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterCollection.TryCreateAdapter(System.Data.DataRow,GSF.TimeSeries.Adapters.IAdapter@)">
            <summary>
            Attempts to create an <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IAdapterCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IInputAdapter">
            <summary>
            Represents the abstract interface for any incoming adapter.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IInputAdapter.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IInputAdapter.ProcessingComplete">
            <summary>
            Indicates to the host that processing for the input adapter has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IInputAdapter.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IInputAdapter.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.InputAdapterBase">
            <summary>
            Represents the base class for any incoming input adapter.
            </summary>
            <remarks>
            Derived classes are expected to call <see cref="M:GSF.TimeSeries.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})"/> when new measurements are received.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.InputAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.InputAdapterBase.ProcessingComplete">
            <summary>
            Indicates to the host that processing for the input adapter has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.IsConnected">
            <summary>
            Gets flag that determines if <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/> is connected.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data input connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data input source is connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data input source.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> expects, if any.
            </summary>
            <remarks>
            Redefined to hide attributes defined in the base class.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterBase.EnableConnectionErrors">
            <summary>
            When false, connection errors do not get logged through OnProcessException. When true, connection errors will be logged normally.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/> 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.TimeSeries.Adapters.InputAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/> and initiates connection cycle to data input source.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data input source.
            </summary>
            <remarks>
            Derived classes should attempt connection to data input source here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.OnConnected">
            <summary>
            Called when data input source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:GSF.TimeSeries.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:GSF.TimeSeries.Adapters.InputAdapterBase"/> and disconnects from data input source.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data input source.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data input source here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:GSF.TimeSeries.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.InputAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterBase.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.InputAdapterBase.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.InputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> implementations.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.InputAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the input data source.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.InputAdapterCollection.ProcessingComplete">
            <summary>
            Indicates to the host that processing for one of the input adapters has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterCollection.ConvertReadonlyCollectionsToWritable">
            <summary>
            Gets or sets flag that determines if readonly collections should be converted
            to writable so published measurement sets can be augmented by filter adapters.
            </summary>
            <remarks>
            When filter adapters are detected in the <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, collections that
            output new measurements should convert all readonly measurement collections into
            collections that can be modified so that measurements can be removed if needed.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.InputAdapterCollection.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.InputAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.OnNewMeasurements(System.Object,GSF.EventArgs{System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement}})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.InputAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">New measurements event arguments.</param>
            <remarks>
            This event handler is overridable to allow derived class interception of all
            measurements flowing out of the <see cref="T:GSF.TimeSeries.Adapters.InputAdapterCollection"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.InputAdapterCollection.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.InitializeItem(GSF.TimeSeries.Adapters.IInputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> implementation.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.InputAdapterCollection.DisposeItem(GSF.TimeSeries.Adapters.IInputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> to dispose.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.IOutputAdapter">
            <summary>
            Represents that abstract interface for any outgoing adapter.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.IOutputAdapter.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to report current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IOutputAdapter.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IOutputAdapter.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.IOutputAdapter.OutputIsForArchive">
            <summary>
            Returns a flag that determines if measurements sent to this <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> are
            destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/> to calculate statistics on how
            many measurements have been archived per minute. Historians would normally set this property
            to <c>true</c>; other custom exports would set this property to <c>false</c>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IOutputAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues measurements for processing. Measurements are automatically filtered to the defined <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.IOutputAdapter.RemoveMeasurements(System.Int32)">
            <summary>
            Implementations of this function should remove a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more
            points are requested than there are points available - all points in the queue should be removed.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.NamespaceDoc">
            <summary>
            Contains classes that define an adapter interface layer used to route measurements through a cycle of input, sorted actions and queued output.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.OutputAdapterBase">
            <summary>
            Represents the base class for any outgoing data stream.
            </summary>
            <remarks>
            This base class acts as a measurement queue so that output adapters can temporarily go
            offline without losing any measurements to be processed. Derived classes are expected to
            override <see cref="M:GSF.TimeSeries.Adapters.OutputAdapterBase.ProcessMeasurements(GSF.TimeSeries.IMeasurement[])"/> to handle queued measurements.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.OutputAdapterBase.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Base class reports current queue size of unprocessed measurements so that if queue size reaches
            an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.RequeueOnException">
            <summary>
            Gets or sets whether or not to automatically place measurements back into the processing
            queue if an exception occurs while processing.  Defaults to false.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:GSF.TimeSeries.MeasurementKey.Source"/> values used to filter input measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.OutputIsForArchive">
            <summary>
            Gets the flag that determines if measurements sent to this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> are destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/> to calculate statistics on how many measurements have
            been archived per minute. Historians would normally set this property to <c>true</c>; other custom exports would set
            this property to <c>false</c>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> implementation supports temporal processing.
            </summary>
            <remarks>
            For output adapters that archive data it is assumed that the desired behavior will be to not support temporal processing
            since the data being processed has already been archived (i.e., no need to attempt to rearchive old data). As a result
            the default behavior for an output adapter is to not support temporal processing when <see cref="P:GSF.TimeSeries.Adapters.OutputAdapterBase.OutputIsForArchive"/>
            is <c>true</c>. If you have an output adapter that you want to support temporal data processing independent of the
            <see cref="P:GSF.TimeSeries.Adapters.OutputAdapterBase.OutputIsForArchive"/> value, then override this property and force the base value to the desired state.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the output adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data output stream connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data output stream connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data output adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.MetadataRefreshOperation">
            <summary>
            Gets the operation that calls <see cref="M:GSF.TimeSeries.Adapters.OutputAdapterBase.ExecuteMetadataRefresh"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.InternalProcessQueue">
            <summary>
            Allows derived class access to internal processing queue.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.  Derived classes should extend status with implementation specific information.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> will produce, if any.
            </summary>
            <remarks>
            Redefined to hide attributes defined in the base class.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> 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.TimeSeries.Adapters.OutputAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.RefreshMetadata">
            <summary>
            Initiates request for metadata refresh for <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/>, if implemented.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.ExecuteMetadataRefresh">
            <summary>
            Executes the metadata refresh in a synchronous fashion.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> and initiates connection cycle to data output stream.
            </summary>		
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data output stream.
            </summary>
            <remarks>
            Derived classes should attempt connection to data output stream here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.OnConnected">
            <summary>
            Called when data output source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:GSF.TimeSeries.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> and disconnects from data output stream.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data output stream.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data output stream here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:GSF.TimeSeries.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.QueueMeasurementForProcessing(GSF.TimeSeries.IMeasurement)">
            <summary>
            Queues a single measurement for processing. Measurement is automatically filtered to the defined <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing. Measurements are automatically filtered to the defined <see cref="P:GSF.TimeSeries.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.ProcessMeasurements(GSF.TimeSeries.IMeasurement[])">
            <summary>
            Serializes measurements to data output stream.
            </summary>
            <remarks>
            <para>
            Derived classes must implement this function to process queued measurements.
            For example, this function would "archive" measurements if output adapter is for a historian.
            </para>
            <para>
            It is important that consumers "resume" connection cycle if processing fails (e.g., connection
            to archive is lost). Here is an example:
            <example>
            <code>
            protected virtual void ProcessMeasurements(IMeasurement[] measurements)
            {
                try
                {
                    // Process measurements...
                    foreach (IMeasurement measurement in measurement)
                    {
                        ArchiveMeasurement(measurement);
                    }
                }
                catch (Exception)
                {                
                    // So long as user hasn't requested to stop, restart connection cycle
                    if (Enabled)
                        Start();
                }
            }
            </code>
            </example>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.RemoveMeasurements(System.Int32)">
            <summary>
            This removes a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.Flush">
            <summary>
            Blocks the current thread, if the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> is connected, until all items
            in <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> queue are processed, and then stops processing.
            </summary>
            <remarks>
            <para>
            It is possible for items to be added to the queue while the flush is executing. The flush will continue to
            process items as quickly as possible until the queue is empty. Unless the user stops queuing items to be
            processed, the flush call may never return (not a happy situation on shutdown).
            </para>
            <para>
            The <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterBase"/> 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 queue.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterBase.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.OutputAdapterBase.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="T:GSF.TimeSeries.Adapters.OutputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementations.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Adapters.OutputAdapterCollection.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation reports its current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterCollection.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed and destined for archive thus far by each
            <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation in the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Adapters.OutputAdapterCollection.OutputIsForArchive">
            <summary>
            Returns a flag that determines if all measurements sent to this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/> are
            destined for archival.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation in
            this <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.RemoveMeasurements(System.Int32)">
            <summary>
            This function removes a range of measurements from the internal measurement queues. Note that the requested
            <paramref name="total"/> will be removed from each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation in this
            <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="total">Total measurements to remove from the each <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> queue.</param>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Adapters.OutputAdapterCollection.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.InitializeItem(GSF.TimeSeries.Adapters.IOutputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation.</param>
        </member>
        <member name="M:GSF.TimeSeries.Adapters.OutputAdapterCollection.DisposeItem(GSF.TimeSeries.Adapters.IOutputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:GSF.TimeSeries.Adapters.IOutputAdapter"/> to dispose.</param>
        </member>
        <member name="T:GSF.TimeSeries.AlarmState">
            <summary>
            Represents the two states that an alarm can be in: raised or cleared.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmState.Cleared">
            <summary>
            Indicates that an alarm is cleared.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmState.Raised">
            <summary>
            Indicates that an alarm has been raised.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.AlarmSeverity">
            <summary>
            Represents the severity of alarms.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.None">
            <summary>
            Indicates that an alarm is of no importance.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Information">
            <summary>
            Indicates that an alarm is informative, but not dangerous.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Low">
            <summary>
            Indicates that an alarm is not very important.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.MediumLow">
            <summary>
            Indicates that an alarm is somewhat important.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Medium">
            <summary>
            Indicates that an alarm is moderately importance.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.MediumHigh">
            <summary>
            Indicates that an alarm is important.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.High">
            <summary>
            Indicates that an alarm is very important.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Unreasonable">
            <summary>
            Indicates an alarm for a value that is unreasonable.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Critical">
            <summary>
            Indicates than an alarm signifies a dangerous situation.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Latched">
            <summary>
            Indicates an alarm for a value that is latched, i.e., flat-lined.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmSeverity.Error">
            <summary>
            Indicates that an alarm reports bad data.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.AlarmOperation">
            <summary>
            Represents the operation to be performed
            when testing values from an incoming signal.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.Equal">
            <summary>
            Internal range test
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.NotEqual">
            <summary>
            External range test
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.GreaterOrEqual">
            <summary>
            Upper bound
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.LessOrEqual">
            <summary>
            Lower bound
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.GreaterThan">
            <summary>
            Upper limit
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.LessThan">
            <summary>
            Lower limit
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.AlarmOperation.Flatline">
            <summary>
            Latched value
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Alarm">
            <summary>
            Represents an alarm that tests the values of
            an incoming signal to determine the state of alarm.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Alarm.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Alarm"/> class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Alarm.#ctor(GSF.TimeSeries.AlarmOperation)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Alarm"/> class.
            </summary>
            <param name="operation">The operation to be performed when testing values from the incoming signal.</param>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.ID">
            <summary>
            Gets or sets the identification number of the alarm.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.TagName">
            <summary>
            Gets or sets the tag name of the alarm.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.SignalID">
            <summary>
            Gets or sets the identification number of the
            signal whose value is monitored by the alarm.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.AssociatedMeasurementID">
            <summary>
            Gets or sets the identification number of
            the measurements generated for alarm events.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Description">
            <summary>
            Gets or sets the description of the alarm.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Operation">
            <summary>
            Gets or sets the operation to be performed
            when testing values from the incoming signal.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Severity">
            <summary>
            Gets or sets the severity of the alarm.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.SetPoint">
            <summary>
            Gets or sets the value to be compared against
            the signal to determine whether to raise the
            alarm. This value is irrelevant for the
            <see cref="F:GSF.TimeSeries.AlarmOperation.Flatline"/> operation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Tolerance">
            <summary>
            Gets or sets a tolerance window around the
            <see cref="P:GSF.TimeSeries.Alarm.SetPoint"/> to use when comparing
            against the value of the signal. This value
            is only relevant for the <see cref="F:GSF.TimeSeries.AlarmOperation.Equal"/>
            and <see cref="F:GSF.TimeSeries.AlarmOperation.NotEqual"/> operations.
            </summary>
            <remarks>
            <para>The equal and not equal operations are actually
            internal and external range tests based on the setpoint
            and the tolerance. The two tests are performed as follows.</para>
            
            <list type="bullet">
            <item>Equal: <c>(value &gt;= SetPoint - Tolerance) &amp;&amp; (value &lt;= SetPoint + Tolerance)</c></item>
            <item>Not equal: <c>(value &lt; SetPoint - Tolerance) || (value &gt; SetPoint + Tolerance)</c></item>
            </list>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Delay">
            <summary>
            Gets or sets the amount of time that the
            signal must be exhibiting alarming behavior
            before the alarm is raised.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Hysteresis">
            <summary>
            Gets or sets the hysteresis used when clearing
            alarms. This value is only relevant in greater
            than (or equal) and less than (or equal) operations.
            </summary>
            <remarks>
            <para>The hysteresis is an offset that provides padding between
            the point at which the alarm is raised and the point at
            which the alarm is cleared. For example, in the case of the
            <see cref="F:GSF.TimeSeries.AlarmOperation.GreaterOrEqual"/> operation:</para>
            
            <list type="bullet">
            <item>Raised: <c>value &gt;= SetPoint</c></item>
            <item>Cleared: <c>value &lt; SetPoint - Hysteresis</c></item>
            </list>
            
            <para>The direction of the offset depends on whether the
            operation is greater than (or equal) or less than (or equal).
            The hysteresis must be greater than zero.</para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.State">
            <summary>
            Gets or sets the current state of the alarm (raised or cleared).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.TimeRaised">
            <summary>
            Gets or sets the timestamp of the most recent
            measurement that caused the alarm to be raised.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Alarm.Cause">
            <summary>
            Gets the most recent measurement
            that caused the alarm to be raised.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Alarm.Test(GSF.TimeSeries.IMeasurement)">
            <summary>
            Tests the value of the given measurement to determine
            whether the alarm should be raised or cleared.
            </summary>
            <param name="measurement">The measurement whose value is to be tested.</param>
            <returns>true if the alarm's state changed; false otherwise</returns>
        </member>
        <member name="M:GSF.TimeSeries.Alarm.Clone">
            <summary>
            Creates a new alarm that is a copy of the current instance.
            </summary>
            <returns>
            A new alarm that is a copy of this instance.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:GSF.TimeSeries.Alarm.System#ICloneable#Clone">
            <summary>
            Creates a new object that is a copy of the current instance.
            </summary>
            <returns>
            A new object that is a copy of this instance.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:GSF.TimeSeries.Common">
            <summary>
            Defines common properties and functions for the time-series library.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Common.DynamicAssembliesFolderName">
            <summary>
            Folder name for dynamically compiled assemblies.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.ConfigurationLoaderBase">
            <summary>
            Represents a base class for <see cref="T:GSF.TimeSeries.Configuration.IConfigurationLoader"/> implementations.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.StatusMessage">
            <summary>
            Occurs when the configuration loader has a message to provide about its current status.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.ProcessException">
            <summary>
            Occurs when the configuration loader encounters a non-catastrophic exception.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Configuration.ConfigurationLoaderBase"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.Augment(System.Data.DataSet)">
            <summary>
            Augments the given configuration data set with the changes
            tracked since the version of the given configuration data set.
            </summary>
            <param name="configuration">The configuration data set to be augmented.</param>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Configuration.ConfigurationLoaderBase.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.BinaryFileConfigurationLoader">
            <summary>
            Represents a configuration loader that gets its configuration from a binary file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.BinaryFileConfigurationLoader.FilePath">
            <summary>
            Gets or sets the path to the binary file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.BinaryFileConfigurationLoader.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.BinaryFileConfigurationLoader.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.BinaryFileConfigurationLoader.Augment(System.Data.DataSet)">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.DataOperationFunction">
            <summary>
            Defines a method signature for a bootstrap data source operation.
            </summary>
            <param name="database">Connection to database.</param>
            <param name="nodeIDQueryString">Formatted node ID Guid query string.</param>
            <param name="trackingVersion">Latest version of the configuration to which data operations were previously applied.</param>
            <param name="arguments">Optional data operation arguments.</param>
            <param name="statusMessage">Reference to host status message function.</param>
            <param name="processException">Reference to host process exception function.</param>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader">
            <summary>
            Represents a configuration loader that gets its configuration from a database connection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.ConnectionString">
            <summary>
            Gets or sets the connection string which
            defines how to connect to the database.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.DataProviderString">
            <summary>
            Gets or sets the data provider string, which determines the
            .NET types to use when opening connections to the database.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.NodeIDQueryString">
            <summary>
            Gets or sets the string to use in queries when filtering results by node ID.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.Open">
            <summary>
            Opens the database connection.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.Augment(System.Data.DataSet)">
            <summary>
            Augments the given configuration data set with the changes
            tracked since the version of the given configuration data set.
            </summary>
            <param name="configuration">The configuration data set to be augmented.</param>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.Close">
            <summary>
            Closes the database connection.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Configuration.DatabaseConfigurationLoader"/> object.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.IConfigurationLoader">
            <summary>
            Represents the interface by which the time-series engine's
            system configuration is loaded from a configuration source.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Configuration.IConfigurationLoader.StatusMessage">
            <summary>
            Occurs when the configuration loader has a message to provide about its current status.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Configuration.IConfigurationLoader.ProcessException">
            <summary>
            Occurs when the configuration loader encounters a non-catastrophic exception.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.IConfigurationLoader.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.IConfigurationLoader.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.IConfigurationLoader.Augment(System.Data.DataSet)">
            <summary>
            Augments the given configuration data set with the changes
            tracked since the version of the given configuration data set.
            </summary>
            <param name="configuration">The configuration data set to be augmented.</param>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.WebServiceConfigurationLoader">
            <summary>
            Represents a configuration loader that queries a web service for its configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.WebServiceConfigurationLoader.URI">
            <summary>
            Gets or sets the URI for the web service.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.WebServiceConfigurationLoader.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.WebServiceConfigurationLoader.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.WebServiceConfigurationLoader.Augment(System.Data.DataSet)">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Configuration.XMLConfigurationLoader">
            <summary>
            Represents a configuration loader that gets its configuration from an XML file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.XMLConfigurationLoader.FilePath">
            <summary>
            Gets or sets the path to the XML file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Configuration.XMLConfigurationLoader.CanAugment">
            <summary>
            Gets the flag that indicates whether augmentation is supported by this configuration loader.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.XMLConfigurationLoader.Load">
            <summary>
            Loads the entire configuration data set from scratch.
            </summary>
            <returns>The configuration data set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Configuration.XMLConfigurationLoader.Augment(System.Data.DataSet)">
            <summary>
            Not supported.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.ConnectionException">
            <summary>
            Represents an exception related to connection activities.
            </summary>
            <remarks>
            This exception is used to filter connection exceptions into a separate log since
            these types of exceptions can be so frequent when a device is offline.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConnectionException.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ConnectionException"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConnectionException.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ConnectionException"/> with the specified <paramref name="message"/>.
            </summary>
            <param name="message">Exception message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConnectionException.#ctor(System.String,System.Exception)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ConnectionException"/> with the specified <paramref name="message"/>
            and <paramref name="innerException"/>.
            </summary>
            <param name="message">Exception message.</param>
            <param name="innerException">Inner exception.</param>
        </member>
        <member name="T:GSF.TimeSeries.DeriveQualityFlags">
            <summary>
            Represents functions to derive <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> related to value and time quality.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.DeriveQualityFlags.From(System.Collections.Generic.IEnumerable{System.Boolean},System.Collections.Generic.IEnumerable{System.Boolean})">
            <summary>
            Gets derived quality flags from a set of value and time quality vectors.
            </summary>
            <param name="valueQualities">Boolean vector where flag determines if value quality is good.</param>
            <param name="timeQualities">Boolean vector where flag determines if time quality is good.</param>
            <returns>Derived quality flags.</returns>
        </member>
        <member name="M:GSF.TimeSeries.DeriveQualityFlags.From(System.Boolean,System.Boolean)">
            <summary>
            Gets derived quality flags from specified value and time quality.
            </summary>
            <param name="valueQualityIsGood">Flag that determines if value quality is good.</param>
            <param name="timeQualityIsGood">Flag that determines if time quality is good.</param>
            <returns>Derived quality flags.</returns>
        </member>
        <member name="T:GSF.TimeSeries.MeasurementMetadata">
            <summary>
            Represents a set of meta-data fields for <see cref="T:GSF.TimeSeries.IMeasurement"/> that should rarely change.
            </summary>
            <remarks>
            This class allows measurement meta-data to be quickly transferred from one <see cref="T:GSF.TimeSeries.IMeasurement"/> to 
            another. This class is immutable, so any change to these values requires that the class be recreated.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementMetadata.Key">
            <summary>
            Gets or sets the primary key of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementMetadata.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementMetadata.Adder">
            <summary>
            Defines an offset to add to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementers should make sure this value defaults to zero.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementMetadata.Multiplier">
            <summary>
            Defines a multiplicative offset to apply to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementers should make sure this value defaults to one.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementMetadata.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a down-sampling filter over a sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.#ctor(GSF.TimeSeries.MeasurementKey,System.String,System.Double,System.Double,GSF.TimeSeries.MeasurementValueFilterFunction)">
            <summary>
            Creates a <see cref="T:GSF.TimeSeries.MeasurementMetadata"/>
            </summary>
            <param name="key">Gets or sets the primary key of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.</param>
            <param name="tagName">Gets or sets the text based tag name of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.</param>
            <param name="adder">Defines an offset to add to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="multiplier">Defines a multiplicative offset to apply to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="measurementValueFilter">Gets or sets function used to apply a down-sampling filter over a sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.</param>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeKey(GSF.TimeSeries.MeasurementKey)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided measurement <paramref name="key"/>. All other fields remain the same.
            </summary>
            <param name="key">The key to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided measurement <paramref name="key"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeAdder(System.Double)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="adder"/>. All other fields remain the same.
            </summary>
            <param name="adder">The adder to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="adder"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeAdderMultiplier(System.Double,System.Double)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="adder"/> and <paramref name="multiplier"/>. All other fields remain the same.
            </summary>
            <param name="adder">The adder to set.</param>
            <param name="multiplier">The multiplier to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="adder"/> and <paramref name="multiplier"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeMultiplier(System.Double)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="multiplier"/>. All other fields remain the same.
            </summary>
            <param name="multiplier">The multiplier to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="multiplier"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeTagName(System.String)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="tagName"/>. All other fields remain the same.
            </summary>
            <param name="tagName">The tag name to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="tagName"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementMetadata.ChangeMeasurementValueFilter(GSF.TimeSeries.MeasurementValueFilterFunction)">
            <summary>
            Creates a new instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="measurementValueFilter"/>. All other fields remain the same.
            </summary>
            <param name="measurementValueFilter">the measurementValueFilter to set.</param>
            <returns>New instance of <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> using the provided <paramref name="measurementValueFilter"/>.</returns>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementMetadata.Undefined">
            <summary>
            Represents an undefined <see cref="T:GSF.TimeSeries.MeasurementMetadata"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.DownsamplingMethod">
            <summary>
            Down-sampling method enumeration.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.DownsamplingMethod.LastReceived">
            <summary>
            Down-samples to the last measurement received.
            </summary>
            <remarks>
            Use this option if no down-sampling is needed or the selected value is not critical. This is the fastest option if the incoming and outgoing frame rates match.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.DownsamplingMethod.Closest">
            <summary>
            Down-samples to the measurement closest to frame time.
            </summary>
            <remarks>
            This is the typical operation used when performing simple down-sampling. This is the fastest option if the incoming frame rate is faster than the outgoing frame rate.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.DownsamplingMethod.Filtered">
            <summary>
            Down-samples by applying a user-defined value filter over all received measurements to anti-alias the results.
            </summary>
            <remarks>
            This option will produce the best result but has a processing penalty.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.DownsamplingMethod.BestQuality">
            <summary>
            Down-samples to the measurement that has the best quality closest to frame time.
            </summary>
            <remarks>
            This option chooses the measurement closest to the frame time with the best quality.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.ConcentratorBase">
            <summary>
            Measurement concentrator base class.
            </summary>
            <remarks>
            <para>
            This class synchronizes (i.e., sorts by timestamp) real-time measurements.
            </para>
            <para>
            Note that your lag time should be defined as it relates to the rate at which data is coming
            into the concentrator. Make sure you allow enough time for transmission of data over the network
            allowing any needed time for possible network congestion.  Lead time should be defined as your
            confidence in the accuracy of your local clock (e.g., if you set lead time to 2, this means you
            trust that your local clock is within plus or minus 2 seconds of real-time.)
            </para>
            <para>
            This concentrator is designed to sort measurements being transmitted in real-time for data being
            sent at rates of at least 1 sample per second. Slower rates (e.g., once every few seconds) are not
            supported since sorting data at these speeds would be trivial. There is no defined maximum number
            of supported samples per second - but keep in mind that CPU utilization will increase as the
            measurement volume and frame rate increase.
            </para>
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer">
            <summary>
            Frame rate timer.
            </summary>
            <remarks>
            One static instance of this internal class is created per encountered frame rate / processing interval.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.#ctor(System.Int32,System.Int32)">
            <summary>
            Create a new <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/> class.
            </summary>
            <param name="framesPerSecond">Desired frame rate for <see cref="T:GSF.PrecisionTimer"/>.</param>
            <param name="processingInterval">Desired processing interval, if applicable.</param>
            <remarks>
            When the <paramref name="processingInterval"/> is set to -1, the frame rate timer interval will be calculated as a distribution
            of whole milliseconds over the specified number of <paramref name="framesPerSecond"/>. Otherwise the specified
            <paramref name="processingInterval"/> will be used as the timer interval.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.FramesPerSecond">
            <summary>
            Gets frames per second for this <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.ProcessingInterval">
            <summary>
            Gets the processing interval defined for the <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.ReferenceCount">
            <summary>
            Gets reference count for this <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/> 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.TimeSeries.ConcentratorBase.FrameRateTimer.AddReference(System.EventHandler)">
            <summary>
            Adds a reference to this <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to add to event list.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.FrameRateTimer.RemoveReference(System.EventHandler)">
            <summary>
            Removes a reference to this <see cref="T:GSF.TimeSeries.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to remove from event list.</param>
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.UnpublishedSamples">
            <summary>
            This event is raised every 5 seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.ProcessException">
            <summary>
            This event is raised if there is an exception encountered while attempting to process a frame in the sample queue.
            </summary>
            <remarks>
            <para>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered while parsing the data stream.
            </para>
            <para>
            Processing will not stop for any exceptions thrown by the user function, but any captured exceptions will be exposed through this event.
            </para>
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.Disposed">
            <summary>
            This event is raised when <see cref="T:GSF.TimeSeries.ConcentratorBase"/> is disposed.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.LagTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lag time is updated.
            </summary> 
        </member>
        <member name="E:GSF.TimeSeries.ConcentratorBase.LeadTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lead time is updated.
            </summary> 
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ConcentratorBase"/>.
            </summary>
            <remarks>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:GSF.TimeSeries.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:GSF.TimeSeries.ConcentratorBase.Enabled"/> = true</c>).
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.#ctor(System.Int32,System.Double,System.Double)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ConcentratorBase"/> from specified parameters.
            </summary>
            <param name="framesPerSecond">Number of frames to publish per second.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
            <remarks>
            <para>
            <paramref name="framesPerSecond"/> must be greater then 0.
            </para>
            <para>
            <paramref name="lagTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .25 for a quarter-second lag time).
            Note that this defines time sensitivity to past timestamps.
            </para>
            <para>
            <paramref name="leadTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .5 for a half-second lead time).
            Note that this defines time sensitivity to future timestamps.
            </para>
            <para>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:GSF.TimeSeries.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:GSF.TimeSeries.ConcentratorBase.Enabled"/> = true</c>).
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Specified argument is outside of allowed value range (see remarks).</exception>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LagTicks">
            <summary>
            Gets defined past time deviation tolerance, in ticks.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.TrackLatestMeasurements">
            <summary>
            Gets or sets flag to start tracking the absolute latest received measurement values.
            </summary>
            <remarks>
            Latest received measurement value will be available via the <see cref="P:GSF.TimeSeries.ConcentratorBase.LatestMeasurements"/> property.
            Note that enabling this option will slightly increase the required sorting time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LatestMeasurements">
            <summary>
            Gets reference to the collection of absolute latest received measurement values.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LastFrame">
            <summary>
            Gets reference to the last published <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.UsePrecisionTimer">
            <summary>
            Gets or sets flag that determines if precision timer should be used for frame publication.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:GSF.TimeSeries.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            <para>
            This property is normally only used when you need the concentrator to send data at faster than real-time speeds,
            e.g., faster than the defined <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/>. A use case would be pushing historical data through
            the concentrator where you want to sort and publish data as quickly as possible.
            </para>
            <para>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, e.g.,
            a timer interval, over which to process data. A value of -1 means to use the default processing interval, i.e., use
            the <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/>, while a value of 0 means to process data as fast as possible.
            </para>
            <para>
            From a real-time perspective the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> defines its general processing interval based on
            the defined <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> property. The frames per second property, however, is more than a basic
            processing interval since it is used to define the intervals in one second that will become the time sorting
            destination "buckets" used by the concentrator irrespective of the data rate of the incoming data. As an example,
            if the frames per second of the concentrator is set to 30 and the source data rate is 60fps, then data will be
            down-sampled to 30 frames of sorted incoming data but the assigned processing interval will be used to publish the
            frames at the specified rate.
            </para>
            <para>
            The implemented functionality of the process interval property will be to respond to values in the following way:
            <list type="table">
                <listheader>
                    <term>Value</term>
                    <description>Response</description>
                </listheader>
                <item>
                    <term>&lt; 0</term>
                    <description>
                    In this case the default processing interval has been requested, as a result the <see cref="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp"/>
                    will be set to <c>false</c> and the concentrator processing interval will be defined based on the currently defined
                    <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> property, e.g., if the frames per second is 30 the processing interval will be 33.33ms.
                    </description>
                </item>
                <item>
                    <term>0</term>
                    <description>
                    In this case the processing interval has been defined to process data as fast as possible, as a result the
                    <see cref="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp"/> property will be set to <c>true</c> and <see cref="P:GSF.TimeSeries.ConcentratorBase.UsePrecisionTimer"/> property
                    will be set to <c>false</c>. With a processing interval of zero data is expected to flow into the concentrator as quick as
                    it can be provided. The <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> property will still be used to sort data by time into appropriate
                    frames, but the concentrator will use the reception time of the measurements against the defined lag-time to make sure
                    needed data has arrived before publication and frames will be published at the same rate of data arrival.
                    </description>
                </item>
                <item>
                    <term>&gt; 0</term>
                    <description>
                    In this case a specific processing interval has been defined for processing data, as a result both the
                    <see cref="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp"/> and <see cref="P:GSF.TimeSeries.ConcentratorBase.UsePrecisionTimer"/> properties will be set to <c>true</c>. With
                    a specifically defined processing interval, data is expected to flow into the concentrator at a similar rate. The
                    <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> property will still be used to sort data by time into appropriate frames, but the concentrator
                    will use the reception time of the measurements against the defined lag-time to make sure needed data has arrived before
                    publication and frames will be published on the specified interval. If multiple frames are ready for publication when the
                    processing interval executes, then all the ready frames will be published sequentially as quickly as possible.
                    </description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.MaximumPublicationTimeout">
            <summary>
            Gets or sets the maximum frame publication timeout in milliseconds, set to <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.
            </summary>
            <remarks>
            <para>
            The concentrator automatically defines a precision timer to provide the heartbeat for frame publication, however if the system
            gets busy the heartbeat signals can be missed. This property defines a maximum wait timeout before reception of the heartbeat
            signal to make sure frame publications continue to occur in a timely fashion even when a system is under stress.
            </para>
            <para>
            This property is automatically defined as 2% more than the number of milliseconds per frame when the <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/>
            property is set. Users can override this default value to provide custom behavior for this timeout.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Desired maximum resolution</term>
                    <description>Value to assign</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>100-Nanoseconds</term>
                    <description>0</description>
                </item>
            </list>
            Assigning values less than zero will be set to zero since minimum possible concentrator resolution is one tick (100-nanoseconds). Assigning
            values greater than <see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/> will be set to <see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/>
            since maximum possible concentrator resolution is one second (i.e., 1 frame per second).
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.RoundToNearestTimestamp">
            <summary>
            Gets or sets a value to indicate whether the concentrator should round to the
            nearest frame timestamp rather than rounding down to the nearest timestamps.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.DownsamplingMethod"/> to be used by the concentrator.
            </summary>
            <remarks>
            The down-sampling method determines the algorithm to use if input is being received at a higher-resolution than the defined output.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.TicksPerFrame">
            <summary>
            Gets the number of ticks per frame.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.ExpectedMeasurements">
            <summary>
            Gets or sets the expected number of measurements to be assigned to a single frame.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.AllowPreemptivePublishing">
            <summary>
            Gets or sets flag that allows system to preemptively publish frames assuming all <see cref="P:GSF.TimeSeries.ConcentratorBase.ExpectedMeasurements"/> have arrived.
            </summary>
            <remarks>
            In order for this property to used, the <see cref="P:GSF.TimeSeries.ConcentratorBase.ExpectedMeasurements"/> must be defined.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.PerformTimestampReasonabilityCheck">
            <summary>
            Gets or sets flag that determines if timestamp reasonability checks should be performed on incoming
            measurements (i.e., measurement timestamps are compared to system clock for reasonability using
            <see cref="P:GSF.TimeSeries.ConcentratorBase.LeadTime"/> tolerance).
            </summary>
            <remarks>
            Setting this value to <c>false</c> will make the concentrator use the latest value received as "real-time"
            without validation; this is not recommended in production since time reported by source devices may
            be grossly incorrect. For non-production configurations, setting this value to false will allow
            concentration of historical data.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp">
            <summary>
            Gets or sets flag that determines if concentrator should sort measurements by received time.
            </summary>
            <remarks>
            <para>
            Setting this value to <c>true</c> will make concentrator use the timestamp of measurement
            reception, which is typically the <see cref="T:GSF.TimeSeries.IMeasurement"/> creation time, for sorting and
            publication. This is useful in scenarios where the concentrator will be receiving very large
            volumes of data but not necessarily in real-time, such as, reading values from a file where
            you want data to be sorted and processed as fast as possible.
            </para>
            <para>
            Setting this value to <c>true</c> will force <see cref="P:GSF.TimeSeries.ConcentratorBase.UseLocalClockAsRealTime"/> to be <c>true</c>
            and <see cref="P:GSF.TimeSeries.ConcentratorBase.AllowSortsByArrival"/> to be <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.Enabled">
            <summary>
            Gets or sets the current enabled state of concentrator.
            </summary>
            <returns>Current enabled state of concentrator</returns>
            <remarks>
            Concentrator must be started by calling <see cref="M:GSF.TimeSeries.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:GSF.TimeSeries.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.StartTime">
            <summary>
            Gets the UTC time the concentrator was started.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.StopTime">
            <summary>
            Gets the UTC time the concentrator was stopped.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the concentrator has been active.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.IgnoreBadTimestamps">
            <summary>
            Gets or sets flag that determines if bad timestamps (as determined by measurement's timestamp quality)
            should be ignored when sorting measurements.
            </summary>
            <remarks>
            Setting this property to <c>true</c> forces system to use timestamps as-is without checking quality.
            If this property is <c>true</c>, it will supersede operation of <see cref="P:GSF.TimeSeries.ConcentratorBase.AllowSortsByArrival"/>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.AllowSortsByArrival">
            <summary>
            Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps
            to be sorted by arrival time.
            </summary>
            <remarks>
            <para>
            Value defaults to <c>true</c>, so any incoming measurement with a bad timestamp quality will be sorted
            according to its arrival time. Setting the property to <c>false</c> will cause all measurements with a
            bad timestamp quality to be discarded. This property will only be considered when
            <see cref="P:GSF.TimeSeries.ConcentratorBase.IgnoreBadTimestamps"/> is <c>false</c>.
            </para>
            <para>
            Value will be forced to <c>false</c> if <see cref="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp"/> is <c>true</c>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real-time.
            </summary>
            <remarks>
            <para>
            Use your local system clock as real-time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            </para>
            <para>
            If <see cref="P:GSF.TimeSeries.ConcentratorBase.ProcessByReceivedTimestamp"/> is <c>true</c>, <see cref="P:GSF.TimeSeries.ConcentratorBase.UseLocalClockAsRealTime"/> will
            always be set to <c>true</c>, even if you try to set it to <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.RealTime">
            <summary>
            Gets the most accurate time value that is available. If <see cref="P:GSF.TimeSeries.ConcentratorBase.UseLocalClockAsRealTime"/> = <c>true</c>, then
            this function will return <see cref="P:System.DateTime.UtcNow"/>. Otherwise, this function will return the timestamp of the
            most recent measurement, or <see cref="P:System.DateTime.UtcNow"/> if no measurement timestamps are within time deviation
            tolerances as specified by the <see cref="P:GSF.TimeSeries.ConcentratorBase.LeadTime"/> value.
            </summary>
            <remarks>
            Because the measurements being received by remote devices are often measured relative to GPS time, these timestamps
            are typically more accurate than the local clock. As a result, we can use the latest received timestamp as the best
            local time measurement we have (ignoring transmission delays); but, even these times can be incorrect so we still have
            to apply reasonability checks to these times. To do this, we use the local system time and the <see cref="P:GSF.TimeSeries.ConcentratorBase.LeadTime"/>
            value to validate the latest measured timestamp. If the newest received measurement timestamp gets too old or creeps
            too far into the future (both validated + and - against defined lead time property value), we will fall back on local
            system time. Note that this creates a dependency on a fairly accurate local clock - the smaller the lead time deviation
            tolerance, the better the needed local clock accuracy. For example, a lead time deviation tolerance of a few seconds
            might only require keeping the local clock synchronized to an NTP time source; but, a sub-second tolerance would
            require that the local clock be very close to GPS time.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.ReceivedMeasurements">
            <summary>
            Gets the total number of measurements ever requested for sorting.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements successfully sorted.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.DiscardedMeasurements">
            <summary>
            Gets the total number of measurements that have been discarded because of old timestamps
            (i.e., measurements that were outside the time deviation tolerance from base time, past or future).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LastDiscardedMeasurement">
            <summary>
            Gets a reference the last <see cref="T:GSF.TimeSeries.IMeasurement"/> that was discarded by the concentrator.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.LastDiscardedMeasurementLatency">
            <summary>
            Gets the calculated latency of the last <see cref="T:GSF.TimeSeries.IMeasurement"/> that was discarded by the concentrator.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.PublishedMeasurements">
            <summary>
            Gets the total number of published measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.PublishedFrames">
            <summary>
            Gets the total number of published frames.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.MeasurementsSortedByArrival">
            <summary>
            Gets the total number of measurements that were sorted by arrival because the measurement reported a bad timestamp quality.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.DownsampledMeasurements">
            <summary>
            Gets the total number of down-sampled measurements processed by the concentrator.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.MissedSortsByTimeout">
            <summary>
            Gets the total number of missed sorts by timeout processed by the concentrator.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.WaitHandleExpirations">
            <summary>
            Gets the total number of wait handle expirations encountered due to delayed precision timer releases.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.FramesAheadOfSchedule">
            <summary>
            Gets the total number of frames ahead of schedule processed by the concentrator.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.TotalPublicationTime">
            <summary>
            Gets the total number of seconds frames have spent in the publication process since concentrator started.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.AveragePublicationTimePerFrame">
            <summary>
            Gets the average required frame publication time, in seconds.
            </summary>
            <remarks>
            If user publication function, <see cref="M:GSF.TimeSeries.ConcentratorBase.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)"/>, consistently exceeds available publishing time
            (i.e., <c>1 / <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/></c>), concentration will fall behind.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.QueueState">
            <summary>
            Gets detailed state of concentrator frame queue.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ConcentratorBase.Status">
            <summary>
            Gets current detailed state and status of concentrator for display purposes.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> 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.TimeSeries.ConcentratorBase.Start">
            <summary>
            Starts the concentrator, if it is not already running.
            </summary>
            <remarks>
            Concentrator must be started by calling <see cref="M:GSF.TimeSeries.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:GSF.TimeSeries.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.Stop">
            <summary>
            Stops the concentrator.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.ResetStatistics">
            <summary>
            Resets the statistics of the concentrator.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.SecondsFromRealTime(GSF.Ticks)">
            <summary>
            Returns the deviation, in seconds, that the given number of ticks is from real-time (i.e., <see cref="P:GSF.TimeSeries.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation, in seconds, from real-time.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.MillisecondsFromRealTime(GSF.Ticks)">
            <summary>
            Returns the deviation, in milliseconds, that the given number of ticks is from real-time (i.e., <see cref="P:GSF.TimeSeries.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation in milliseconds.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.SortMeasurement(GSF.TimeSeries.IMeasurement)">
            <summary>
            Sorts the <see cref="T:GSF.TimeSeries.IMeasurement"/> placing the data point in its proper <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to sort.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.SortMeasurements(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Sorts each <see cref="T:GSF.TimeSeries.IMeasurement"/> placing each data point in its proper <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <param name="measurements">Collection of <see cref="T:GSF.TimeSeries.IMeasurement"/>'s to sort.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:GSF.TimeSeries.IFrame"/> of time-aligned collection of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:GSF.TimeSeries.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:GSF.TimeSeries.IFrame"/> within a second ranging from zero to <c><see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
            <remarks>
            If user implemented publication function consistently exceeds available publishing time (i.e., <c>1 / <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/></c> seconds),
            concentration will fall behind. A small amount of this time is required by the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> for processing overhead, so actual total time
            available for user function process will always be slightly less than <c>1 / <see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/></c> seconds.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.CreateNewFrame(GSF.Ticks)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.IFrame"/> for the given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp for new <see cref="T:GSF.TimeSeries.IFrame"/> in <see cref="T:GSF.Ticks"/>.</param>
            <returns>New <see cref="T:GSF.TimeSeries.IFrame"/> at given <paramref name="timestamp"/>.</returns>
            <remarks>
            Derived classes can override this method to create a new custom <see cref="T:GSF.TimeSeries.IFrame"/>. Default
            behavior creates a basic <see cref="T:GSF.TimeSeries.Frame"/> to hold synchronized measurements.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.AssignMeasurementToFrame(GSF.TimeSeries.IFrame,GSF.TimeSeries.IMeasurement)">
            <summary>
            Assigns <see cref="T:GSF.TimeSeries.IMeasurement"/> to its associated <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            Derived classes can choose to override this method to handle custom assignment of a <see cref="T:GSF.TimeSeries.IMeasurement"/> to
            its <see cref="T:GSF.TimeSeries.IFrame"/>. Default behavior simply assigns measurement to frame's keyed measurement dictionary:
            <code>frame.Measurements[measurement.Key] = measurement;</code>
            </remarks>
            <param name="frame">The <see cref="T:GSF.TimeSeries.IFrame"/> that is used.</param>
            <param name="measurement">The type of <see cref="T:GSF.TimeSeries.IMeasurement"/> to use."/></param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.OnProcessException(System.Exception)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.ConcentratorBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.ConcentratorBase.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.ConcentratorBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConcentratorBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.ConcentratorBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:GSF.TimeSeries.IMeasurement"/> values being discarded.</param>
            <remarks>
            Allows derived classes to raise a discarding measurements event.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.ConsoleHost">
            <summary>
            Console application operations used to host the time-series framework service.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ConsoleHost.#ctor(GSF.TimeSeries.ServiceHostBase)">
            <summary>
            Creates new <see cref="T:GSF.TimeSeries.ConsoleHost"/>.
            </summary>
            <param name="serviceHost">Service host instance.</param>
        </member>
        <member name="M:GSF.TimeSeries.ConsoleHost.Run">
            <summary>
            Runs the console host.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Data.ActiveMeasurementsTableLookup">
            <summary>
            Represents a table lookup for active measurements.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Data.ActiveMeasurementsTableLookup.LookupByDeviceID(System.UInt32)">
            <summary>
            Gets all of the rows with the provided deviceID. 
            Returns an empty set if the deviceID could not be found.
            </summary>
            <param name="deviceId">the deviceID to lookup.</param>
            <returns>
            Returns an empty set if the deviceID could not be found.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.ActiveMeasurementsTableLookup.LookupByDeviceNameNoStat(System.String)">
            <summary>
            Gets all of the rows with the provided device name. This will exclude
            all ActiveMeasurements that are classified as SignalType='STAT'. This is because 
            'STAT's are not associated with a device in the database.
            Returns an empty set if the deviceID could not be found.
            </summary>
            <param name="deviceName">the device to lookup.</param>
            <returns>
            Returns an empty set if the device could not be found.
            </returns>
        </member>
        <member name="T:GSF.TimeSeries.Data.DataSourceLookups">
            <summary>
            Creates a cached lookup so certain metadata so lookups can occur with quickly.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.GetLookupCache(System.Data.DataSet)">
            <summary>
            Gets/Creates the lookup cache for the provided dataset.
            </summary>
            <param name="dataSet">The non-null dataset provided by the time-series framework</param>
            <returns>Lookup cache for the provided dataset.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.ActiveMeasurements(System.Data.DataSet)">
            <summary>
            Gets/Creates the <see cref="T:GSF.TimeSeries.Data.ActiveMeasurementsTableLookup"/> for the provided dataset.
            </summary>
            <param name="dataSet"></param>
            <returns><see cref="T:GSF.TimeSeries.Data.ActiveMeasurementsTableLookup"/> for the provided dataset.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.LookupMetadata(System.Data.DataSet,System.Guid,System.String)">
            <summary>
            Lookups up metadata record from provided <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
            <param name="dataSource">Target <see cref="T:System.Data.DataSet"/>.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns>Metadata data row, if found; otherwise, <c>null</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.GetSignalType(System.Data.DataSet,GSF.TimeSeries.MeasurementKey,System.String)">
            <summary>
            Gets signal type for given measurement key
            </summary>
            <param name="dataSource">Target <see cref="T:System.Data.DataSet"/>.</param>
            <param name="key">Source <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><see cref="T:GSF.Units.EE.SignalType"/> as defined for measurement key in data source.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.GetSignalTypes(System.Data.DataSet,GSF.TimeSeries.MeasurementKey[],System.String)">
            <summary>
            Gets signal types for given measurement keys.
            </summary>
            <param name="dataSource">Target <see cref="T:System.Data.DataSet"/>.</param>
            <param name="keys">Source set of <see cref="T:GSF.TimeSeries.MeasurementKey"/> values.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><see cref="T:GSF.Units.EE.SignalType"/> values for each defined measurement key as configured in data source.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Data.DataSourceLookups.GetSignalTypes(System.Data.DataSet,GSF.TimeSeries.IMeasurement[],System.String)">
            <summary>
            Gets signal types for given measurement keys.
            </summary>
            <param name="dataSource">Target <see cref="T:System.Data.DataSet"/>.</param>
            <param name="measurements">Source set of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.</param>
            <param name="measurementTable">Measurement table name used for meta-data lookup.</param>
            <returns><see cref="T:GSF.Units.EE.SignalType"/> values for each defined measurement key as configured in data source.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Data.DataSourceLookupCache">
            <summary>
            Represents a lookup cache for adapter data source data.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Data.DataSourceLookupCache.ActiveMeasurements">
            <summary>
            Table lookup for active measurements.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.IMeasurementExtensions">
            <summary>
            Defines static extension functions for <see cref="T:GSF.TimeSeries.IMeasurement"/> implementations.
            </summary>
            <remarks>
            These helper functions map to the previously defined corresponding properties to help with the transition of <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.ValueQualityIsGood(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.BadData"/> is not set.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.BadData"/> is not set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.TimestampQualityIsGood(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.BadTime"/> is not set.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.BadTime"/> is not set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.TimestampQualityIsSuspect(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.SuspectTime"/> is set.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.SuspectTime"/> is set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.DeriveQualityFlags(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Gets derived quality flags from a set of source measurements.
            </summary>
            <param name="measurements">Source measurements.</param>
            <returns>Derived quality flags.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.IsDiscarded(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.DiscardedValue"/> is set.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.DiscardedValue"/> is not set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.IsCalculated(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.CalculatedValue"/> is set.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:GSF.TimeSeries.MeasurementStateFlags.CalculatedValue"/> is not set.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.RuntimeSignalID(GSF.TimeSeries.IMeasurement)">
            <summary>
            Returns the measurement ID if defined, otherwise the run-time signal ID associated with the measurement key.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> instance to test.</param>
            <returns>Measurement ID if defined, otherwise the run-time signal ID associated with the measurement key.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.MeasurementKeys(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Returns the <see cref="T:GSF.TimeSeries.MeasurementKey"/> values of a <see cref="T:GSF.TimeSeries.IMeasurement"/> enumeration.
            </summary>
            <param name="measurements"><see cref="T:GSF.TimeSeries.IMeasurement"/> enumeration to convert.</param>
            <returns><see cref="T:GSF.TimeSeries.MeasurementKey"/> values of the <see cref="T:GSF.TimeSeries.IMeasurement"/> enumeration.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.GetSignalType(GSF.TimeSeries.IMeasurement,System.Data.DataSet)">
            <summary>
            Gets a unique (run-time only) signal type ID for the given <paramref name="measurement"/> useful for sorting.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to obtain signal type for.</param>
            <param name="dataSource"><see cref="T:System.Data.DataSet"/> that contains measurement metadata.</param>
            <returns>Unique (run-time only) signal type ID for the given <paramref name="measurement"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.SetTagName(GSF.TimeSeries.IMeasurement,System.String)">
            <summary>
            Sets the tag name for a <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to create new <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> for.</param>
            <param name="tagName">New tag name value to assign to measurement's metadata.</param>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.SetKey(GSF.TimeSeries.IMeasurement,GSF.TimeSeries.MeasurementKey)">
            <summary>
            Sets the associated <see cref="T:GSF.TimeSeries.MeasurementKey"/> for a <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to create new <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> for.</param>
            <param name="key">New measurement key value to assign to measurement's metadata.</param>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.SetAdder(GSF.TimeSeries.IMeasurement,System.Double)">
            <summary>
            Sets the adder (i.e., "b" of y = mx + b) for a <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to create new <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> for.</param>
            <param name="adder">New adder value to assign to measurement's metadata.</param>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.SetMultiplier(GSF.TimeSeries.IMeasurement,System.Double)">
            <summary>
            Sets the multiplier (i.e., "m" of y = mx + b) for a <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to create new <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> for.</param>
            <param name="multiplier">New multiplier value to assign to measurement's metadata.</param>
        </member>
        <member name="M:GSF.TimeSeries.IMeasurementExtensions.GetDataColumn(GSF.TimeSeries.IMeasurement[0:,0:],System.Int32)">
            <summary>
            Gets a single column of measurement data from a two dimensional data window.
            </summary>
            <param name="dataWindow">Target data window.</param>
            <param name="columnIndex">Index of column to return.</param>
            <returns>All values from <paramref name="columnIndex"/> in <paramref name="dataWindow"/>.</returns>
        </member>
        <member name="P:GSF.TimeSeries.Model.Historian.CreatedOn">
            <summary>
            Created on field.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Model.Historian.CreatedBy">
            <summary>
            Created by field.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Model.Historian.UpdatedOn">
            <summary>
            Updated on field.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Model.Historian.UpdatedBy">
            <summary>
            Updated by field.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Reports.CorrectnessReportingProcess">
            <summary>
            Represents the process that generates correctness reports for the time-series service.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CorrectnessReportingProcess.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Reports.CorrectnessReportingProcess"/> class.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Reports.CompletenessReportingProcess">
            <summary>
            Represents the process that generates completeness reports for the time-series service.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Reports.CompletenessReportingProcess"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.Level4Threshold">
            <summary>
            Gets or sets the minimum percentage of measurements received from devices in level 4.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.Level3Threshold">
            <summary>
            Gets or sets the minimum percentage of measurements received from devices in level 3.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.Level4Alias">
            <summary>
            Gets or sets the alias for the level 4 category.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.Level3Alias">
            <summary>
            Gets or sets the alias for the level 3 category.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.GenerateCsvReport">
            <summary>
            Gets or sets the option to generate a csv report along with pdf report.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.CompletenessReportingProcess.Status">
            <summary>
            Gets the current status details about reporting process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.LoadSettings">
            <summary>
            Loads saved settings from the config file.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.SaveSettings">
            <summary>
            Saves settings to the config file.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.GetArguments">
            <summary>
            Gets the command line arguments for the reporting process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.SetArguments(GSF.Console.Arguments)">
            <summary>
            Applies any received command line arguments for the reporting process.
            </summary>
            <param name="args">Received command line arguments.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.CompletenessReportingProcess.IsReportFileName(System.String)">
            <summary>
            Determines whether the given path is a path to a report, based on the file name.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Reports.IReportingProcess">
            <summary>
            Defines an interface for reporting processes.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.ReportType">
            <summary>
            Gets report type (i.e., name) for this reporting process.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.ArchiveFilePath">
            <summary>
            Gets or sets the path to the archive file to which the statistics required for reporting are archived.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.ReportLocation">
            <summary>
            Gets or sets the directory to which reports will be written.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.Title">
            <summary>
            Gets or sets the title to be displayed on reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.Company">
            <summary>
            Gets or sets the name of the company to be displayed on reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.IdleReportLifetime">
            <summary>
            Gets or sets the minimum lifetime of a report
            since the last time it was accessed, in days.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.EnableReportEmail">
            <summary>
            Gets or sets flag to enable e-mailing of reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.SmtpServer">
            <summary>
            Gets or sets SMTP server to use when e-mailing reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.FromAddress">
            <summary>
            Gets or sets the "from" address to use when e-mailing reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.IReportingProcess.ToAddresses">
            <summary>
            Gets or sets the comma separated "to" addresses to use when e-mailing reports. 
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.GetReportsList">
            <summary>
            Returns the list of reports that are available from the report location.
            </summary>
            <returns>The list of generated reports.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.GetPendingReportsList">
            <summary>
            Returns the list of reports which are in the queue but are yet to be generated.
            </summary>
            <returns>The list of pending reports.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.GenerateReport(System.DateTime,System.Boolean)">
            <summary>
            Queues up a report to be generated on a separate thread.
            </summary>
            <param name="reportDate">The date of the report to be generated.</param>
            <param name="emailReport">Flag that determines if report should be e-mailed, if enabled.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.CleanReportLocation">
            <summary>
            Deletes reports from the <see cref="P:GSF.TimeSeries.Reports.IReportingProcess.ReportLocation"/> that have been idle for the length of the <see cref="P:GSF.TimeSeries.Reports.IReportingProcess.IdleReportLifetime"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.GetArguments">
            <summary>
            Gets the command line arguments for the reporting process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.GetArguments(System.DateTime,System.Boolean)">
            <summary>
            Gets the command line arguments for the reporting process for a given report date.
            </summary>
            <param name="reportDate">The date of the report to be generated.</param>
            <param name="emailReport">Flag that determines if report should be e-mailed, if enabled.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.IReportingProcess.SetArguments(GSF.Console.Arguments)">
            <summary>
            Applies any received command line arguments for the reporting process.
            </summary>
            <param name="args">Received command line arguments.</param>
        </member>
        <member name="T:GSF.TimeSeries.Reports.ReportingProcessBase">
            <summary>
            Represents the base functionality for reporting processes.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.#ctor(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Reports.ReportingProcessBase"/> class.
            </summary>
            <param name="reportType">Report type - passed into StatHistorianReportGenerator.</param>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.PersistSettings">
            <summary>
            Determines whether the object settings are to be persisted to the config file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.ReportType">
            <summary>
            Gets report type, i.e., basically the report name associated with this reporting process.
            </summary>
            <remarks>
            This value is passed to StatHistorianReportGenerator as "reportType" parameter.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.SettingsCategory">
            <summary>
            Gets or sets the category name under which the object settings are persisted in the config file.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.ArchiveFilePath">
            <summary>
            Gets or sets the path to the archive file to which
            the statistics required for reporting are archived.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.ReportLocation">
            <summary>
            Gets or sets the directory to which reports will be written.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.Title">
            <summary>
            Gets or sets the title to be displayed on reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.Company">
            <summary>
            Gets or sets the name of the company to be displayed on reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.IdleReportLifetime">
            <summary>
            Gets or sets the minimum lifetime of a report
            since the last time it was accessed, in days.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.EnableReportEmail">
            <summary>
            Gets or sets flag to enable e-mailing of reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.SmtpServer">
            <summary>
            Gets or sets SMTP server to use when e-mailing reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.FromAddress">
            <summary>
            Gets or sets the "from" address to use when e-mailing reports.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.ToAddresses">
            <summary>
            Gets or sets the comma separated "to" addresses to use when e-mailing reports. 
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.SmtpUsername">
            <summary>
            Gets or sets the username used to authenticate to the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.SmtpPassword">
            <summary>
            Gets or sets the password used to authenticate to the SMTP server.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.SmtpSecurePassword">
            <summary>
            Gets or sets the password used to authenticate to the SMTP server as a secure string.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessBase.Status">
            <summary>
            Gets the current status details about reporting process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GetReportsList">
            <summary>
            Returns the list of reports that are available from the report location.
            </summary>
            <returns>The list of generated reports.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GetPendingReportsList">
            <summary>
            Returns the list of reports which are in the queue but are yet to be generated.
            </summary>
            <returns>The list of pending reports.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GenerateReport(System.DateTime,System.Boolean)">
            <summary>
            Queues up a report to be generated on a separate thread.
            </summary>
            <param name="reportDate">The date of the report to be generated.</param>
            <param name="emailReport">Flag that determines if report should be e-mailed, if enabled.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.CleanReportLocation">
            <summary>
            Deletes reports from the <see cref="P:GSF.TimeSeries.Reports.ReportingProcessBase.ReportLocation"/> that have
            been idle for the length of the <see cref="P:GSF.TimeSeries.Reports.ReportingProcessBase.IdleReportLifetime"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.LoadSettings">
            <summary>
            Loads saved settings from the config file.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.SaveSettings">
            <summary>
            Saves settings to the config file.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.Execute">
            <summary>
            Executes the reporting process to generate the report.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GetArguments">
            <summary>
            Gets the command line arguments for the reporting process.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GetArguments(System.DateTime,System.Boolean)">
            <summary>
            Gets the command line arguments for the reporting process for a given report date.
            </summary>
            <param name="reportDate">The date of the report to be generated.</param>
            <param name="emailReport">Flag that determines if report should be e-mailed, if enabled.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.SetArguments(GSF.Console.Arguments)">
            <summary>
            Applies any received command line arguments for the reporting process.
            </summary>
            <param name="args">Received command line arguments.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.IsReportFileName(System.String)">
            <summary>
            Determines whether the given path is a path to a report, based on the file name.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessBase.GetProcessOwner(System.Int32)">
            <summary>
            Determines who is the owner of the given process.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Reports.ReportingProcessCollection">
            <summary>
            Represents a collection of <see cref="T:GSF.TimeSeries.Reports.IReportingProcess"/> items.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Reports.ReportingProcessCollection.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessCollection.LoadImplementations(System.Action{GSF.TimeSeries.Reports.IReportingProcess},System.Action{System.Exception})">
            <summary>
            Loads available <see cref="T:GSF.TimeSeries.Reports.IReportingProcess"/> implementations.
            </summary>
            <param name="newReportProcessHandler">New report process handler to call when new <see cref="T:GSF.TimeSeries.Reports.IReportingProcess"/> implementations are loaded.</param>
            <param name="exceptionHandler">Exception handler, if any, to call when type creation fails; otherwise, if <c>null</c> any exceptions will be thrown.</param>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessCollection.FindReportType(System.String)">
            <summary>
            Finds the <see cref="T:GSF.TimeSeries.Reports.IReportingProcess"/> for the specified <paramref name="reportType"/> name.
            </summary>
            <param name="reportType">Name of the report type to find.</param>
            <returns>
            The <see cref="T:GSF.TimeSeries.Reports.IReportingProcess"/> for the specified <paramref name="reportType"/> name, if found;
            otherwise, <c>null</c> if not found.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Reports.ReportingProcessCollection.InsertItem(System.Int32,GSF.TimeSeries.Reports.IReportingProcess)">
            <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.TimeSeries.Reports.ReportingProcessCollection.SetItem(System.Int32,GSF.TimeSeries.Reports.IReportingProcess)">
            <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.TimeSeries.Frame">
            <summary>
            Implementation of a basic <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            A frame represents a collection of measurements at a given time.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Frame.#ctor(GSF.Ticks,System.Int32)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:GSF.TimeSeries.Frame"/>.</param>
            <param name="expectedMeasurements">Expected number of measurements for the <see cref="T:GSF.TimeSeries.Frame"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Frame.#ctor(GSF.Ticks,System.Collections.Generic.IDictionary{GSF.TimeSeries.MeasurementKey,GSF.TimeSeries.IMeasurement})">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:GSF.TimeSeries.Frame"/>.</param>
            <param name="measurements">Initial set of measurements to load into the <see cref="T:GSF.TimeSeries.Frame"/>, if any.</param>
        </member>
        <member name="P:GSF.TimeSeries.Frame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Frame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:GSF.TimeSeries.Frame"/> (pre-processing).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Frame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, the property will return measurement count.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Frame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:GSF.Ticks"/>, of the data represented in this <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Frame.Lifespan">
            <summary>
            Gets the life-span of this <see cref="T:GSF.TimeSeries.Frame"/> since its creation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Frame.CreatedTimestamp">
            <summary>
            Gets timestamp, in ticks, of when this <see cref="T:GSF.TimeSeries.Frame"/> was created.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Frame.LastSortedMeasurement">
            <summary>
            Gets or sets reference to last measurement that was sorted into this <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Frame.Clone">
            <summary>
            Create a copy of this <see cref="T:GSF.TimeSeries.Frame"/> and its measurements.
            </summary>
            <remarks>
            The measurement dictionary of this <see cref="T:GSF.TimeSeries.Frame"/> is synclocked during copy.
            </remarks>
            <returns>A cloned <see cref="T:GSF.TimeSeries.Frame"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.Equals(GSF.TimeSeries.IFrame)">
            <summary>
            Determines whether the specified <see cref="T:GSF.TimeSeries.IFrame"/> is equal to the current <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeSeries.IFrame"/> to compare with the current <see cref="T:GSF.TimeSeries.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:GSF.TimeSeries.IFrame"/> is equal to the current <see cref="T:GSF.TimeSeries.Frame"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:GSF.TimeSeries.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeSeries.Frame"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.CompareTo(GSF.TimeSeries.IFrame)">
            <summary>
            Compares the <see cref="T:GSF.TimeSeries.Frame"/> with an <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeSeries.IFrame"/> to compare with the current <see cref="T:GSF.TimeSeries.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Frame.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:GSF.TimeSeries.Frame"/> 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.TimeSeries.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:GSF.TimeSeries.IFrame"/>.</exception>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Frame.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeSeries.Frame"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeSeries.Frame"/>.</returns>
            <remarks>Hash code based on timestamp of frame.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_Equality(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Compares two <see cref="T:GSF.TimeSeries.Frame"/> timestamps for equality.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_Inequality(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Compares two <see cref="T:GSF.TimeSeries.Frame"/> timestamps for inequality.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_GreaterThan(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Frame"/> timestamp is greater than right <see cref="T:GSF.TimeSeries.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_GreaterThanOrEqual(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Frame"/> timestamp is greater than or equal to right <see cref="T:GSF.TimeSeries.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_LessThan(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Frame"/> timestamp is less than right <see cref="T:GSF.TimeSeries.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Frame.op_LessThanOrEqual(GSF.TimeSeries.Frame,GSF.TimeSeries.Frame)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Frame"/> timestamp is less than or equal to right <see cref="T:GSF.TimeSeries.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:GSF.TimeSeries.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:GSF.TimeSeries.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="T:GSF.TimeSeries.FrameQueue">
            <summary>
            Represents a real-time queue of <see cref="T:GSF.TimeSeries.TrackingFrame"/> instances used by the <see cref="T:GSF.TimeSeries.ConcentratorBase"/> class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.#ctor(GSF.TimeSeries.FrameQueue.CreateNewFrameFunction)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.FrameQueue"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second to be used by <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
            <remarks>
            Valid frame rates are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.RoundToNearestTimestamp">
            <summary>
            Gets or sets a value to indicate whether to round to the nearest
            frame timestamp rather than rounding down to the nearest timestamps.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.DownsamplingMethod"/> to be used by the <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.Head">
            <summary>
            Returns the next <see cref="T:GSF.TimeSeries.TrackingFrame"/> in the <see cref="T:GSF.TimeSeries.FrameQueue"/>, if any.
            </summary>
            <remarks>
            This property is tracked separately from the internal frame collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.Last">
            <summary>
            Gets the last processed <see cref="T:GSF.TimeSeries.TrackingFrame"/> in the <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
            <remarks>
            This property is tracked separately from the internal frame collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.FrameQueue.Count">
            <summary>
            Returns the total number of frames in the <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.FrameQueue"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.FrameQueue"/> 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.TimeSeries.FrameQueue.ExamineQueueState(System.Int32)">
            <summary>
            Examines and returns the status of the <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
            <param name="expectedMeasurements">Number of expected measurements per frame.</param>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.Clear">
            <summary>
            Clears the <see cref="T:GSF.TimeSeries.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.Pop">
            <summary>
            Removes current <see cref="P:GSF.TimeSeries.FrameQueue.Head"/> frame from the <see cref="T:GSF.TimeSeries.FrameQueue"/> after it has been processed and assigns a new <see cref="P:GSF.TimeSeries.FrameQueue.Head"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.FrameQueue.GetFrame(System.Int64)">
            <summary>
            Gets <see cref="T:GSF.TimeSeries.TrackingFrame"/> from the queue with the specified timestamp, in ticks.  If no frame exists for
            the specified timestamp, one will be created.
            </summary>
            <param name="ticks">Timestamp, in ticks, for which to get or create <see cref="T:GSF.TimeSeries.TrackingFrame"/>.</param>
            <remarks>
            Ticks can be any point in time so long time requested is greater than time of last published frame; this queue is
            used in a real-time scenario with time moving forward.  If a frame is requested for an old timestamp, null will
            be returned. Note that frame returned will be "best-fit" for given timestamp based on <see cref="P:GSF.TimeSeries.FrameQueue.FramesPerSecond"/>.
            </remarks>
            <returns>An existing or new <see cref="T:GSF.TimeSeries.TrackingFrame"/> from the queue for the specified timestamp.</returns>
        </member>
        <member name="T:GSF.TimeSeries.IDevice">
            <summary>
            Represents a device that acts as a source of <see cref="T:GSF.TimeSeries.IMeasurement"/>s.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.DataQualityErrors">
            <summary>
            Gets or sets total data quality errors of this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.TimeQualityErrors">
            <summary>
            Gets or sets total time quality errors of this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.DeviceErrors">
            <summary>
            Gets or sets total device errors of this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.MeasurementsReceived">
            <summary>
            Gets or sets total measurements received for this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.MeasurementsExpected">
            <summary>
            Gets or sets total measurements expected to have been received for this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.MeasurementsWithError">
            <summary>
            Gets or sets the number of measurements received while this <see cref="T:GSF.TimeSeries.IDevice"/> was reporting errors.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IDevice.MeasurementsDefined">
            <summary>
            Gets or sets the number of measurements (per frame) defined for this <see cref="T:GSF.TimeSeries.IDevice"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.IFrame">
            <summary>
            Abstract frame interface representing a collection of measurements at an exact moment in time.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            Represents a concurrent dictionary of measurements, keyed by <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:GSF.TimeSeries.IFrame"/> (pre-processing).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, implementers should return measurement count.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:GSF.Ticks"/>, of the data represented in this <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.Lifespan">
            <summary>
            Gets the life-span of this <see cref="T:GSF.TimeSeries.IFrame"/> since its creation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.CreatedTimestamp">
            <summary>
            Gets timestamp, in ticks, of when this <see cref="T:GSF.TimeSeries.IFrame"/> was created.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IFrame.LastSortedMeasurement">
            <summary>
            Gets or sets reference to last <see cref="T:GSF.TimeSeries.IMeasurement"/> that was sorted into this <see cref="T:GSF.TimeSeries.IFrame"/>.
            </summary>
            <remarks>
            <para>This value is used to help monitor slow moving measurements that are being sorted into the <see cref="T:GSF.TimeSeries.IFrame"/>.</para>
            <para>Implementers need only track the value.</para>
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.MeasurementValueFilterFunction">
            <summary>
            Method signature for function used to apply a value filter over a sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values over which to apply filter.</param>
            <returns>Result of filter applied to sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.</returns>
        </member>
        <member name="T:GSF.TimeSeries.MeasurementStateFlags">
            <summary>
            Measurement state flags.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.Normal">
            <summary>
            Defines normal state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.BadData">
            <summary>
            Defines bad data state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.SuspectData">
            <summary>
            Defines suspect data state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.OverRangeError">
            <summary>
            Defines over range error, i.e., unreasonable high value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UnderRangeError">
            <summary>
            Defines under range error, i.e., unreasonable low value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.AlarmHigh">
            <summary>
            Defines alarm for high value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.AlarmLow">
            <summary>
            Defines alarm for low value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.WarningHigh">
            <summary>
            Defines warning for high value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.WarningLow">
            <summary>
            Defines warning for low value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.FlatlineAlarm">
            <summary>
            Defines alarm for flat-lined value, i.e., latched value test alarm.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.ComparisonAlarm">
            <summary>
            Defines comparison alarm, i.e., outside threshold of comparison with a real-time value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.ROCAlarm">
            <summary>
            Defines rate-of-change alarm.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.ReceivedAsBad">
            <summary>
            Defines bad value received.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.CalculatedValue">
            <summary>
            Defines calculated value state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.CalculationError">
            <summary>
            Defines calculation error with the value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.CalculationWarning">
            <summary>
            Defines calculation warning with the value.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.ReservedQualityFlag">
            <summary>
            Defines reserved quality flag.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.BadTime">
            <summary>
            Defines bad time state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.SuspectTime">
            <summary>
            Defines suspect time state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.LateTimeAlarm">
            <summary>
            Defines late time alarm.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.FutureTimeAlarm">
            <summary>
            Defines future time alarm.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UpSampled">
            <summary>
            Defines up-sampled state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.DownSampled">
            <summary>
            Defines down-sampled state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.DiscardedValue">
            <summary>
            Defines discarded value state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.ReservedTimeFlag">
            <summary>
            Defines reserved time flag.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UserDefinedFlag1">
            <summary>
            Defines user defined flag 1.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UserDefinedFlag2">
            <summary>
            Defines user defined flag 2.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UserDefinedFlag3">
            <summary>
            Defines user defined flag 3.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UserDefinedFlag4">
            <summary>
            Defines user defined flag 4.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.UserDefinedFlag5">
            <summary>
            Defines user defined flag 5.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.SystemError">
            <summary>
            Defines system error state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.SystemWarning">
            <summary>
            Defines system warning state.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementStateFlags.MeasurementError">
            <summary>
            Defines measurement error flag.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.IMeasurement">
            <summary>
            Represents an interface for an abstract measurement value measured by a device at an exact time.
            </summary>
            <remarks>
            This interface abstractly represents a measured value at an exact time interval.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.Metadata">
            <summary>
            Gets or sets associated metadata values for the <see cref="T:GSF.TimeSeries.IMeasurement"/> .
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.Key">
            <summary>
            Gets or sets the primary key of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this <see cref="T:GSF.TimeSeries.IMeasurement"/>, taking into account the specified <see cref="P:GSF.TimeSeries.IMeasurement.Adder"/> and <see cref="P:GSF.TimeSeries.IMeasurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            <para>Implementers need to account for <see cref="P:GSF.TimeSeries.IMeasurement.Adder"/> and <see cref="P:GSF.TimeSeries.IMeasurement.Multiplier"/> in return value, e.g.:<br/>
            <c>return <see cref="P:GSF.TimeSeries.ITimeSeriesValue`1.Value"/> * <see cref="P:GSF.TimeSeries.IMeasurement.Multiplier"/> + <see cref="P:GSF.TimeSeries.IMeasurement.Adder"/></c>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.Adder">
            <summary>
            Defines an offset to add to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementers should make sure this value defaults to zero.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.Multiplier">
            <summary>
            Defines a multiplicative offset to apply to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementers should make sure this value defaults to one.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.StateFlags">
            <summary>
            Gets or sets <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> associated with this <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.Lifespan">
            <summary>
            Gets the life-span of this <see cref="T:GSF.TimeSeries.IMeasurement"/> since its creation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.CreatedTimestamp">
            <summary>
            Gets timestamp, in ticks, of when this <see cref="T:GSF.TimeSeries.IMeasurement"/> was created.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.IMeasurement.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a down-sampling filter over a sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.ImmediateMeasurements">
            <summary>
            Represents the absolute latest measurement values received by a <see cref="T:GSF.TimeSeries.ConcentratorBase"/> implementation.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.OutlierOperation">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.TemporalOutlierOperation"/> for the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> when
            timestamp is outside defined Lag/Lead time bounds.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.OutlierState">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> to apply to the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> when
            <see cref="P:GSF.TimeSeries.ImmediateMeasurements.OutlierOperation"/> is set to <see cref="F:GSF.TimeSeries.TemporalOutlierOperation.PublishWithBadState"/> and
            timestamp is outside defined Lag/Lead time bounds.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.Item(GSF.TimeSeries.MeasurementKey)">
            <summary>
            We retrieve adjusted measurement values within time tolerance of concentrator real-time.
            </summary>
            <param name="id">A <see cref="T:System.Guid"/> representing the measurement ID.</param>
            <returns>A <see cref="T:System.Double"/> representing the adjusted measurement value.</returns>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.MeasurementIDs">
            <summary>Returns collection of measurement ID's.</summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.Tags">
            <summary>Returns ID collection for measurement tags.</summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.Minimum">
            <summary>
            Returns the minimum value of all measurements.
            </summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.Maximum">
            <summary>
            Returns the maximum value of all measurements.
            </summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.RealTimeFunction">
            <summary>
            Gets or sets function to return real-time.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.ImmediateMeasurements.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be sub-second).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.ImmediateMeasurements"/> 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.TimeSeries.ImmediateMeasurements.TaggedMeasurementKeys(System.String)">
            <summary>
            Returns measurement list of specified tag, if it exists.
            </summary>
            <param name="tag">A <see cref="T:System.String"/> that indicates the tag to use.</param>
            <returns>A collection of measurement keys.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.UpdateMeasurementValue(GSF.TimeSeries.IMeasurement)">
            <summary>
            Store new measurement.
            </summary>
            <param name="newMeasurement">New measurement value to update.</param>
            <remarks>Value is only stored if it is newer than the cached value.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.Measurement(GSF.TimeSeries.MeasurementKey)">
            <summary>
            Retrieves the specified immediate temporal measurement, creating it if needed.
            </summary>
            <param name="id"><see cref="T:System.Guid"/> based signal ID of measurement.</param>
            <returns>A <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.Measurement(GSF.TimeSeries.IMeasurement)">
            <summary>
            Retrieves the specified immediate temporal measurement, creating it if needed.
            </summary>
            <param name="measurement">Source <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <returns>A <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.ClearMeasurementCache">
            <summary>
            Clears the existing measurement cache.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.DefineTaggedMeasurements(System.Data.DataTable)">
            <summary>
            Defines tagged measurements from a data table.
            </summary>
            <remarks>Expects <see cref="T:System.String"/> based tag field to be aliased as "Tag" and <see cref="T:System.Guid"/> based measurement ID field to be aliased as "ID".</remarks>
            <param name="taggedMeasurements">A <see cref="T:System.Data.DataTable"/> to use for defining the tagged measurements.</param>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.AddTaggedMeasurement(System.String,GSF.TimeSeries.MeasurementKey)">
            <summary>
            Associates a new measurement ID with a tag, creating the new tag if needed.
            </summary>
            <remarks>Allows you to define "grouped" points so you can aggregate certain measurements.</remarks>
            <param name="tag">A <see cref="T:System.String"/> to represent the key.</param>
            <param name="id">A <see cref="T:System.Guid"/> ID to associate with the tag.</param>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.CalculateAverage(System.Int32@)">
            <summary>
            Calculates an average of all measurements.
            </summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the measurements.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.CalculateTagAverage(System.String,System.Int32@)">
            <summary>
            Calculates an average of all measurements associated with the specified tag.
            </summary>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <param name="tag">The type of measurements to average.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the tags.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.TagMinimum(System.String)">
            <summary>
            Returns the minimum value of all measurements associated with the specified tag.
            </summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag minimum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.TagMaximum(System.String)">
            <summary>
            Returns the maximum value of all measurements associated with the specified tag.
            </summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag maximum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.OnLagTimeUpdated(System.Double)">
            <summary>
            Updates the tracked temporal measurements lag time.
            </summary>
            <param name="lagTime">New lag time.</param>
        </member>
        <member name="M:GSF.TimeSeries.ImmediateMeasurements.OnLeadTimeUpdated(System.Double)">
            <summary>
            Updates the tracked temporal measurements lead time.
            </summary>
            <param name="leadTime">New lead time.</param>
        </member>
        <member name="T:GSF.TimeSeries.InstallerBase">
            <summary>
            Defines a common installer class for the applications based on the time-series framework.
            </summary>
            <remarks>
            Users may choose to only install service application or its management tools, in either case common
            installation steps need to occur, so these steps are managed in this one common base class.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.InstallerBase.ConfigurationName">
            <summary>
            Gets associated application configuration file name.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.InstallerBase.OnSystemSettingsLoaded(System.Xml.XmlDocument,System.Xml.XmlNode)">
            <summary>
            Called when system settings are loaded.
            </summary>
            <remarks>
            This method will only be called if implementor overrides <see cref="P:GSF.TimeSeries.InstallerBase.ConfigurationName"/> with a valid config name.
            </remarks>
            <param name="configurationFile">Open xml document containing configuration settings.</param>
            <param name="systemSettingsNode">Xml node containing system settings.</param>
        </member>
        <member name="M:GSF.TimeSeries.InstallerBase.Install(System.Collections.IDictionary)">
            <summary>
            Installs the class.
            </summary>
            <param name="stateSaver">Current state information.</param>
        </member>
        <member name="T:GSF.TimeSeries.ITimeSeriesValue">
            <summary>
            Represents the fundamental binary value interface for a time-series value.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ITimeSeriesValue.ID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based signal ID of this <see cref="T:GSF.TimeSeries.ITimeSeriesValue`1"/>.
            </summary>
            <remarks>
            This is the fundamental identifier of the <see cref="T:GSF.TimeSeries.ITimeSeriesValue`1"/>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.ITimeSeriesValue.Value">
            <summary>
            Gets or sets the raw value of this <see cref="T:GSF.TimeSeries.ITimeSeriesValue`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ITimeSeriesValue.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:GSF.TimeSeries.ITimeSeriesValue`1"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ITimeSeriesValue.GetHashCode">
            <summary>
            Get the hash code for the <see cref="P:GSF.TimeSeries.ITimeSeriesValue.ID"/>.
            </summary>
            <returns>Hash code for the <see cref="P:GSF.TimeSeries.ITimeSeriesValue.ID"/>.</returns>
            <remarks>Implementers should always return the hash code based on <see cref="P:GSF.TimeSeries.ITimeSeriesValue.ID"/> of measurement.</remarks>
        </member>
        <member name="T:GSF.TimeSeries.ITimeSeriesValue`1">
            <summary>
            Represents the fundamental typed interface for a time-series value.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the time-series value.</typeparam>
        </member>
        <member name="P:GSF.TimeSeries.ITimeSeriesValue`1.Value">
            <summary>
            Gets or sets the raw typed value of this <see cref="T:GSF.TimeSeries.ITimeSeriesValue`1"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Measurement">
            <summary>
            Represents a basic measurement implementation.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.#ctor">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.Measurement"/> using default settings.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.ID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based signal ID of the <see cref="T:GSF.TimeSeries.Measurement"/> implementation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Value">
            <summary>
            Gets or sets the raw measurement value that is not offset by <see cref="P:GSF.TimeSeries.Measurement.Adder"/> and <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/>.
            </summary>
            <returns>Raw value of this <see cref="T:GSF.TimeSeries.Measurement"/> (i.e., value that is not offset by <see cref="P:GSF.TimeSeries.Measurement.Adder"/> and <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/>).</returns>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Metadata">
            <summary>
            Gets or sets associated metadata values for the <see cref="T:GSF.TimeSeries.Measurement"/> implementation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Key">
            <summary>
            Gets the primary <see cref="T:GSF.TimeSeries.MeasurementKey"/> of this <see cref="T:GSF.TimeSeries.Measurement"/> implementation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.TagName">
            <summary>
            Gets the text based tag name of this <see cref="T:GSF.TimeSeries.Measurement"/> implementation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Adder">
            <summary>
            Gets an offset to add to the measurement value. This defaults to 0.0.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Multiplier">
            <summary>
            Gets a multiplicative offset to apply to the measurement value. This defaults to 1.0.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this measurement, taking into account the specified <see cref="P:GSF.TimeSeries.Measurement.Adder"/> and <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            Note that returned value will be offset by <see cref="P:GSF.TimeSeries.Measurement.Adder"/> and <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/>.
            </remarks>
            <returns><see cref="P:GSF.TimeSeries.Measurement.Value"/> offset by <see cref="P:GSF.TimeSeries.Measurement.Adder"/> and <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/> (i.e., <c><see cref="P:GSF.TimeSeries.Measurement.Value"/> * <see cref="P:GSF.TimeSeries.Measurement.Multiplier"/> + <see cref="P:GSF.TimeSeries.Measurement.Adder"/></c>).</returns>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.StateFlags">
            <summary>
            Gets or sets <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> associated with this <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.MeasurementValueFilter">
            <summary>
            Gets function used to apply a down-sampling filter over a sequence of <see cref="T:GSF.TimeSeries.Measurement"/> values.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.Lifespan">
            <summary>
            Gets the life-span of this <see cref="T:GSF.TimeSeries.Measurement"/> since its creation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Measurement.CreatedTimestamp">
            <summary>
            Gets timestamp, in ticks, of when this <see cref="T:GSF.TimeSeries.Measurement"/> was created.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.TimeSeries.Measurement"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Equals(GSF.TimeSeries.ITimeSeriesValue)">
            <summary>
            Determines whether the specified <see cref="T:GSF.TimeSeries.ITimeSeriesValue"/> is equal to the current <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeSeries.ITimeSeriesValue"/> to compare with the current <see cref="T:GSF.TimeSeries.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:GSF.TimeSeries.ITimeSeriesValue"/> is equal to the current <see cref="T:GSF.TimeSeries.Measurement"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:GSF.TimeSeries.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:GSF.TimeSeries.Measurement"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.CompareTo(GSF.TimeSeries.ITimeSeriesValue)">
            <summary>
            Compares the <see cref="T:GSF.TimeSeries.Measurement"/> with an <see cref="T:GSF.TimeSeries.ITimeSeriesValue"/>.
            </summary>
            <param name="other">The <see cref="T:GSF.TimeSeries.ITimeSeriesValue"/> to compare with the current <see cref="T:GSF.TimeSeries.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:GSF.TimeSeries.Measurement"/> 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.TimeSeries.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:GSF.TimeSeries.Measurement"/>.</exception>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeSeries.Measurement"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeSeries.Measurement"/>.</returns>
            <remarks>Hash code based on value of measurement.</remarks>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_Equality(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Compares two <see cref="T:GSF.TimeSeries.Measurement"/> values for equality.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_Inequality(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Compares two <see cref="T:GSF.TimeSeries.Measurement"/> values for inequality.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_GreaterThan(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Measurement"/> value is greater than right <see cref="T:GSF.TimeSeries.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_GreaterThanOrEqual(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Measurement"/> value is greater than or equal to right <see cref="T:GSF.TimeSeries.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_LessThan(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Measurement"/> value is less than right <see cref="T:GSF.TimeSeries.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.op_LessThanOrEqual(GSF.TimeSeries.Measurement,GSF.TimeSeries.Measurement)">
            <summary>
            Returns true if left <see cref="T:GSF.TimeSeries.Measurement"/> value is less than or equal to right <see cref="T:GSF.TimeSeries.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:GSF.TimeSeries.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:GSF.TimeSeries.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="F:GSF.TimeSeries.Measurement.Undefined">
            <summary>
            Represents an undefined measurement.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Clone(GSF.TimeSeries.IMeasurement)">
            <summary>
            Creates a copy of the specified measurement.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <returns>A copy of the <see cref="T:GSF.TimeSeries.Measurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Clone(GSF.TimeSeries.IMeasurement,GSF.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:GSF.TimeSeries.Measurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Clone(GSF.TimeSeries.IMeasurement,System.Double,GSF.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new value and timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="value">New value for cloned measurement.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:GSF.TimeSeries.Measurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.Clone(GSF.TimeSeries.IMeasurement,System.Double,GSF.Ticks,GSF.TimeSeries.MeasurementStateFlags,System.Boolean)">
            <summary>
            Creates a copy of the specified measurement using a new value, timestamp and state flags.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="value">New value for cloned measurement.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <param name="stateFlags">New state flags for cloned measurement.</param>
            <param name="replaceFlags">Determines if <paramref name="stateFlags"/> should assigned as new (default) or be Or'd with existing flags.</param>
            <returns>A copy of the <see cref="T:GSF.TimeSeries.Measurement"/> object.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.ToString(GSF.TimeSeries.IMeasurement,System.Boolean)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the specified <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:GSF.TimeSeries.IMeasurement"/> to convert to a <see cref="T:System.String"/> representation.</param>
            <param name="includeTagName">Set to <c>true</c> to include measurement's tag name, if defined; otherwise set to <c>false</c>.</param>
            <returns>A <see cref="T:System.String"/> that represents the specified <see cref="T:GSF.TimeSeries.IMeasurement"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.AverageValueFilter(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values over which to run calculation.</param>
            <returns>Average of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.MajorityValueFilter(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Returns the majority value of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values over which to run calculation.</param>
            <returns>Majority value of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Measurement.AverageAngleValueFilter(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> phase angle values.
            </summary>
            <param name="source">Sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> values over which to run calculation.</param>
            <returns>Average of the specified sequence of <see cref="T:GSF.TimeSeries.IMeasurement"/> phase angle values.</returns>
            <remarks>
            Phase angles wrap, so this algorithm takes the wrapping into account when calculating the average.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.MeasurementKey">
            <summary>
            Represents a primary key for a measurement.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementKey.SignalID">
            <summary>
            Gets or sets <see cref="T:System.Guid"/> ID of signal associated with this <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementKey.ID">
            <summary>
            Gets or sets the numeric ID of this <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementKey.Source">
            <summary>
            Gets or sets the source of this <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
            <remarks>
            This value is typically used to track the archive name in which the measurement, that this <see cref="T:GSF.TimeSeries.MeasurementKey"/> represents, is stored.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementKey.RuntimeID">
            <summary>
            A unique ID that is assigned at runtime to identify this instance of <see cref="T:GSF.TimeSeries.MeasurementKey"/>. 
            This value will change between life cycles, so it cannot be used to compare <see cref="T:GSF.TimeSeries.MeasurementKey"/>
            instances that are running out of process or in a separate <see cref="T:System.AppDomain"/>.
            </summary>
            <remarks>
            Since each <see cref="P:GSF.TimeSeries.MeasurementKey.SignalID"/> is only tied to a single <see cref="T:GSF.TimeSeries.MeasurementKey"/> object, 
            this provides another unique identifier that is zero indexed. 
            This allows certain optimizations such as array lookups.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.MeasurementKey.Metadata">
            <summary>
            Gets the <see cref="T:GSF.TimeSeries.MeasurementMetadata"/> as they appear in the primary <see cref="P:GSF.TimeSeries.Adapters.IAdapter.DataSource"/>.
            </summary>
            <remarks>
            This is to be considered the reference value. Adapters are free to change this inside specific <see cref="T:GSF.TimeSeries.IMeasurement"/> instances
            This value should only be updated upon change in the primary data source using <see cref="M:GSF.TimeSeries.MeasurementKey.SetMeasurementMetadata(System.String,System.Double,System.Double,GSF.TimeSeries.MeasurementValueFilterFunction)"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.SetMeasurementMetadata(System.String,System.Double,System.Double,GSF.TimeSeries.MeasurementValueFilterFunction)">
            <summary>
            Updates the values of the <see cref="P:GSF.TimeSeries.MeasurementKey.Metadata"/>.
            </summary>
            <param name="tagName">Gets or sets the text based tag name.</param>
            <param name="adder">Defines an offset to add to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="multiplier">Defines a multiplicative offset to apply to the <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="valueFilter">Defines the <see cref="T:GSF.TimeSeries.MeasurementValueFilterFunction"/> to use when downsampling this type of <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:GSF.TimeSeries.MeasurementKey"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</returns>
        </member>
        <member name="F:GSF.TimeSeries.MeasurementKey.Undefined">
            <summary>
            Represents an undefined measurement key.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.CreateOrUpdate(System.Guid,System.String)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> ID of associated signal, if defined.</param>
            <param name="value">A string representation of the <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</param>
            <exception cref="T:System.ArgumentException"><paramref name="signalID"/> cannot be empty</exception>
            <exception cref="T:System.FormatException">The value is not in the correct format for a <see cref="T:GSF.TimeSeries.MeasurementKey"/> value.</exception>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.CreateOrUpdate(System.Guid,System.String,System.UInt64)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> ID of associated signal, if defined.</param>
            <param name="source">Source of the measurement that this <see cref="T:GSF.TimeSeries.MeasurementKey"/> represents (e.g., name of archive).</param>
            <param name="id">Numeric ID of the measurement that this <see cref="T:GSF.TimeSeries.MeasurementKey"/> represents.</param>
            <exception cref="T:System.ArgumentException"><paramref name="signalID"/> cannot be empty.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> cannot be null.</exception>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.TryCreateOrUpdate(System.Guid,System.String,GSF.TimeSeries.MeasurementKey@)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> ID of associated signal, if defined.</param>
            <param name="value">A string representation of the <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</param>
            <param name="key">The measurement key that was created or updated or <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.</param>
            <returns>True if the measurement key was successfully created or updated, false otherwise.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="signalID"/> cannot be empty.</exception>
            <exception cref="T:System.ArgumentNullException">Measurement key Source cannot be null.</exception>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.TryCreateOrUpdate(System.Guid,System.String,System.UInt64,GSF.TimeSeries.MeasurementKey@)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> ID of associated signal, if defined.</param>
            <param name="source">Source of the measurement that this <see cref="T:GSF.TimeSeries.MeasurementKey"/> represents (e.g., name of archive).</param>
            <param name="id">Numeric ID of the measurement that this <see cref="T:GSF.TimeSeries.MeasurementKey"/> represents.</param>
            <param name="key">The measurement key that was created or updated or <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.</param>
            <returns>True if the measurement key was successfully created or updated, false otherwise.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="signalID"/> cannot be empty.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="source"/> cannot be null.</exception>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpBySignalID(System.Guid)">
            <summary>
            Looks up the measurement key associated with the given signal ID.
            </summary>
            <param name="signalID">The signal ID of the measurement key.</param>
            <returns>The measurement key associated with the given signal ID.</returns>
            <remarks>
            If no measurement key is found with the given signal ID,
            this method returns <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpBySource(System.String,System.UInt64)">
            <summary>
            Looks up the measurement key associated with the given source and ID.
            </summary>
            <param name="source">The source of the signal.</param>
            <param name="id">The source-specific unique integer identifier.</param>
            <returns>The measurement key associated with the given source and ID.</returns>
            <remarks>
            If no measurement key is found with the given source and ID,
            this method returns <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpOrCreate(System.Guid,System.String)">
            <summary>
            Performs a lookup by signal ID and, failing that, attempts to create
            the key using the given signal ID and the parsed source, and ID.
            </summary>
            <param name="signalID">The signal ID of the key to be looked up.</param>
            <param name="value">A string representation of the <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</param>
            <returns>
            If the lookup succeeds, an existing measurement key with a matching signalID.
            If creation succeeds, a new measurement key with matching signal ID, source, and ID.
            Otherwise, <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpOrCreate(System.Guid,System.String,System.UInt64)">
            <summary>
            Performs a lookup by signal ID and, failing that, attempts to
            create the key using the given signal ID, source, and ID.
            </summary>
            <param name="signalID">The signal ID of the key to be looked up.</param>
            <param name="source">The source to use for the key if the lookup fails.</param>
            <param name="id">The ID to use for the key if the lookup fails.</param>
            <returns>
            If the lookup succeeds, an existing measurement key with a matching signalID.
            If creation succeeds, a new measurement key with matching signal ID, source, and ID.
            Otherwise, <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpOrCreate(System.String)">
            <summary>
            Performs a lookup by source and, failing that, attempts to create
            the key using a newly generated signal ID and the parsed source and ID.
            </summary>
            <param name="value">A string representation of the <see cref="T:GSF.TimeSeries.MeasurementKey"/>.</param>
            <returns>
            If the lookup succeeds, an existing measurement key with a matching signalID.
            If creation succeeds, a new measurement key with matching signal ID, source, and ID.
            Otherwise, <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.LookUpOrCreate(System.String,System.UInt64)">
            <summary>
            Performs a lookup by source and, failing that, attempts to create
            the key using a newly generated signal ID and the given source and ID.
            </summary>
            <param name="source">The source to use for the key if the lookup fails.</param>
            <param name="id">The ID to use for the key if the lookup fails.</param>
            <returns>
            If the lookup succeeds, an existing measurement key with a matching signalID.
            If creation succeeds, a new measurement key with matching signal ID, source, and ID.
            Otherwise, <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.Parse(System.String)">
            <summary>
            Converts the string representation of a <see cref="T:GSF.TimeSeries.MeasurementKey"/> into its value equivalent.
            </summary>
            <param name="value">A string representing the <see cref="T:GSF.TimeSeries.MeasurementKey"/> to convert.</param>
            <returns>A <see cref="T:GSF.TimeSeries.MeasurementKey"/> value equivalent the representation contained in <paramref name="value"/>.</returns>
            <exception cref="T:System.FormatException">The value is not in the correct format for a <see cref="T:GSF.TimeSeries.MeasurementKey"/> value.</exception>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.TryParse(System.String,GSF.TimeSeries.MeasurementKey@)">
            <summary>
            Attempts to convert the string representation of a <see cref="T:GSF.TimeSeries.MeasurementKey"/> into its value equivalent.
            </summary>
            <param name="value">A string representing the <see cref="T:GSF.TimeSeries.MeasurementKey"/> to convert.</param>
            <param name="key">Output <see cref="T:GSF.TimeSeries.MeasurementKey"/> in which to stored parsed value.</param>
            <returns>A <c>true</c> if <see cref="T:GSF.TimeSeries.MeasurementKey"/>representation contained in <paramref name="value"/> could be parsed; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.EstablishDefaultCache(System.Data.IDbConnection,System.Type,System.String)">
            <summary>
            Establish default <see cref="T:GSF.TimeSeries.MeasurementKey"/> cache.
            </summary>
            <param name="connection">The database connection.</param>
            <param name="adapterType">The database adapter type.</param>
            <param name="measurementTable">Measurement table name used to load measurement key cache.</param>
            <remarks>
            Source tables are expected to have at least the following fields:
            <code>
                 ID          NVARCHAR    Measurement key formatted as: ArchiveSource:PointID
                 SignalID    GUID        Unique identification for measurement
            </code>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.CreateUndefinedMeasurementKey">
            <summary>
            Creates the undefined measurement key. Used to initialize <see cref="F:GSF.TimeSeries.MeasurementKey.Undefined"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.MeasurementKey.TrySplit(System.String,System.String@,System.UInt64@)">
            <summary>
            Attempts to split the given string representation
            of a measurement key into a source and ID pair.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.NamespaceDoc">
            <summary>
            Contains classes used to abstractly define time-series measured values and provide mechanisms for managing measurements.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.NativeMethods">
            <summary>
            Windows API methods available to time-series library.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.PrecisionInputTimer">
            <summary>
            Precision input timer.
            </summary>
            <remarks>
            This class is used to create highly accurate simulated data inputs aligned to the local clock.<br/>
            One static instance of this internal class is created per encountered frame rate.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.#ctor(System.Int32)">
            <summary>
            Create a new <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> class.
            </summary>
            <param name="framesPerSecond">Desired frame rate for <see cref="T:GSF.PrecisionTimer"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.FramesPerSecond">
            <summary>
            Gets frames per second for this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.FrameMilliseconds">
            <summary>
            Gets array of frame millisecond times for this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.ReferenceCount">
            <summary>
            Gets reference count for this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.Resynchronizations">
            <summary>
            Gets number of resynchronizations that have occurred for this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.LastFrameTime">
            <summary>
            Gets time of last frame, in ticks.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.FrameWaitHandle">
            <summary>
            Gets a reference to the frame wait handle.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.PrecisionInputTimer.ExceptionHandler">
            <summary>
            Gets or sets function used to handle exceptions.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> 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.TimeSeries.PrecisionInputTimer.AddReference">
            <summary>
            Adds a reference to this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.RemoveReference">
            <summary>
            Removes a reference to this <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.Attach(System.Int32,System.Action{System.Exception})">
            <summary>
            Attach to a <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> for the specified <paramref name="framesPerSecond"/>.
            </summary>
            <param name="framesPerSecond">Desired frames per second for the input timer.</param>
            <param name="exceptionHandler">Optional delegate to handle exception reporting from the timer.</param>        
            /// <returns>A <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/> that can be used for the specified <paramref name="framesPerSecond"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.PrecisionInputTimer.Detach(GSF.TimeSeries.PrecisionInputTimer@)">
            <summary>
            Detach from the <see cref="T:GSF.TimeSeries.PrecisionInputTimer"/>.
            </summary>
            <param name="timer">Timer instance to detach from.</param>
            <remarks>
            Timer reference will be set to <c>null</c> after detach.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.ServiceClientBase">
            <summary>
            Represents a client that can remotely access the time-series framework service host.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.ServiceClientBase"/> class.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.ServiceClientBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.Initialize">
            <summary>
            Initializes the remoting client, client helper, and error logger.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.Start(System.String[])">
            <summary>
            Handles service start event.
            </summary>
            <param name="args">Service start arguments.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.ServiceClientBase"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.ServiceClientBase"/> 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.TimeSeries.ServiceClientBase.ClientHelper_AuthenticationSuccess(System.Object,System.EventArgs)">
            <summary>
            Client helper authentication success reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.ClientHelper_AuthenticationFailure(System.Object,System.ComponentModel.CancelEventArgs)">
            <summary>
            Client helper authentication failure reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.ClientHelper_ReceivedServiceUpdate(System.Object,GSF.EventArgs{GSF.UpdateType,System.String})">
            <summary>
            Client helper service update reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument containing update type and associated message data.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.ClientHelper_ReceivedServiceResponse(System.Object,GSF.EventArgs{GSF.ServiceProcess.ServiceResponse})">
            <summary>
            Client helper service response reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument containing the service response.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.ClientHelper_TelnetSessionEstablished(System.Object,System.EventArgs)">
            <summary>
            Client helper telnet session established handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceClientBase.ClientHelper_TelnetSessionTerminated(System.Object,System.EventArgs)">
            <summary>
            Client helper telnet session terminated handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1">
            <summary>
            Helper class for calculating device statistics.
            </summary>
            <typeparam name="T">The type of the devices whose statistics are to be calculated.</typeparam>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.#ctor(`0)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1"/> class.
            </summary>
            <param name="device">The device whose statistics are to be calculated using this helper.</param>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Device">
            <summary>
            Gets the device whose statistics are being calculated using this helper.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.ExpectedMeasurementsPerSecond">
            <summary>
            Gets or sets the number of measurements expected to be received from the device per second.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.AddToMeasurementsReceived(System.Int32)">
            <summary>
            Increases the count of the number of measurements received from the device.
            </summary>
            <param name="count">The number of measurements received from the device since the last time this method was called.</param>
            <remarks>
            Call this each time measurements have been received by the device in order
            to properly track the <see cref="P:GSF.TimeSeries.IDevice.MeasurementsReceived"/> statistic.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.AddToMeasurementsWithError(System.Int32)">
            <summary>
            Increases the count of the number of measurements received while the device is reporting errors.
            </summary>
            <param name="count">The number of measurements received while the device is reporting errors since the last time this method was called.</param>
            <remarks>
            Call this each time measurements with errors have been received by the device in order
            to properly track the <see cref="P:GSF.TimeSeries.IDevice.MeasurementsWithError"/> statistic.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.MarkDeviceTimestamp(System.Int64)">
            <summary>
            Marks the latest timestamp of device measurements used to calculate global timestamp statistics.
            </summary>
            <param name="ticks">Latest timestamp of device measurements.</param>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Update">
            <summary>
            Updates the statistics for the number of measurements received and the number
            of measurements expected in the <see cref="T:GSF.TimeSeries.IDevice"/> wrapped by this helper.
            </summary>
            <remarks>
            Call this periodically, preferably on a slow timer (e.g., once per second),
            in order to update the <see cref="P:GSF.TimeSeries.IDevice.MeasurementsReceived"/>,
            <see cref="P:GSF.TimeSeries.IDevice.MeasurementsWithError"/>, and
            <see cref="P:GSF.TimeSeries.IDevice.MeasurementsExpected"/> statistics.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Update(System.Int64)">
            <summary>
            Updates the statistics for the number of measurements received and the number
            of measurements expected in the <see cref="T:GSF.TimeSeries.IDevice"/> wrapped by this helper.
            </summary>
            <param name="nowTicks">The current time, in ticks.</param>
            <remarks>
            Call this periodically, preferably on a slow timer (e.g., once per second),
            in order to update the <see cref="P:GSF.TimeSeries.IDevice.MeasurementsReceived"/>,
            <see cref="P:GSF.TimeSeries.IDevice.MeasurementsWithError"/>, and
            <see cref="P:GSF.TimeSeries.IDevice.MeasurementsExpected"/> statistics. This method is preferred
            when tracking statistics for multiple <see cref="T:GSF.TimeSeries.IDevice"/>s to reduce the number
            of calls to <see cref="P:System.DateTime.UtcNow"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Reset">
            <summary>
            Resets the member variables used to track
            statistics for the device wrapped by this helper.
            </summary>
            <remarks>
            Call this when the connection to a device has been
            reset to mark a starting point for statistics gathering.
            Since the <see cref="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Update(System.Int64)"/> method keeps track
            of the time it was last called, it is necessary to call
            this method during long periods of downtime where Update
            was not being called in order to avoid momentary, unexpectedly
            large values to be calculated for measurements expected.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Reset(System.Int64)">
            <summary>
            Resets the member variables used to track
            statistics for the device wrapped by this helper.
            </summary>
            <param name="nowTicks">The current time, in ticks.</param>
            <remarks>
            Call this when the connection to a device has been
            reset to mark a starting point for statistics gathering.
            Since the <see cref="M:GSF.TimeSeries.Statistics.DeviceStatisticsHelper`1.Update(System.Int64)"/> method keeps track
            of the time it was last called, it is necessary to call
            this method during long periods of downtime where Update
            was not being called in order to avoid momentary, unexpectedly
            large values to be calculated for measurements expected.
            This method is preferred when tracking statistics for multiple
            <see cref="T:GSF.TimeSeries.IDevice"/>s to reduce the number of calls to
            <see cref="P:System.DateTime.UtcNow"/>.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.StatisticCalculationFunction">
            <summary>
            Method signature for function used to calculate a statistic for a given object.
            </summary>
            <param name="source">Source object.</param>
            <param name="arguments">Any needed arguments for statistic calculation.</param>
            <returns>Actual calculated statistic.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.Statistic">
            <summary>
            Represents a statistic calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.Statistic.Method">
            <summary>
            The method to be called to calculate the statistic.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.Statistic.Source">
            <summary>
            The name of the source of the statistic.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.Statistic.Index">
            <summary>
            The index of the signal associated with the statistic.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.Statistic.Arguments">
            <summary>
            The arguments to be passed into the statistic calculation function.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.Statistic.DataType">
            <summary>
            Target data type of the statistic.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.StatisticsEngine">
            <summary>
            Represents the engine that computes statistics within applications of the TimeSeriesFramework.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Statistics.StatisticsEngine.BeforeCalculate">
            <summary>
            Event is raised before statistics calculation.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Statistics.StatisticsEngine.Calculated">
            <summary>
            Event is raised after statistics calculation.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Statistics.StatisticsEngine.SourceRegistered">
            <summary>
            Event is raised when a new statistics source is registered.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Statistics.StatisticsEngine.SourceUnregistered">
            <summary>
            Event is raised when a statistics source is unregistered.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.StatisticsEngine.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to the <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.StatisticsEngine.SupportsTemporalProcessing">
            <inheritdoc />
        </member>
        <member name="P:GSF.TimeSeries.Statistics.StatisticsEngine.Status">
            <summary>
            Returns the detailed status of the statistics engine.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Start">
            <summary>
            Starts the <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Stop">
            <summary>
            Stops the <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/>.
            </summary>		
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.ReloadStatistics">
            <summary>
            Loads or reloads system statistics.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/> 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.TimeSeries.Statistics.StatisticsEngine.#cctor">
            <summary>
            Static initialization of <see cref="T:GSF.TimeSeries.Statistics.StatisticsEngine"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Statistics.StatisticsEngine.CurrentStatistics">
            <summary>
            Gets the statistic measurements and latest values that are registered with the active statistics engine.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Register(GSF.TimeSeries.Adapters.IAdapter,System.String,System.String,System.String)">
            <summary>
            Registers the given adapter with the statistics engine as a source of statistics.
            </summary>
            <param name="adapter">The source of the statistics.</param>
            <param name="sourceCategory">The category of the statistics.</param>
            <param name="sourceAcronym">The acronym used in signal references.</param>
            <param name="statisticMeasurementNameFormat">Format string used to name statistic measurements for this source.</param>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Register(System.Object,System.String,System.String,System.String,System.String)">
            <summary>
            Registers the given object with the statistics engine as a source of statistics.
            </summary>
            <param name="source">The source of the statistics.</param>
            <param name="sourceName">The name of the source.</param>
            <param name="sourceCategory">The category of the statistics.</param>
            <param name="sourceAcronym">The acronym used in signal references.</param>
            <param name="statisticMeasurementNameFormat">Format string used to name statistic measurements for this source.</param>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.Unregister(System.Object)">
            <summary>
            Unregisters the given source, removing it from the list of
            statistic sources so that it no longer generates statistics.
            </summary>
            <param name="source">The adapter to be unregistered with the statistics engine.</param>
            <remarks>
            Sources that implement <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> do not need to
            explicitly unregister themselves from the statistics engine.
            The engine automatically unregisters them by attaching to the
            <see cref="E:GSF.ISupportLifecycle.Disposed"/> event.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.TryLookupStatisticSource(System.String,System.String@,System.Int32@)">
            <summary>
            Attempts to lookup statistic source and signal index from a measurement <paramref name="signalReference"/>.
            </summary>
            <param name="signalReference">Signal reference.</param>
            <param name="sourceCategory">Statistic source category as defined in Statistics table Source column.</param>
            <param name="signalIndex">Statistic signal index as defined in Statistics table SignalIndex column.</param>
            <returns><c>true</c> if lookup succeeds; otherwise, <c>false</c>.</returns>
            <remarks>
            The statistic source acronyms used in measurement signal references are defined dynamically by
            statistic sources during registration. This function returns the source category, as defined in
            the Statistic table, for a given signal reference to allow for reverse lookups. As a result,
            user will need to make sure that all statistic sources have been registered before calling
            this function in order to receive accurate results.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticsEngine.RegexMatch(System.String,System.String)">
            <summary>
            Determines whether the given signal reference matches the
            signal reference regular expression using the given suffix.
            </summary>
            <param name="signalReference">The signal reference to be matched against the regular expression.</param>
            <param name="suffix">The suffix used by a particular type of statistic.</param>
            <returns>Flag indicating whether the signal reference matches the regular expression.</returns>
            <remarks>
            The format for signal reference of statistics is: <c>ACRONYM!SUFFIX-ST#</c>,
            where <c>ACRONYM</c> is the acronym of the measurement's source, <c>SUFFIX</c>
            is the suffix given as a parameter to this method, and <c>#</c> is an index
            used to differentiate between statistics with the same source and type.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.StatisticValueState">
            <summary>
            Represents an object that can track the current and previous
            state of a statistic and get the difference between them.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticValueState.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Statistics.StatisticValueState"/>.
            </summary>
            <param name="name">Name of statistic.</param>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticValueState.GetDifference">
            <summary>
            Gets the statistical difference between current and previous statistic value.
            </summary>
            <returns>Difference from last cached statistic value.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Statistics.StatisticValueStateCache">
            <summary>
            Caches statistic values to provide the difference between the
            current and previous values of any statistic given that
            statistic's source, name, and current value.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticValueStateCache.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Statistics.StatisticValueStateCache"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Statistics.StatisticValueStateCache.GetDifference(System.Object,System.Double,System.String)">
            <summary>
            Gets the statistical difference between current and previous statistic value.
            </summary>
            <param name="source">Source Device.</param>
            <param name="statistic">Current statistic value.</param>
            <param name="name">Name of statistic calculation.</param>
            <returns>Difference from last cached statistic value.</returns>
        </member>
        <member name="T:GSF.TimeSeries.TimeSeriesStartupOperations">
            <summary>
            Defines a data operations to be performed at startup.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.PerformTimeSeriesStartupOperations(GSF.Data.AdoDataConnection,System.String,System.UInt64,System.String,System.Action{System.String},System.Action{System.Exception})">
            <summary>
            Delegates control to the data operations that are to be performed at startup.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateDefaultNode(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a node in the database.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateAdapterCollections(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a record in the
            ConfigurationEntity table for each of the adapter collections.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateActiveMeasurements(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a record
            in the ConfigurationEntity table for ActiveMeasurements.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateAccountsAndGroups(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate accounts and groups to ensure
            that account names and group names are converted to SIDs.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateDataPublishers(GSF.Data.AdoDataConnection,System.String,System.String)">
            <summary>
            Data operation to validate and ensure there is a record in the
            CustomActionAdapter table for the external and TLS data publishers.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateStatistics(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate and ensure that certain records that
            are required for statistics calculations exist in the database.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TimeSeriesStartupOperations.ValidateAlarming(GSF.Data.AdoDataConnection,System.String)">
            <summary>
            Data operation to validate and ensure that certain records
            that are required for alarming exist in the database.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.BufferBlockMeasurement">
            <summary>
            Represents a byte buffer that can be transported through the system as a <see cref="T:GSF.TimeSeries.IMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.BufferBlockMeasurement.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.BufferBlockMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.BufferBlockMeasurement.#ctor(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.BufferBlockMeasurement"/> from an existing buffer.
            </summary>
            <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>
        </member>
        <member name="P:GSF.TimeSeries.BufferBlockMeasurement.Buffer">
            <summary>
            Cached buffer image.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.BufferBlockMeasurement.Length">
            <summary>
            Valid length of cached buffer image.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.CommandMeasurement">
            <summary>
            Model for measurements published by the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CommandMeasurement.SignalID">
            <summary>
            Gets or sets the signal ID of the measurement.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CommandMeasurement.Timestamp">
            <summary>
            Gets or sets the time that the measurement was taken.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CommandMeasurement.Value">
            <summary>
            Gets or sets the value of the measurement.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CommandMeasurement.StateFlags">
            <summary>
            Gets or sets the flags that define the quality of the measurement.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SubscriberRightsLookup">
            <summary>
            Represents a lookup table that determines whether
            a given subscriber has rights to specific signals.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SubscriberRightsLookup.#ctor(System.Data.DataSet,System.Guid)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Transport.SubscriberRightsLookup"/> class.
            </summary>
            <param name="dataSource">The source of metadata providing the tables required by the rights logic.</param>
            <param name="subscriberID">The ID of the subscriber whose rights are being looked up.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriberRightsLookup.HasRightsFunc">
            <summary>
            Gets the function that determines whether the subscriber has rights to a given signal.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SubscriberRightsLookup.HasRights(System.Guid)">
            <summary>
            Determines whether the subscriber has rights to a given signal.
            </summary>
            <param name="signalID">The ID of the signal.</param>
            <returns>True if the subscriber has rights; false otherwise.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.ClientConnection">
            <summary>
            Represents a <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> client connection to the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.#ctor(GSF.TimeSeries.Transport.DataPublisher,System.Guid,GSF.Communication.IServer)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/> instance.
            </summary>
            <param name="parent">Parent data publisher.</param>
            <param name="clientID">Client ID of associated connection.</param>
            <param name="commandChannel"><see cref="T:GSF.Communication.TcpServer"/> command channel used to lookup connection information.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.ClientID">
            <summary>
            Gets client ID of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.DataChannel">
            <summary>
            Gets or sets reference to <see cref="T:GSF.Communication.UdpServer"/> data channel, attaching to or detaching from events as needed, associated with this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.CommandChannel">
            <summary>
            Gets <see cref="T:GSF.Communication.IServer"/> command channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.PublishChannel">
            <summary>
            Gets <see cref="T:GSF.Communication.IServer"/> publication channel - that is, data channel if defined otherwise command channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.IsConnected">
            <summary>
            Gets connected state of the associated client socket.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.IsSubscribed">
            <summary>
            Gets or sets IsSubscribed state.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.ClientNotFoundExceptionOccurred">
            <summary>
            Gets or sets flag that indicates if the socket exception for "No client found for ID [Guid]" has been thrown.
            </summary>
            <returns>
            Since this message might be thrown many times before the communications channel has had a chance to disconnect
            the socket, it is best to stop attempting to send data when this error has been encountered.
            </returns>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberAcronym">
            <summary>
            Gets or sets the subscriber acronym of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberName">
            <summary>
            Gets or sets the subscriber name of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberInfo">
            <summary>
            Gets or sets subscriber info for this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.ConnectionID">
            <summary>
            Gets the connection identification of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.Authenticated">
            <summary>
            Gets or sets authenticated state of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.SharedSecret">
            <summary>
            Gets or sets shared secret used to lookup cipher keys only known to client and server.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.KeyIVs">
            <summary>
            Gets active and standby keys and initialization vectors.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.CipherIndex">
            <summary>
            Gets current cipher index.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.LastCipherKeyUpdateTime">
            <summary>
            Gets time of last cipher key update.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.ValidIPAddresses">
            <summary>
            Gets or sets the list of valid IP addresses that this client can connect from.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.IPAddress">
            <summary>
            Gets the IP address of the remote client connection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.Subscription">
            <summary>
            Gets or sets subscription associated with this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.Name">
            <summary>
            Gets the subscriber name of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.OperationalModes">
            <summary>
            Gets or sets a set of flags that define ways in
            which the subscriber and publisher communicate.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.Encoding">
            <summary>
            Character encoding used to send messages to subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.ClientConnection.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/> 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.TimeSeries.Transport.ClientConnection.UpdateKeyIVs">
            <summary>
            Creates or updates cipher keys.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.RotateCipherKeys">
            <summary>
            Rotates or initializes the crypto keys for this <see cref="T:GSF.TimeSeries.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.ClientConnection.GetCommandChannelSocket">
            <summary>
            Gets the <see cref="T:System.Net.Sockets.Socket"/> instance used by this client
            connection to send and receive data over the command channel.
            </summary>
            <returns>The socket instance used by the client to send and receive data over the command channel.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.Common">
            <summary>
            Common static methods and extensions for transport library.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.Common.UseManagedEncryption">
            <summary>
            Gets flag that determines if managed encryption should be used.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.Common.SymmetricAlgorithm">
            <summary>
            Gets an AES symmetric algorithm to use for encryption or decryption.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SecurityMode">
            <summary>
            Security modes used by the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> to secure data sent over the command channel.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.SecurityMode.None">
            <summary>
            No security.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.SecurityMode.TLS">
            <summary>
            Transport Layer Security.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.SecurityMode.Gateway">
            <summary>
            Pre-shared key.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.ServerCommand">
            <summary>
            Server commands received by <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> and sent by <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
            <remarks>
            Solicited server commands will receive a <see cref="F:GSF.TimeSeries.Transport.ServerResponse.Succeeded"/> or <see cref="F:GSF.TimeSeries.Transport.ServerResponse.Failed"/>
            response code along with an associated success or failure message. Message type for successful responses will be based
            on server command - for example, server response for a successful MetaDataRefresh command will return a serialized
            <see cref="T:System.Data.DataSet"/> of the available server metadata. Message type for failed responses will always be a string of
            text representing the error message.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.Authenticate">
            <summary>
            Authenticate command.
            </summary>
            <remarks>
            Requests that server authenticate client with the following encrypted authentication packet.
            Successful return message type will be string indicating client ID was validated.
            Client should not attempt further steps if authentication fails, user will need to take action.
            Client should send MetaDataRefresh and Subscribe commands upon successful authentication.
            If server is setup to not require authentication, authentication step can be skipped - however
            it will be up to the implementation to know if authentication is required - the server cannot be
            queried to determine if authentication is required.
            It is expected that use of this protocol between gateways over a shared network (i.e., the lower
            security zone) will require authentication.
            It is expected that use of this protocol between gateway and other systems (e.g., a PDC) in a
            private network (i.e., the higher security zone) can be setup to not require authentication.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.MetaDataRefresh">
            <summary>
            Meta data refresh command.
            </summary>
            <remarks>
            Requests that server send an updated set of metadata so client can refresh its point list.
            Successful return message type will be a <see cref="T:System.Data.DataSet"/> containing server device and measurement metadata.
            Received device list should be defined as children of the "parent" server device connection similar to the way
            PMUs are defined as children of a parent PDC device connection.
            Devices and measurements contain unique Guids that should be used to key metadata updates in local repository.
            Optional string based message can follow command that should represent client requested meta-data filtering
            expressions, e.g.: "FILTER MeasurementDetail WHERE SignalType &lt;&gt; 'STAT'"
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.Subscribe">
            <summary>
            Subscribe command.
            </summary>
            <remarks>
            Requests a subscription of streaming data from server based on connection string that follows.
            It will not be necessary to stop an existing subscription before requesting a new one.
            Successful return message type will be string indicating total number of allowed points.
            Client should wait for UpdateSignalIndexCache and UpdateBaseTime response codes before attempting
            to parse data when using the compact measurement format.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.Unsubscribe">
            <summary>
            Unsubscribe command.
            </summary>
            <remarks>
            Requests that server stop sending streaming data to the client and cancel the current subscription.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.RotateCipherKeys">
            <summary>
            Rotate cipher keys.
            </summary>
            <remarks>
            Manually requests that server send a new set of cipher keys for data packet encryption.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UpdateProcessingInterval">
            <summary>
            Update processing interval.
            </summary>
            <remarks>
            Manually requests server to update the processing interval with the following specified value.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.DefineOperationalModes">
            <summary>
            Define operational modes for subscriber connection.
            </summary>
            <remarks>
            As soon as connection is established, requests that server set operational
            modes that affect how the subscriber and publisher will communicate.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.ConfirmNotification">
            <summary>
            Confirm receipt of a notification.
            </summary>
            <remarks>
            This message is sent in response to <see cref="F:GSF.TimeSeries.Transport.ServerResponse.Notify"/>.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.ConfirmBufferBlock">
            <summary>
            Confirm receipt of a buffer block measurement.
            </summary>
            <remarks>
            This message is sent in response to <see cref="F:GSF.TimeSeries.Transport.ServerResponse.BufferBlock"/>.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.PublishCommandMeasurements">
            <summary>
            Provides measurements to the publisher over the command channel.
            </summary>
            <remarks>
            Allows for unsolicited publication of measurement data to the server
            so that consumers of data can also provide data to other consumers.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand00">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand01">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand02">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand03">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand04">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand05">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand06">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand07">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand08">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand09">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand10">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand11">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand12">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand13">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand14">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerCommand.UserCommand15">
            <summary>
            Code for handling user-defined commands.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.ServerResponse">
            <summary>
            Server responses sent by <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> and received by <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.Succeeded">
            <summary>
            Command succeeded response.
            </summary>
            <remarks>
            Informs client that its solicited server command succeeded, original command and success message follow.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.Failed">
            <summary>
            Command failed response.
            </summary>
            <remarks>
            Informs client that its solicited server command failed, original command and failure message follow.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.DataPacket">
            <summary>
            Data packet response.
            </summary>
            <remarks>
            Unsolicited response informs client that a data packet follows.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UpdateSignalIndexCache">
            <summary>
            Update signal index cache response.
            </summary>
            <remarks>
            Unsolicited response requests that client update its runtime signal index cache with the one that follows.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UpdateBaseTimes">
            <summary>
            Update runtime base-timestamp offsets response.
            </summary>
            <remarks>
            Unsolicited response requests that client update its runtime base-timestamp offsets with those that follow.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UpdateCipherKeys">
            <summary>
            Update runtime cipher keys response.
            </summary>
            <remarks>
            Response, solicited or unsolicited, requests that client update its runtime data cipher keys with those that follow.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.DataStartTime">
            <summary>
            Data start time response packet.
            </summary>
            <remarks>
            Unsolicited response provides the start time of data being processed from the first measurement.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.ProcessingComplete">
            <summary>
            Processing complete notification.
            </summary>
            <remarks>
            Unsolicited response provides notification that input processing has completed, typically via temporal constraint.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.BufferBlock">
            <summary>
            Buffer block response.
            </summary>
            <remarks>
            Unsolicited response informs client that a raw buffer block follows.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.Notify">
            <summary>
            Notify response.
            </summary>
            <remarks>
            Unsolicited response provides a notification message to the client.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.ConfigurationChanged">
            <summary>
            Configuration changed response.
            </summary>
            <remarks>
            Unsolicited response provides a notification that the publisher's source configuration has changed and that
            client may want to request a meta-data refresh.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse00">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse01">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse02">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse03">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse04">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse05">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse06">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse07">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse08">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse09">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse10">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse11">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse12">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse13">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse14">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.UserResponse15">
            <summary>
            Code for handling user-defined responses.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.ServerResponse.NoOP">
            <summary>
            No operation keep-alive ping.
            </summary>
            <remarks>
            The command channel can remain quiet for some time, this command allows a period test of client connectivity.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.DataPacketFlags">
            <summary>
            <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> data packet flags.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.Synchronized">
            <summary>
            Determines if data packet is synchronized.
            </summary>
            <remarks>
            Bit set = synchronized, bit clear = unsynchronized.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.Compact">
            <summary>
            Determines if serialized measurement is compact.
            </summary>
            <remarks>
            Bit set = compact, bit clear = full fidelity.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.CipherIndex">
            <summary>
            Determines which cipher index to use when encrypting data packet.
            </summary>
            <remarks>
            Bit set = use odd cipher index (i.e., 1), bit clear = use even cipher index (i.e., 0).
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.Compressed">
            <summary>
            Determines if data packet payload is compressed.
            </summary>
            <remarks>
            Bit set = payload compressed, bit clear = payload normal.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.LittleEndianCompression">
            <summary>
            Determines if the compressed data payload is in little-endian order.
            </summary>
            <remarks>
            Bit set = little-endian order compression, bit clear = big-endian order compression.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPacketFlags.NoFlags">
            <summary>
            No flags set.
            </summary>
            <remarks>
            This would represent unsynchronized, full fidelity measurement data packets.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.OperationalModes">
            <summary>
            Operational modes that affect how <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> and <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> communicate.
            </summary>
            <remarks>
            Operational modes are sent from a subscriber to a publisher to request operational behaviors for the
            connection, as a result the operation modes must be sent before any other command. The publisher may
            silently refuse some requests (e.g., compression) based on its configuration. Operational modes only
            apply to fundamental protocol control.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.VersionMask">
            <summary>
            Mask to get version number of protocol.
            </summary>
            <remarks>
            Version number is currently set to 0.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.CompressionModeMask">
            <summary>
            Mask to get mode of compression.
            </summary>
            <remarks>
            GZip and TSSC compression are the only modes currently supported. Remaining bits are
            reserved for future compression modes.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.EncodingMask">
            <summary>
            Mask to get character encoding used when exchanging messages between publisher and subscriber.
            </summary>
            <remarks>
            00 = UTF-16, little endian<br/>
            01 = UTF-16, big endian<br/>
            10 = UTF-8<br/>
            11 = ANSI
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.UseCommonSerializationFormat">
            <summary>
            Determines type of serialization to use when exchanging signal index cache and metadata.
            </summary>
            <remarks>
            Bit set = common serialization format, bit clear = .NET serialization format. The .NET
            serialization format is only for backwards compatibility with older GEP implementations
            and considered obsolete, it may be removed from future builds.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.ReceiveExternalMetadata">
            <summary>
            Determines whether external measurements are exchanged during metadata synchronization.
            </summary>
            <remarks>
            Bit set = external measurements are exchanged, bit clear = no external measurements are exchanged
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.ReceiveInternalMetadata">
            <summary>
            Determines whether internal measurements are exchanged during metadata synchronization.
            </summary>
            <remarks>
            Bit set = internal measurements are exchanged, bit clear = no internal measurements are exchanged
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.CompressPayloadData">
            <summary>
            Determines whether payload data is compressed when exchanging between publisher and subscriber.
            </summary>
            <remarks>
            Bit set = compress, bit clear = no compression
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.CompressSignalIndexCache">
            <summary>
            Determines whether the signal index cache is compressed when exchanging between publisher and subscriber.
            </summary>
            <remarks>
            Bit set = compress, bit clear = no compression
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.CompressMetadata">
            <summary>
            Determines whether metadata is compressed when exchanging between publisher and subscriber.
            </summary>
            <remarks>
            Bit set = compress, bit clear = no compression
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalModes.NoFlags">
            <summary>
            No flags set.
            </summary>
            <remarks>
            This would represent protocol version 0,
            UTF-16 little endian character encoding,
            .NET serialization and no compression.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.OperationalEncoding">
            <summary>
            Enumeration for character encodings supported by the Gateway Exchange Protocol.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalEncoding.Unicode">
            <summary>
            UTF-16, little endian
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalEncoding.BigEndianUnicode">
            <summary>
            UTF-16, big endian
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalEncoding.UTF8">
            <summary>
            UTF-8
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.OperationalEncoding.ANSI">
            <summary>
            ANSI
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.CompressionModes">
            <summary>
            Enumeration for compression modes supported by the Gateway Exchange Protocol.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompressionModes.GZip">
            <summary>
            GZip compression
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompressionModes.TSSC">
            <summary>
            TSSC compression
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompressionModes.None">
            <summary>
            No compression
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.DataPublisher">
            <summary>
            Represents a data publishing server that allows multiple connections for data subscriptions.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataPublisher.ClientConnected">
            <summary>
            Indicates that a new client has connected to the publisher.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`3.Argument1"/> is the <see cref="T:System.Guid"/> based subscriber ID.<br/>
            <see cref="F:GSF.EventArgs`3.Argument2"/> is the connection identification (e.g., IP and DNS name, if available).<br/>
            <see cref="F:GSF.EventArgs`3.Argument3"/> is the subscriber information as reported by the client.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataPublisher.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultRequireAuthentication">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.RequireAuthentication"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultSecurityMode">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.SecurityMode"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultEncryptPayload">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.EncryptPayload"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultSharedDatabase">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.SharedDatabase"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultAllowPayloadCompression">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.AllowPayloadCompression"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultCompressionStrength">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.CompressionStrength"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultAllowSynchronizedSubscription">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.AllowSynchronizedSubscription"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultAllowMetadataRefresh">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.AllowMetadataRefresh"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultAllowNaNValueFilter">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.AllowNaNValueFilter"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultForceNaNValueFilter">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.ForceNaNValueFilter"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultUseBaseTimeOffsets">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.UseBaseTimeOffsets"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultCipherKeyRotationPeriod">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.CipherKeyRotationPeriod"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultMetadataTables">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.MetadataTables"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.DefaultMutualSubscription">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataPublisher.MutualSubscription"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.MaxPacketSize">
            <summary>
            Maximum packet size before software fragmentation of payload.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataPublisher.ClientResponseHeaderSize">
            <summary>
            Size of client response header in bytes.
            </summary>
            <remarks>
            Header consists of response byte, in-response-to server command byte, 4-byte int representing payload length.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.RequireAuthentication">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> should require subscribers to authenticate before making data requests.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.SecurityMode">
            <summary>
            Gets or sets the security mode of the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>'s command channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.UseZeroMQChannel">
            <summary>
            Gets or sets flag that determines if ZeroMQ should be used for command channel communications.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.EncryptPayload">
            <summary>
            Gets or sets flag that determines whether data sent over the data channel should be encrypted.
            </summary>
            <remarks>
            This value is only relevant if <see cref="P:GSF.TimeSeries.Transport.DataPublisher.RequireAuthentication"/> is true.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.SharedDatabase">
            <summary>
            Gets or sets flag that indicates whether this publisher is publishing
            data that this node subscribed to from another node in a shared database.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AllowPayloadCompression">
            <summary>
            Gets or sets flag that indicates if this publisher will allow payload compression when requested by subscribers.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.CompressionStrength">
            <summary>
            Gets or sets the compression strength value to use when compressing data for subscribers.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AllowSynchronizedSubscription">
            <summary>
            Gets or sets flag that indicates if this publisher will allow synchronized subscriptions when requested by subscribers.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AllowMetadataRefresh">
            <summary>
            Gets or sets flag that indicates if this publisher will allow synchronized subscriptions when requested by subscribers.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AllowNaNValueFilter">
            <summary>
            Gets or sets flag that indicates if this publisher will allow filtering of data which is not a number.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.ForceNaNValueFilter">
            <summary>
            Gets or sets flag that indicates if this publisher will force filtering of data which is not a number.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.UseBaseTimeOffsets">
            <summary>
            Gets or sets flag that determines whether to use base time offsets to decrease the size of compact measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.CipherKeyRotationPeriod">
            <summary>
            Gets or sets the cipher key rotation period.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.CacheMeasurementKeys">
            <summary>
            Gets or sets the set of measurements which are cached by the data
            publisher to be published to subscribers immediately upon subscription.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.MeasurementReportingInterval">
            <summary>
            Gets or sets the measurement reporting interval.
            </summary>
            <remarks>
            This is used to determined how many measurements should be processed before reporting status.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            Updates to this property will cascade to all items in this <see cref="T:GSF.TimeSeries.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.Status">
            <summary>
            Gets the status of this <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.Name">
            <summary>
            Gets or sets the name of this <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            The assigned name is used as the settings category when persisting the TCP server settings.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.MetadataTables">
            <summary>
            Gets or sets semi-colon separated list of SQL select statements used to create data for meta-data exchange.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.MutualSubscription">
            <summary>
            Gets or sets flag that determines if a subscription is mutual, i.e., bi-directional pub/sub. In this mode one node will
            be the owner and set <c>Internal = True</c> and the other node will be the renter and set <c>Internal = False</c>.
            </summary>
            <remarks>
            <para>
            This flag is intended to be used in scenarios where a remote subscriber can add new measurements associated with a
            source device, e.g., creating new calculated result measurements on a remote machine for load distribution that should
            get associated with a device on the local machine, thus becoming part of the local measurement set.
            </para>
            <para>
            For best results, both the owner and renter subscriptions should be reduced to needed measurements, i.e., renter should
            only receive measurements needed for remote calculations and owner should only receive new calculated results. Note that
            when used with a TLS-style subscription this can be accomplished by using the subscription UI screens that control the
            measurement <c>subscribed</c> flag. For internal subscriptions, reduction of metadata and subscribed measurements will
            need to be controlled via connection string with <c>metadataFilters</c> and <c>outputMeasurements</c>, respectively.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AutoInitialize">
            <summary>
            Gets flag that determines if <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> subscriptions
            are automatically initialized when they are added to the collection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.ClientConnections">
            <summary>
            Gets dictionary of connected clients.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.CommandChannel">
            <summary>
            Gets or sets reference to <see cref="T:GSF.Communication.TcpServer"/> command channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.IsConnected">
            <summary>
            Gets flag indicating if publisher is connected and listening.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.BufferBlockRetransmissions">
            <summary>
            Gets the total number of buffer block retransmissions on all subscriptions over the lifetime of the publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.TotalBytesSent">
            <summary>
            Gets the total number of bytes sent to clients of this data publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.LifetimeMeasurements">
            <summary>
            Gets the total number of measurements processed through this data publisher over the lifetime of the publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.MinimumMeasurementsPerSecond">
            <summary>
            Gets the minimum value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.MaximumMeasurementsPerSecond">
            <summary>
            Gets the maximum value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.AverageMeasurementsPerSecond">
            <summary>
            Gets the average value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.LifetimeMinimumLatency">
            <summary>
            Gets the minimum latency calculated over the full lifetime of the publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.LifetimeMaximumLatency">
            <summary>
            Gets the maximum latency calculated over the full lifetime of the publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataPublisher.LifetimeAverageLatency">
            <summary>
            Gets the average latency calculated over the full lifetime of the publisher.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> 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.TimeSeries.Transport.DataPublisher.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> connected to this <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.QueueMeasurementsForProcessing(System.Collections.Generic.List{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:GSF.TimeSeries.Adapters.IActionAdapter"/> connected to this <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.Start">
            <summary>
            Establish <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> and start listening for client connections.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.Stop">
            <summary>
            Terminate <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> and stop listening for client connections.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.EnumerateClients">
            <summary>
            Enumerates connected clients.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.EnumerateTemporalClients">
            <summary>
            Enumerates connected clients with active temporal sessions.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.RotateCipherKeys(System.Int32)">
            <summary>
            Rotates cipher keys for specified client connection.
            </summary>
            <param name="clientIndex">Enumerated index for client connection.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetSubscriberInfo(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="clientIndex">Enumerated index for client connection.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetTemporalStatus(System.Int32)">
            <summary>
            Gets temporal status for a specified client connection.
            </summary>
            <param name="clientIndex">Enumerated index for client connection.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetLocalCertificate">
            <summary>
            Gets the local certificate currently in use by the data publisher.
            </summary>
            <returns>The local certificate file read directly from the certificate file as an array of bytes.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.ImportCertificate(System.String,System.Byte[])">
            <summary>
            Imports a certificate to the trusted certificates path.
            </summary>
            <param name="fileName">The file name to give to the certificate when imported.</param>
            <param name="certificateData">The data to be written to the certificate file.</param>
            <returns>The local path on the server where the file was written.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetSubscriberStatus(System.Guid)">
            <summary>
            Gets subscriber status for specified subscriber ID.
            </summary>
            <param name="subscriberID">Guid based subscriber ID for client connection.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.ResetLifetimeCounters">
            <summary>
            Resets the counters for the lifetime statistics without interrupting the adapter's operations.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendNotification(System.String)">
            <summary>
            Sends a notification to all subscribers.
            </summary>
            <param name="message">The message to be sent.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.UpdateSignalIndexCache(System.Guid,GSF.TimeSeries.Transport.SignalIndexCache,GSF.TimeSeries.MeasurementKey[])">
            <summary>
            Updates signal index cache based on input measurement keys.
            </summary>
            <param name="clientID">Client ID of connection over which to update signal index cache.</param>
            <param name="signalIndexCache">New signal index cache.</param>
            <param name="inputMeasurementKeys">Subscribed measurement keys.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.UpdateLatestMeasurementCache">
            <summary>
            Updates the latest measurement cache when the
            set of cached measurements may have changed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.UpdateRights">
            <summary>
            Updates each subscription's inputs based on
            possible updates to that subscriber's rights.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.GetClientEncoding(System.Guid)">
            <summary>
            Gets the text encoding associated with a particular client.
            </summary>
            <param name="clientID">ID of client.</param>
            <returns>Text encoding associated with a particular client.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendDataStartTime(System.Guid,GSF.Ticks)">
            <summary>
            Sends the start time of the first measurement in a connection transmission.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="startTime">Start time, in <see cref="T:GSF.Ticks"/>, of first measurement transmitted.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendClientResponse(System.Guid,GSF.TimeSeries.Transport.ServerResponse,GSF.TimeSeries.Transport.ServerCommand)">
            <summary>
            Sends response back to specified client.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendClientResponse(System.Guid,GSF.TimeSeries.Transport.ServerResponse,GSF.TimeSeries.Transport.ServerCommand,System.String)">
            <summary>
            Sends response back to specified client with a message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="status">Status message to return.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendClientResponse(System.Guid,GSF.TimeSeries.Transport.ServerResponse,GSF.TimeSeries.Transport.ServerCommand,System.String,System.Object[])">
            <summary>
            Sends response back to specified client with a formatted message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="formattedStatus">Formatted status message to return.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.SendClientResponse(System.Guid,GSF.TimeSeries.Transport.ServerResponse,GSF.TimeSeries.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends response back to specified client with attached data.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="data">Data to return to client; null if none.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.UpdateLatencyStatistics(System.Collections.Generic.IEnumerable{System.Int64})">
            <summary>
            Updates latency statistics based on the collection of latencies passed into the method.
            </summary>
            <param name="latencies">The latencies of the measurements sent by the publisher.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataPublisher.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.OnClientConnected(System.Guid,System.String,System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataPublisher.ClientConnected"/> event.
            </summary>
            <param name="subscriberID">Subscriber <see cref="T:System.Guid"/> (normally <see cref="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberID"/>).</param>
            <param name="connectionID">Connection identification (normally <see cref="P:GSF.TimeSeries.Transport.ClientConnection.ConnectionID"/>).</param>
            <param name="subscriberInfo">Subscriber information (normally <see cref="P:GSF.TimeSeries.Transport.ClientConnection.SubscriberInfo"/>).</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.AquireMetadata(GSF.TimeSeries.Transport.ClientConnection,System.Collections.Generic.Dictionary{System.String,System.Tuple{System.String,System.String,System.Int32}})">
            <summary>
            Gets meta-data to return to <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
            <param name="connection">Client connection requesting meta-data.</param>
            <param name="filterExpressions">Any meta-data filter expressions requested by client.</param>
            <returns>Meta-data to be returned to client.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataPublisher.HandleUserCommand(GSF.TimeSeries.Transport.ClientConnection,GSF.TimeSeries.Transport.ServerCommand,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Handles custom commands defined by the user of the publisher API.
            </summary>
            <param name="connection">Object representing the connection to the data subscriber.</param>
            <param name="command">The command issued by the subscriber.</param>
            <param name="buffer">The buffer containing the entire message from the subscriber.</param>
            <param name="startIndex">The index indicating where to start reading from the buffer to skip past the message header.</param>
            <param name="length">The total number of bytes in the message, including the header.</param>
        </member>
        <member name="T:GSF.TimeSeries.Transport.DataGapRecoverer">
            <summary>
            Represents a data gap recovery module. 
            </summary>
            <remarks>
            <para>
            Data gaps will be recovered using an unsynchronized temporal subscription.
            </para>
            <para>
            This class expects that source historian that feeds temporal subscription
            will recover data in time-sorted order.
            </para>
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultRecoveryStartDelay">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryStartDelay"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultDataMonitoringInterval">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataMonitoringInterval"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultMinimumRecoverySpan">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.MinimumRecoverySpan"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultMaximumRecoverySpan">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.MaximumRecoverySpan"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultFilterExpression">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.FilterExpression"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultRecoveryProcessingInterval">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryProcessingInterval"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultUseMillisecondResolution">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.UseMillisecondResolution"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultStartRecoveryBuffer">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.StartRecoveryBuffer"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataGapRecoverer.DefaultEndRecoveryBuffer">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.EndRecoveryBuffer"/>.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveredMeasurements">
            <summary>
            Provides recovered measurements from temporal subscription.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is a collection of measurements for consumer to process.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataGapRecoverer.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataGapRecoverer.ProcessException">
            <summary>
            Event is raised when there is an exception encountered during <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> processing.
            </summary>
            <remarks>
            <see cref="F:GSF.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataGapRecoverer.Disposed">
            <summary>
            Raised after the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> has been properly disposed.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.Log">
            <summary>
            Log messages generated by an adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.SourceConnectionName">
            <summary>
            Gets or sets name of source connection device (e.g., a data subscriber).
            </summary>
            <remarks>
            This name will be used to create the <see cref="P:GSF.IO.OutageLog.FileName"/>.
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be null or an empty string.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.ConnectionString">
            <summary>
            Gets or sets connection string that will be used to make a temporal subscription when recovering data for an <see cref="T:GSF.IO.Outage"/>.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be null or an empty string.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryStartDelay">
            <summary>
            Gets or sets the minimum time delay, in seconds, to wait before starting the data recovery for an <see cref="T:GSF.IO.Outage"/>.
            </summary>
            <remarks>
            <para>
            For some archiving systems it may take a few seconds for data to make it to disk and therefore be readily
            available for a temporal subscription query. The <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryStartDelay"/> should be adjusted based
            on the nature of the system used to archive data. If the archival system makes data immediately available
            because of internal caching or other means, this value can be zero.
            </para>
            <para>
            Use of this value depends on the local clock, as such the value should be increased by the uncertainty of
            accuracy of the local clock. For example, if it is know that the local clock floats +/-5 seconds from
            real-time, then increase the desired value of the <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryStartDelay"/> by 5 seconds.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be a negative number.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataMonitoringInterval">
            <summary>
            Gets or sets the interval, in seconds, over which the data monitor will check for new data.
            </summary>
            <remarks>
            Once a connection is established a timer is enabled to monitor for new incoming data. The data monitoring timer
            exists to make sure data is being received so that the process of recovery does not wait endlessly for data that
            may never come because of a possible error in the recovery process. The <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataMonitoringInterval"/>
            allows the consumer to adjust the interval over which the timer will check for new incoming data.
            <para>
            It will take some time, perhaps a couple of seconds, to start the temporal subscription and begin the process
            of recovering data for an <see cref="T:GSF.IO.Outage"/>. Make sure the value for <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataMonitoringInterval"/> is
            sufficiently large enough to handle any initial delays in data transmission.
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be zero or a negative number.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.MinimumRecoverySpan">
            <summary>
            Gets to sets the minimum time span, in seconds, for which a data recovery will be attempted.
            Set to zero for no minimum.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be a negative number.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.MaximumRecoverySpan">
            <summary>
            Gets to sets the maximum time span, in seconds, for which a data recovery will be attempted.
            Set to <see cref="F:System.Double.MaxValue"/> for no maximum.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">Value cannot be zero or a negative number.</exception>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.LoggingPath">
            <summary>
            Gets or sets logging path to be used to be runtime and outage logs of the subscriber which are required for
            automated data recovery.
            </summary>
            <remarks>
            Leave value blank for default path, i.e., installation folder. Can be a fully qualified path or a path that
            is relative to the installation folder, e.g., a value of "ConfigurationCache" might resolve to
            "C:\Program Files\MyTimeSeriespPp\ConfigurationCache\".
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.FilterExpression">
            <summary>
            Gets or sets the filter expression used to define which measurements are being requested for data recovery during an <see cref="T:GSF.IO.Outage"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryProcessingInterval">
            <summary>
            Gets or sets the data recovery processing interval, in whole milliseconds, to use in the temporal data
            subscription when recovering data for an <see cref="T:GSF.IO.Outage"/>.<br/>
            A value of <c>-1</c> indicates the default processing interval will be requested.<br/>
            A value of <c>0</c> indicates data will be processed as fast as possible.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, the <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveryProcessingInterval"/> value specifies
            the desired historical data playback processing interval in milliseconds. This is basically a delay, or timer
            interval, over which to process data. Setting this value to -1 means to use the default processing interval
            while setting the value to 0 means to process data as fast as possible, i.e., as fast as the historian can
            query the data. Depending on the available bandwidth, this parameter may need to be adjusted such that the
            data being recovered does not adversely interfere with the ongoing transmission of real-time data.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.UseMillisecondResolution">
            <summary>
            Gets or sets the flag that determines whether measurement timestamps use millisecond resolution.
            If false, time will be of <see cref="T:GSF.Ticks"/> resolution.
            </summary>
            <remarks>
            If the source and destination historians can handle timestamps at a greater than millisecond resolution then
            the <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.UseMillisecondResolution"/> can be set to <c>false</c> to ensure that a full resolution timestamp
            is delivered through the data recovery process. Setting this property to <c>true</c> allows the temporal subscription
            used in the data recovery process to conserve data transmission bandwidth since not as much space will be needed for
            a timestamp with only millisecond resolution.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.StartRecoveryBuffer">
            <summary>
            Gets or sets start buffer time, in seconds, to add to start of outage window to ensure all missing data is recovered.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.EndRecoveryBuffer">
            <summary>
            Gets or sets end buffer time, in seconds, to add to end of outage window to ensure all missing data is recovered.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.ConstraintParameters">
            <summary>
            Gets or sets any additional constraint parameters that will be supplied to adapters in temporal
            subscription used when recovering data for an <see cref="T:GSF.IO.Outage"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> is enabled.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.IsDisposed">
            <summary>
            Gets a flag that indicates whether the object has been disposed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataGapLog">
            <summary>
            Gets reference to the data gap <see cref="T:GSF.IO.OutageLog"/> for this <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.DataGapLogProcessor">
            <summary>
            Gets reference to the data gap <see cref="T:GSF.IO.OutageLogProcessor"/> for this <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.TemporalSubscriptionStatus">
            <summary>
            Gets the status of the temporal <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> used to query historical data.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataGapRecoverer.Status">
            <summary>
            Gets the status of this <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> object.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/> 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.TimeSeries.Transport.DataGapRecoverer.Initialize">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Transport.DataGapRecoverer"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.LogDataGap(System.DateTimeOffset,System.DateTimeOffset,System.Boolean)">
            <summary>
            Logs a new data gap for processing.
            </summary>
            <param name="startTime">Start time of data gap.</param>
            <param name="endTime">End time of data gap.</param>
            <param name="forceLog">Indicates whether to skip data gap validation and force the outage to be logged.</param>
            <returns><c>true</c> if data gap was logged for processing; otherwise, <c>false</c>.</returns>
            <remarks>
            Data gap will not be logged for processing if the <paramref name="startTime"/> and <paramref name="endTime"/> do not represent
            a valid time span for recovery according to <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.MinimumRecoverySpan"/> and <see cref="P:GSF.TimeSeries.Transport.DataGapRecoverer.MaximumRecoverySpan"/>.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.RemoveDataGap(System.DateTimeOffset,System.DateTimeOffset)">
            <summary>
            Removes a data gap from the outage log so that it will not be processed.
            </summary>
            <param name="startTime">Start time of data gap.</param>
            <param name="endTime">End time of data gap.</param>
            <returns>True if the data gap was successfully removed; false otherwise.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.DumpOutageLog">
            <summary>
            Produces a dump of the contents of the outage log.
            </summary>
            <returns>The contents of the outage log.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.OnRecoveredMeasurements(System.Collections.Generic.ICollection{GSF.TimeSeries.IMeasurement})">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataGapRecoverer.RecoveredMeasurements"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataGapRecoverer.StatusMessage"/> event and sends this data to the <see cref="T:GSF.Diagnostics.Logger"/>.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataGapRecoverer.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataGapRecoverer.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
            <remarks>
            <see pref="eventName"/> should be a constant string value associated with what type of message is being
            generated. In general, there should only be a few dozen distinct event names per class. Exceeding this
            threshold will cause the EventName to be replaced with a general warning that a usage issue has occurred.
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.DataSubscriber">
            <summary>
            Represents a data subscribing client that will connect to a data publisher for a data subscription.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.LocalConcentrator.#ctor(GSF.TimeSeries.Transport.DataSubscriber)">
            <summary>
            Creates a new local concentrator.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.LocalConcentrator.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.DataSubscriber.LocalConcentrator"/> 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.TimeSeries.Transport.DataSubscriber.LocalConcentrator.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:GSF.TimeSeries.IFrame"/> of time-aligned collection of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:GSF.TimeSeries.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:GSF.TimeSeries.IFrame"/> within a second ranging from zero to <c><see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SubscribedDevice.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:GSF.TimeSeries.Transport.DataSubscriber.SubscribedDevice"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SubscribedDevice.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:GSF.TimeSeries.Transport.DataSubscriber.SubscribedDevice"/> object.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs">
            <summary>
            EventArgs implementation for handling user commands.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.#ctor(GSF.TimeSeries.Transport.ServerCommand,GSF.TimeSeries.Transport.ServerResponse,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs"/> class.
            </summary>
            <param name="command">The code for the user command.</param>
            <param name="response">The code for the server's response.</param>
            <param name="buffer">Buffer containing the message from the server.</param>
            <param name="startIndex">Index into the buffer used to skip the header.</param>
            <param name="length">The length of the message in the buffer, including the header.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.Command">
            <summary>
            Gets the code for the user command.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.Response">
            <summary>
            Gets the code for the server's response.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.Buffer">
            <summary>
            Gets the buffer containing the message from the server.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.StartIndex">
            <summary>
            Gets the index into the buffer used to skip the header.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UserCommandArgs.Length">
            <summary>
            Gets the length of the message in the buffer, including the header.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultOperationalModes">
            <summary>
            Defines default value for <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.OperationalModes"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultMetadataSynchronizationTimeout">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.MetadataSynchronizationTimeout"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultUseTransactionForMetadata">
            <summary>
            Defines the default value for the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.UseTransactionForMetadata"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultLoggingPath">
            <summary>
            Default value for <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.LoggingPath"/>.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultAllowedParsingExceptions">
            <summary>
            Specifies the default value for the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.AllowedParsingExceptions"/> property.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.DataSubscriber.DefaultParsingExceptionWindow">
            <summary>
            Specifies the default value for the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.ParsingExceptionWindow"/> property.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionEstablished">
            <summary>
            Occurs when client connection to the data publication server is established.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionTerminated">
            <summary>
            Occurs when client connection to the data publication server is terminated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionAuthenticated">
            <summary>
            Occurs when client connection to the data publication server has successfully authenticated.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ReceivedServerResponse">
            <summary>
            Occurs when client receives response from the server.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ReceivedUserCommandResponse">
            <summary>
            Occurs when client receives message from the server in response to a user command.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.MetaDataReceived">
            <summary>
            Occurs when client receives requested meta-data transmitted by data publication server.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.DataStartTime">
            <summary>
            Occurs when first measurement is transmitted by data publication server.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ProcessingComplete">
            <summary>
            Indicates that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.NotificationReceived">
            <summary>
            Occurs when a notification has been received from the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ServerConfigurationChanged">
            <summary>
            Occurs when the server has sent a notification that its configuration has changed, this
            can allow subscriber to request updated meta-data if desired.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.DataSubscriber.ExceededParsingExceptionThreshold">
            <summary>
            Occurs when number of parsing exceptions exceed <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.AllowedParsingExceptions"/> during <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.ParsingExceptionWindow"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.SecurityMode">
            <summary>
            Gets or sets the security mode used for communications over the command channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.RequireAuthentication">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> requires subscribers to authenticate before making data requests.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseZeroMQChannel">
            <summary>
            Gets or sets flag that determines if ZeroMQ should be used for command channel communications.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseSimpleTcpClient">
            <summary>
            Gets or sets flag that determines if a <see cref="T:GSF.Communication.TcpSimpleClient"/> should be used for connection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.LoggingPath">
            <summary>
            Gets or sets logging path to be used to be runtime and outage logs of the subscriber which are required for
            automated data recovery.
            </summary>
            <remarks>
            Leave value blank for default path, i.e., installation folder. Can be a fully qualified path or a path that
            is relative to the installation folder, e.g., a value of "ConfigurationCache" might resolve to
            "C:\Program Files\MyTimeSeriespPp\ConfigurationCache\".
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.AutoConnect">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> should attempt to auto-connection to <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> using defined connection settings.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.AutoSynchronizeMetadata">
            <summary>
            Gets or sets flag that determines if <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> should
            automatically request meta-data synchronization and synchronize publisher
            meta-data with its own database configuration.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.PersistConnectionForMetadata">
            <summary>
            Gets flag that indicates whether the connection will be persisted
            even while the adapter is offline in order to synchronize metadata.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseSourcePrefixNames">
            <summary>
            Gets or sets flag that determines if child devices associated with a subscription
            should be prefixed with the subscription name and an exclamation point to ensure
            device name uniqueness - recommended value is <c>true</c>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.MetadataFilters">
            <summary>
            Gets or sets requested meta-data filter expressions to be applied by <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/> before meta-data is sent.
            </summary>
            <remarks>
            Multiple meta-data filters, such filters for different data tables, should be separated by a semicolon. Specifying fields in the filter
            expression that do not exist in the data publisher's current meta-data set could cause filter expressions to not be applied and possibly
            result in no meta-data being received for the specified data table.
            </remarks>
            <example>
            FILTER MeasurementDetail WHERE SignalType &lt;&gt; 'STAT'; FILTER PhasorDetail WHERE Phase = '+'
            </example>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.MutualSubscription">
            <summary>
            Gets or sets flag that determines if a subscription is mutual, i.e., bi-directional pub/sub. In this mode one node will
            be the owner and set <c>Internal = True</c> and the other node will be the renter and set <c>Internal = False</c>.
            </summary>
            <remarks>
            <para>
            This flag is intended to be used in scenarios where a remote subscriber can add new measurements associated with a
            source device, e.g., creating new calculated result measurements on a remote machine for load distribution that should
            get associated with a device on the local machine, thus becoming part of the local measurement set.
            </para>
            <para>
            For best results, both the owner and renter subscriptions should be reduced to needed measurements, i.e., renter should
            only receive measurements needed for remote calculations and owner should only receive new calculated results. Note that
            when used with a TLS-style subscription this can be accomplished by using the subscription UI screens that control the
            measurement <c>subscribed</c> flag. For internal subscriptions, reduction of metadata and subscribed measurements will
            need to be controlled via connection string with <c>metadataFilters</c> and <c>outputMeasurements</c>, respectively.
            </para>
            <para>
            Setting <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.MutualSubscription"/> to <c>true</c> will force <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.ReceiveInternalMetadata"/> to <c>true</c>
            and <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.ReceiveExternalMetadata"/> to <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseMillisecondResolution">
            <summary>
            Gets or sets flag that informs publisher if base time-offsets can use millisecond resolution to conserve bandwidth.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CommandChannelConnected">
            <summary>
            Gets flag that determines whether the command channel is connected.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.Authenticated">
            <summary>
            Gets flag that determines if this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> has successfully authenticated with the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.TotalBytesReceived">
            <summary>
            Gets total data packet bytes received during this session.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.DataLossInterval">
            <summary>
            Gets or sets data loss monitoring interval, in seconds. Set to zero to disable monitoring.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.OperationalModes">
            <summary>
            Gets or sets a set of flags that define ways in
            which the subscriber and publisher communicate.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CompressMetadata">
            <summary>
            Gets or sets the operational mode flag to compress meta-data.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CompressSignalIndexCache">
            <summary>
            Gets or sets the operational mode flag to compress the signal index cache.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CompressPayload">
            <summary>
            Gets or sets the operational mode flag to compress data payloads.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.ReceiveInternalMetadata">
            <summary>
            Gets or sets the operational mode flag to receive internal meta-data.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.ReceiveExternalMetadata">
            <summary>
            Gets or sets the operational mode flag to receive external meta-data.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseCommonSerializationFormat">
            <summary>
            Gets or sets the operational mode flag to use the common serialization format.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.OperationalEncoding">
            <summary>
            Gets or sets the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.OperationalEncoding"/> used by the subscriber and publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CompressionModes">
            <summary>
            Gets or sets the <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.CompressionModes"/> used by the subscriber and publisher.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.Version">
            <summary>
            Gets the version number of the protocol in use by this subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.Encoding">
            <summary>
            Gets the character encoding defined by the
            <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.OperationalEncoding"/> of the communications stream.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.SupportsRealTimeProcessing">
            <summary>
            Gets flag indicating if this adapter supports real-time processing.
            </summary>
            <remarks>
            Setting this value to false indicates that the adapter should not be enabled unless it exists within a temporal session.
            As an example, this flag can be used in a gateway system to set up two separate subscribers: one to the PDC for real-time
            data streams and one to the historian for historical data streams. In this scenario, the assumption is that the PDC is
            the data source for the historian, implying that only local data is destined for archival.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            <para>
            Although the data subscriber provisions support for temporal processing by receiving historical data from a remote source,
            the adapter opens sockets and does not need to be engaged within an actual temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, therefore
            this method normally returns <c>false</c> to make sure the adapter doesn't get instantiated within a temporal session.
            </para>
            <para>
            Setting this to <c>true</c> means that a subscriber will be initialized within a temporal session to provide historical
            data from a remote source - this should only be enabled in cases where (1) there is no locally defined, e.g., in-process,
            historian that can already provide historical data for temporal sessions, and (2) a remote subscriber should be allowed
            to proxy temporal requests, e.g., those requested for data gap recovery, to an up-stream subscription. This is useful in
            cases where a primary data subscriber that has data gap recovery enabled can also allow a remote subscription to proxy in
            data gap recovery requests. It is recommended that remote data gap recovery request parameters be (1) either slightly
            looser than those of local system to reduce the possibility of duplicated recovery sessions for the same data loss, or
            (2) only enabled in the end-most system that most needs the recovered data, like a historian.
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.MetadataSynchronizationTimeout">
            <summary>
            Gets or sets the timeout used when executing database queries during meta-data synchronization.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseTransactionForMetadata">
            <summary>
            Gets or sets flag that determines if meta-data synchronization should be performed within a transaction.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether to use the local clock when calculating statistics.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.AllowedParsingExceptions">
            <summary>
            Gets or sets number of parsing exceptions allowed during <see cref="P:GSF.TimeSeries.Transport.DataSubscriber.ParsingExceptionWindow"/> before connection is reset.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.ParsingExceptionWindow">
            <summary>
            Gets or sets time duration, in <see cref="T:GSF.Ticks"/>, to monitor parsing exceptions.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.ConnectionInfo">
            <summary>
            Gets connection info for adapter, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.Status">
            <summary>
            Gets the status of this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.UseAsyncConnect">
            <summary>
            Gets a flag that determines if this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> uses an asynchronous connection.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.DataChannel">
            <summary>
            Gets or sets reference to <see cref="T:GSF.Communication.UdpClient"/> data channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.CommandChannel">
            <summary>
            Gets or sets reference to <see cref="T:GSF.Communication.TcpClient"/> command channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.LifetimeMeasurements">
            <summary>
            Gets the total number of measurements processed through this data publisher over the lifetime of the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.MinimumMeasurementsPerSecond">
            <summary>
            Gets the minimum value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.MaximumMeasurementsPerSecond">
            <summary>
            Gets the maximum value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.AverageMeasurementsPerSecond">
            <summary>
            Gets the average value of the measurements per second calculation.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.LifetimeMinimumLatency">
            <summary>
            Gets the minimum latency calculated over the full lifetime of the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.LifetimeMaximumLatency">
            <summary>
            Gets the maximum latency calculated over the full lifetime of the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.LifetimeAverageLatency">
            <summary>
            Gets the average latency calculated over the full lifetime of the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.DataSubscriber.RealTime">
            <summary>
            Gets real-time as determined by either the local clock or the latest measurement received.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> 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.TimeSeries.Transport.DataSubscriber.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.Authenticate(System.String,System.String)">
            <summary>
            Authenticates subscriber to a data publisher.
            </summary>
            <param name="sharedSecret">Shared secret used to look up private crypto key and initialization vector.</param>
            <param name="authenticationID">Authentication ID that publisher will use to validate subscriber identity.</param>
            <returns><c>true</c> if authentication transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.Subscribe(GSF.TimeSeries.Transport.SubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SynchronizedSubscribe(GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a synchronized set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.UnsynchronizedSubscribe(GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for an unsynchronized set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.RemotelySynchronizedSubscribe(System.Boolean,System.Int32,System.Double,System.Double,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int64,System.Boolean,GSF.TimeSeries.DownsamplingMethod,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a remotely synchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="framesPerSecond">The desired number of data frames per second.</param>
            <param name="lagTime">Allowed past time deviation tolerance, in seconds (can be sub-second).</param>
            <param name="leadTime">Allowed future time deviation tolerance, in seconds (can be sub-second).</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="useLocalClockAsRealTime">Boolean value that determines whether or not to use the local clock time as real-time.</param>
            <param name="ignoreBadTimestamps">Boolean value that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.</param>
            <param name="allowSortsByArrival"> Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.</param>
            <param name="timeResolution">Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.</param>
            <param name="allowPreemptivePublishing">Gets or sets flag that allows system to preemptively publish frames assuming all expected measurements have arrived.</param>
            <param name="downsamplingMethod">Gets the total number of down-sampled measurements processed by the concentrator.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing constraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, over which to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.LocallySynchronizedSubscribe(System.Boolean,System.Int32,System.Double,System.Double,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int64,System.Boolean,GSF.TimeSeries.DownsamplingMethod,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a locally synchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="framesPerSecond">The desired number of data frames per second.</param>
            <param name="lagTime">Allowed past time deviation tolerance, in seconds (can be sub-second).</param>
            <param name="leadTime">Allowed future time deviation tolerance, in seconds (can be sub-second).</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="useLocalClockAsRealTime">Boolean value that determines whether or not to use the local clock time as real-time.</param>
            <param name="ignoreBadTimestamps">Boolean value that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.</param>
            <param name="allowSortsByArrival"> Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.</param>
            <param name="timeResolution">Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.</param>
            <param name="allowPreemptivePublishing">Gets or sets flag that allows system to preemptively publish frames assuming all expected measurements have arrived.</param>
            <param name="downsamplingMethod">Gets the total number of down-sampled measurements processed by the concentrator.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing constraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, over which to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.UnsynchronizedSubscribe(System.Boolean,System.Boolean,System.String,System.String,System.Boolean,System.Double,System.Double,System.Boolean,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for an unsynchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="throttled">Boolean value that determines if data should be throttled at a set transmission interval or sent on change.</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="includeTime">Boolean value that determines if time is a necessary component in streaming data.</param>
            <param name="lagTime">When <paramref name="throttled"/> is <c>true</c>, defines the data transmission speed in seconds (can be sub-second).</param>
            <param name="leadTime">When <paramref name="throttled"/> is <c>true</c>, defines the allowed time deviation tolerance to real-time in seconds (can be sub-second).</param>
            <param name="useLocalClockAsRealTime">When <paramref name="throttled"/> is <c>true</c>, defines boolean value that determines whether or not to use the local clock time as real-time. Set to <c>false</c> to use latest received measurement timestamp as real-time.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing constraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, over which to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.Subscribe(System.Boolean,System.Boolean,System.String)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a set of data points.
            </summary>
            <param name="remotelySynchronized">Boolean value that determines if subscription should be remotely synchronized - note that data publisher may not allow remote synchronization.</param>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="connectionString">Connection string that defines required and optional parameters for the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.Unsubscribe">
            <summary>
            Unsubscribes from a data publisher.
            </summary>
            <returns><c>true</c> if unsubscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.GetAuthorizedSignalIDs">
            <summary>
            Returns the measurements signal IDs that were authorized after the last successful subscription request.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.GetUnauthorizedSignalIDs">
            <summary>
            Returns the measurements signal IDs that were unauthorized after the last successful subscription request.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.ResetLifetimeCounters">
            <summary>
            Resets the counters for the lifetime statistics without interrupting the adapter's operations.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.RefreshMetadata">
            <summary>
            Initiate a meta-data refresh.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.LogDataGap(System.String)">
            <summary>
            Log a data gap for data gap recovery.
            </summary>
            <param name="timeString">The string representing the data gap.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.RemoveDataGap(System.String)">
            <summary>
            Remove a data gap from data gap recovery.
            </summary>
            <param name="timeString">The string representing the data gap.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.DumpOutageLog">
            <summary>
            Displays the contents of the outage log.
            </summary>
            <returns>The contents of the outage log.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.GetDataGapRecoverySubscriptionStatus">
            <summary>
            Gets the status of the temporal <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> used by the data gap recovery module.
            </summary>
            <returns>Status of the temporal <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/> used by the data gap recovery module.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SynchronizeMetadata(System.Data.DataSet)">
            <summary>
            Spawn meta-data synchronization.
            </summary>
            <param name="metadata"><see cref="T:System.Data.DataSet"/> to use for synchronization.</param>
            <remarks>
            This method makes sure only one meta-data synchronization happens at a time.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SendServerCommand(GSF.TimeSeries.Transport.ServerCommand,System.String)">
            <summary>
            Sends a server command to the publisher connection with associated <paramref name="message"/> data.
            </summary>
            <param name="commandCode"><see cref="T:GSF.TimeSeries.Transport.ServerCommand"/> to send.</param>
            <param name="message">String based command data to send to server.</param>
            <returns><c>true</c> if <paramref name="commandCode"/> transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SendServerCommand(GSF.TimeSeries.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends a server command to the publisher connection.
            </summary>
            <param name="commandCode"><see cref="T:GSF.TimeSeries.Transport.ServerCommand"/> to send.</param>
            <param name="data">Optional command data to send.</param>
            <returns><c>true</c> if <paramref name="commandCode"/> transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.AttemptConnection">
            <summary>
            Attempts to connect to this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.AttemptDisconnection">
            <summary>
            Attempts to disconnect from this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Transport.DataSubscriber"/>.
            </summary>
            <param name="maxLength">Maximum length of the status message.</param>
            <returns>Text of the status message.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.InterpretResponseMessage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Get message from string based response.
            </summary>
            <param name="buffer">Response buffer.</param>
            <param name="startIndex">Start index of response message.</param>
            <param name="length">Length of response message.</param>
            <returns>Decoded response string.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.SynchronizeMetadata">
            <summary>
            Handles meta-data synchronization to local system.
            </summary>
            <remarks>
            This function should only be initiated from call to <see cref="M:GSF.TimeSeries.Transport.DataSubscriber.SynchronizeMetadata(System.Data.DataSet)"/> to make
            sure only one meta-data synchronization happens at once. Users can override this method to customize
            process of meta-data synchronization.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnConnectionEstablished">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionEstablished"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnConnectionTerminated">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionTerminated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnConnectionAuthenticated">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ConnectionAuthenticated"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnReceivedServerResponse(GSF.TimeSeries.Transport.ServerResponse,GSF.TimeSeries.Transport.ServerCommand)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ReceivedServerResponse"/> event.
            </summary>
            <param name="responseCode">Response received from the server.</param>
            <param name="commandCode">Command that the server responded to.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnReceivedUserCommandResponse(GSF.TimeSeries.Transport.ServerCommand,GSF.TimeSeries.Transport.ServerResponse,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ReceivedUserCommandResponse"/> event.
            </summary>
            <param name="command">The code for the user command.</param>
            <param name="response">The code for the server's response.</param>
            <param name="buffer">Buffer containing the message from the server.</param>
            <param name="startIndex">Index into the buffer used to skip the header.</param>
            <param name="length">The length of the message in the buffer, including the header.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnMetaDataReceived(System.Data.DataSet)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.MetaDataReceived"/> event.
            </summary>
            <param name="metadata">Meta-data <see cref="T:System.Data.DataSet"/> instance to send to client subscription.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnDataStartTime(GSF.Ticks)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.DataStartTime"/> event.
            </summary>
            <param name="startTime">Start time, in <see cref="T:GSF.Ticks"/>, of first measurement transmitted.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnProcessingComplete(System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ProcessingComplete"/> event.
            </summary>
            <param name="source">Type name of adapter that sent the processing completed notification.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnNotificationReceived(System.String)">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.NotificationReceived"/> event.
            </summary>
            <param name="message">Message for the notification.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnServerConfigurationChanged">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ServerConfigurationChanged"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Raises <see cref="E:GSF.TimeSeries.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="exception">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.OnExceededParsingExceptionThreshold">
            <summary>
            Raises the <see cref="E:GSF.TimeSeries.Transport.DataSubscriber.ExceededParsingExceptionThreshold"/> event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.DisposeLocalConcentrator">
            <summary>
            Disposes of any previously defined local concentrator.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.DataSubscriber.GetLoggingPath(System.String)">
            <summary>
            Gets file path for any defined logging path.
            </summary>
            <param name="filePath">Path to acquire within logging path.</param>
            <returns>File path within any defined logging path.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.IBinaryMeasurement">
            <summary>
            Defines a <see cref="T:GSF.TimeSeries.IMeasurement"/> that supports <see cref="T:GSF.Parsing.ISupportBinaryImage"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SerializableMeasurement">
            <summary>
            Represents a <see cref="T:GSF.TimeSeries.IMeasurement"/> that can be serialized.
            </summary>
            <remarks>
            This measurement implementation is serialized through <see cref="T:GSF.Parsing.ISupportBinaryImage"/>
            to allow complete control of binary format. All measurement properties are serialized
            at their full resolution and no attempt is made to optimize the binary image for
            purposes of size reduction.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.SerializableMeasurement.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SerializableMeasurement.#ctor(System.Text.Encoding)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/>.
            </summary>
            <param name="encoding">Character encoding used to convert strings to binary.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SerializableMeasurement.#ctor(GSF.TimeSeries.IMeasurement,System.Text.Encoding)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/> from an existing <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <param name="measurement">Source <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="encoding">Character encoding used to convert strings to binary.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SerializableMeasurement.BinaryLength">
            <summary>
            Gets the length of the <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SerializableMeasurement.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/> from the specified 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.InvalidOperationException">Not enough buffer available to deserialize measurement.</exception>
            <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>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SerializableMeasurement.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:GSF.TimeSeries.Transport.SerializableMeasurement"/> 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>
            <para>
            Field:      Bytes:   <br/>
            ---------   ---------<br/>
             Key ID         4    <br/>
            SourceLen       4    <br/>
             Source     SourceLen<br/>
            Signal ID      16    <br/>
             TagLen         4    <br/>
              Tag        TagLen  <br/>
              Value         8    <br/>
              Adder         8    <br/>
            Multiplier      8    <br/>
              Ticks         8    <br/>
              Flags         4    <br/>
            </para>
            <para>
            Constant Length = 64<br/>
            Variable Length = SourceLen + TagLen
            </para>
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.CompactMeasurementStateFlags">
            <summary>
            <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> state flags.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.DataRange">
            <summary>
            A data range flag was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.DataQuality">
            <summary>
            A data quality flag was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.TimeQuality">
            <summary>
            A time quality flag was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.SystemIssue">
            <summary>
            A system flag was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.CalculatedValue">
            <summary>
            Calculated value bit was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.DiscardedValue">
            <summary>
            Discarded value bit was set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.BaseTimeOffset">
            <summary>
            Compact measurement timestamp was serialized using base time offset when set.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.TimeIndex">
            <summary>
            Use odd time index (i.e., 1) when bit is set; even time index (i.e., 0) when bit is clear.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurementStateFlags.NoFlags">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.MeasurementStateMappingExtensions">
            <summary>
            Defines static methods for mapping between compact and full measurement states.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.MeasurementStateMappingExtensions.MapToCompactFlags(GSF.TimeSeries.MeasurementStateFlags)">
            <summary>
            Maps <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> to <see cref="T:GSF.TimeSeries.Transport.CompactMeasurementStateFlags"/>.
            </summary>
            <param name="stateFlags">Flags to map.</param>
            <returns><see cref="T:GSF.TimeSeries.Transport.CompactMeasurementStateFlags"/> mapped from <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.MeasurementStateMappingExtensions.MapToFullFlags(GSF.TimeSeries.Transport.CompactMeasurementStateFlags)">
            <summary>
            Maps <see cref="T:GSF.TimeSeries.Transport.CompactMeasurementStateFlags"/> to <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/>.
            </summary>
            <param name="stateFlags">Flags to map.</param>
            <returns><see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> mapped from <see cref="T:GSF.TimeSeries.Transport.CompactMeasurementStateFlags"/>.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.CompactMeasurement">
            <summary>
            Represents a <see cref="T:GSF.TimeSeries.IMeasurement"/> that can be serialized with minimal size.
            </summary>
            <remarks>
            This measurement implementation is serialized through <see cref="T:GSF.Parsing.ISupportBinaryImage"/>
            to allow complete control of binary format. Only critical measurements properties are
            serialized and every attempt is made to optimize the binary image for purposes of size
            reduction.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.CompactMeasurement.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurement.#ctor(GSF.TimeSeries.Transport.SignalIndexCache,System.Boolean,System.Int64[],System.Int32,System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/>.
            </summary>
            <param name="signalIndexCache">Signal index cache used to serialize or deserialize runtime information.</param>
            <param name="includeTime">Set to <c>true</c> to include time in serialized packet; otherwise <c>false</c>.</param>
            <param name="baseTimeOffsets">Base time offset array - set to <c>null</c> to use full fidelity measurement time.</param>
            <param name="timeIndex">Time index to use for base offset.</param>
            <param name="useMillisecondResolution">Flag that determines if millisecond resolution is in use for this serialization.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurement.#ctor(GSF.TimeSeries.IMeasurement,GSF.TimeSeries.Transport.SignalIndexCache,System.Boolean,System.Int64[],System.Int32,System.Boolean)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> from an existing <see cref="T:GSF.TimeSeries.IMeasurement"/> value.
            </summary>
            <param name="measurement">Source <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="signalIndexCache">Signal index cache used to serialize or deserialize runtime information.</param>
            <param name="includeTime">Set to <c>true</c> to include time in serialized packet; otherwise <c>false</c>.</param>
            <param name="baseTimeOffsets">Base time offset array - set to <c>null</c> to use full fidelity measurement time.</param>
            <param name="timeIndex">Time index to use for base offset.</param>
            <param name="useMillisecondResolution">Flag that determines if millisecond resolution is in use for this serialization.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.IncludeTime">
            <summary>
            Gets flag that determines if time is serialized into measurement binary image.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.BinaryLength">
            <summary>
            Gets the length of the <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.TimestampC2">
            <summary>
            Gets offset compressed millisecond-resolution 2-byte timestamp.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.TimestampC4">
            <summary>
            Gets offset compressed tick-resolution 4-byte timestamp.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.CompactStateFlags">
            <summary>
            Gets or sets byte level compact state flags with encoded time index and base time offset bits.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.CompactMeasurement.RuntimeID">
            <summary>
            Gets or sets the 2-byte run-time signal index for this measurement.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurement.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> from the specified 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.InvalidOperationException">Not enough buffer available to deserialize measurement.</exception>
            <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>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurement.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> 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>
            <para>
            Field:     Bytes: <br/>
            --------   -------<br/>
             Flags        1   <br/>
              ID          2   <br/>
             Value        4   <br/>
             [Time]       2?  <br/>
            </para>
            <para>
            Constant Length = 7<br/>
            Variable Length = 0, 2, 4 or 8 (i.e., total size is 7, 9, 11 or 15)
            </para>
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.CompactMeasurementExtensions">
            <summary>
            Defines extension functions related to <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurementExtensions.CompressPayload(System.Collections.Generic.IEnumerable{GSF.TimeSeries.Transport.CompactMeasurement},GSF.IO.BlockAllocatedMemoryStream,System.Byte,System.Boolean,GSF.TimeSeries.Transport.DataPacketFlags@)">
            <summary>
            Attempts to compress payload of <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> values onto the <paramref name="destination"/> stream.
            </summary>
            <param name="compactMeasurements">Payload of <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> values.</param>
            <param name="destination">Memory based <paramref name="destination"/> stream to hold compressed payload.</param>
            <param name="compressionStrength">Compression strength to use.</param>
            <param name="includeTime">Flag that determines if time should be included in the compressed payload.</param>
            <param name="flags">Current <see cref="T:GSF.TimeSeries.Transport.DataPacketFlags"/>.</param>
            <returns><c>true</c> if payload was compressed and encoded onto <paramref name="destination"/> stream; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            Compressed payload will only be encoded onto <paramref name="destination"/> stream if compressed size would be smaller
            than normal serialized size.
            </para>
            <para>
            As an optimization this function uses a compression method that uses pointers to native structures, as such the
            endian order encoding of the compressed data will always be in the native-endian order of the operating system.
            This will be an important consideration when writing a endian order neutral payload decompressor. To help with
            this the actual endian order used during compression is marked in the data flags. However, measurements values
            are consistently encoded in big-endian order prior to buffer compression.
            </para>
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.CompactMeasurementExtensions.DecompressPayload(System.Byte[],GSF.TimeSeries.Transport.SignalIndexCache,System.Int32,System.Int32,System.Int32,System.Boolean,GSF.TimeSeries.Transport.DataPacketFlags)">
            <summary>
            Decompresses <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> values from the given <paramref name="source"/> buffer.
            </summary>
            <param name="source">Buffer with compressed <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> payload.</param>
            <param name="signalIndexCache">Current <see cref="T:GSF.TimeSeries.Transport.SignalIndexCache"/>.</param>
            <param name="index">Index into buffer where compressed payload begins.</param>
            <param name="dataLength">Length of all data within <paramref name="source"/> buffer.</param>
            <param name="measurementCount">Number of compressed measurements in the payload.</param>
            <param name="includeTime">Flag that determines if timestamps as included in the payload.</param>
            <param name="flags">Current <see cref="T:GSF.TimeSeries.Transport.DataPacketFlags"/>.</param>
            <returns>Decompressed <see cref="T:GSF.TimeSeries.Transport.CompactMeasurement"/> values from the given <paramref name="source"/> buffer.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.IClientSubscription">
            <summary>
            Represents a common set of interfaces for a client adapter subscription to the <see cref="T:GSF.TimeSeries.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.IClientSubscription.BufferBlockRetransmission">
            <summary>
            Indicates that a buffer block needed to be retransmitted because
            it was previously sent, but no confirmation was received.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.IClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.RequestedInputFilter">
            <summary>
            Gets the input filter requested by the subscriber when establishing this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.UsePayloadCompression">
            <summary>
            Gets or sets flag that determines if payload compression should be enabled in data packets of this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.CompressionStrength">
            <summary>
            Gets or sets the compression strength value to use when <see cref="P:GSF.TimeSeries.Transport.IClientSubscription.UsePayloadCompression"/> is <c>true</c> for this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.TemporalSessionStatus">
            <summary>
            Gets the status of the active temporal session, if any.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.IClientSubscription.MeasurementReportingInterval">
            <summary>
            Gets or sets the measurement reporting interval.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscription.ConfirmBufferBlock(System.UInt32)">
            <summary>
            Handles the confirmation message received from the
            subscriber to indicate that a buffer block was received.
            </summary>
            <param name="sequenceNumber">The sequence number of the buffer block.</param>
            <returns>A list of buffer block sequence numbers for blocks that need to be retransmitted.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscription.OnStatusMessage(GSF.Diagnostics.MessageLevel,System.String,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Explicitly raises the <see cref="E:GSF.TimeSeries.Adapters.IAdapter.StatusMessage"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="status">New status message.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscription.OnProcessException(GSF.Diagnostics.MessageLevel,System.Exception,System.String,GSF.Diagnostics.MessageFlags)">
            <summary>
            Explicitly raises the <see cref="E:GSF.TimeSeries.Adapters.IAdapter.ProcessException"/> event.
            </summary>
            <param name="level">The <see cref="T:GSF.Diagnostics.MessageLevel"/> to assign to this message</param>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
            <param name="eventName">A fixed string to classify this event; defaults to <c>null</c>.</param>
            <param name="flags"><see cref="T:GSF.Diagnostics.MessageFlags"/> to use, if any; defaults to <see cref="F:GSF.Diagnostics.MessageFlags.None"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscription.OnProcessingCompleted(System.Object,System.EventArgs)">
            <summary>
            Explicitly raises the <see cref="E:GSF.TimeSeries.Adapters.IInputAdapter.ProcessingComplete"/> event.
            </summary>
            <param name="sender"><see cref="T:GSF.TimeSeries.Adapters.IInputAdapter"/> raising the notification.</param>
            <param name="e">Event arguments for notification, if any.</param>
        </member>
        <member name="T:GSF.TimeSeries.Transport.IClientSubscriptionExtensions">
            <summary>
            Defines static extension functions for <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/> implementations.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscriptionExtensions.CreateTemporalSession(GSF.TimeSeries.Transport.IClientSubscription)">
            <summary>
            Returns a new temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> for a <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
            <param name="clientSubscription"><see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/> instance to create temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> for.</param>
            <returns>New temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> for a <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.IClientSubscriptionExtensions.DisposeTemporalSession(GSF.TimeSeries.Transport.IClientSubscription,GSF.TimeSeries.Adapters.IaonSession@)">
            <summary>
            Disposes a temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> created using <see cref="M:GSF.TimeSeries.Transport.IClientSubscriptionExtensions.CreateTemporalSession(GSF.TimeSeries.Transport.IClientSubscription)"/>.
            </summary>
            <param name="adapter"><see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/> source instance.</param>
            <param name="session"><see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> instance to dispose.</param>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SignalIndexCache">
            <summary>
            Represents a serializable <see cref="T:System.Guid"/> signal ID to <see cref="T:System.UInt16"/> index cross reference.
            </summary>
            <remarks>
            This class is used to create a runtime index to be used for data exchange so that a 16-bit integer
            is exchanged in the data packets for signal identification instead of the 128-bit Guid signal ID
            to reduce bandwidth required for signal exchange. This means the total number of unique signal
            IDs that could be exchanged using this method in a single session is 65,535. This number seems
            reasonable for the currently envisioned use cases, however, multiple sessions each with their own
            runtime signal index cache could be established if this is a limitation for a given data set.
            </remarks>
        </member>
        <member name="F:GSF.TimeSeries.Transport.SignalIndexCache.m_signalIDCache">
            <summary>
            Lookups MeasurementKey.RuntimeID and returns ushort SignalIndex. -1 means it does not exist.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SignalIndexCache.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.SignalIndexCache"/> instance.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SignalIndexCache.#ctor(System.Data.DataSet,GSF.TimeSeries.Transport.SignalIndexCache)">
            <summary>
            Creates a new local system cache from one that was received remotely.
            </summary>
            <param name="dataSource"><see cref="T:System.Data.DataSet"/> based data source used to interpret local measurement keys.</param>
            <param name="remoteCache">Deserialized remote signal index cache.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.SubscriberID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:GSF.TimeSeries.Transport.SignalIndexCache"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.Reference">
            <summary>
            Gets or sets integer signal index cross reference dictionary.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.AuthorizedSignalIDs">
            <summary>
            Gets reference to array of requested input measurement signal IDs that were authorized.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.UnauthorizedSignalIDs">
            <summary>
            Gets or sets reference to array of requested input measurement signal IDs that were unauthorized.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.MaximumIndex">
            <summary>
            Gets the current maximum integer signal index.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.Encoding">
            <summary>
            Gets or sets character encoding used to convert strings to binary.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SignalIndexCache.BinaryLength">
            <summary>
            Gets the length of the binary image.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SignalIndexCache.GetSignalIndex(GSF.TimeSeries.MeasurementKey)">
            <summary>
            Gets runtime signal index for given <see cref="T:System.Guid"/> signal ID.
            </summary>
            <param name="key">The <see cref="T:GSF.TimeSeries.MeasurementKey"/> used to lookup associated runtime signal index.</param>
            <returns>Runtime signal index for given <see cref="T:GSF.TimeSeries.MeasurementKey"/> <paramref name="key"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SignalIndexCache.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:GSF.TimeSeries.Transport.SignalIndexCache"/> and copies it into the given buffer, for <see cref="P:GSF.TimeSeries.Transport.SignalIndexCache.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>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SignalIndexCache.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes the <see cref="T:GSF.TimeSeries.Transport.SignalIndexCache"/> 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>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SubscriptionInfo">
            <summary>
            Configuration object for data subscriptions.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SubscriptionInfo.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Transport.SubscriptionInfo"/> class.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.FilterExpression">
            <summary>
            Gets or sets the filter expression used to define which
            measurements are being requested by the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.UseCompactMeasurementFormat">
            <summary>
            Gets or sets the flag that determines whether to use the
            compact measurement format or the full measurement format
            for transmitting measurements to the subscriber.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.UdpDataChannel">
            <summary>
            Gets or sets the flag that determines whether the subscriber
            is requesting its data over a separate UDP data channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.DataChannelLocalPort">
            <summary>
            Gets or sets the port number that the UDP data channel binds to.
            This value is only used when the subscriber requests a separate
            UDP data channel.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.LagTime">
            <summary>
            Gets or sets the allowed past time deviation
            tolerance in seconds (can be sub-second).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation
            tolerance, in seconds (can be sub-second).
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.UseLocalClockAsRealTime">
            <summary>
            Gets or sets the flag that determines whether the server's
            local clock is used as real-time. If false, the timestamps
            of the measurements will be used as real-time.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.UseMillisecondResolution">
            <summary>
            Gets or sets the flag that determines whether measurement timestamps use
            millisecond resolution. If false, they will use <see cref="T:GSF.Ticks"/> resolution.
            </summary>
            <remarks>
            This flag determines the size of the timestamps transmitted as part of
            the compact measurement format when the server is using base time offsets.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.RequestNaNValueFilter">
            <summary>
            Gets or sets the flag that determines whether to request that measurements
            sent to the subscriber should be filtered by the publisher prior to sending them.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime">
            <summary>
            Gets or sets the start time of the requested
            temporal session for streaming historic data.
            </summary>
            <remarks>
            <para>
            When the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/> or <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> temporal processing constraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/>
            and <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> specifies the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            
            <para>
            Both the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/> and <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime">
            <summary>
            Gets or sets the stop time of the requested
            temporal session for streaming historic data.
            </summary>
            <remarks>
            <para>
            When the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/> or <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> temporal processing constraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/>
            and <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> specifies the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            
            <para>
            Both the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StartTime"/> and <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.StopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.ConstraintParameters">
            <summary>
            Gets or sets the additional constraint parameters
            supplied to temporal adapters in a temporal session.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.ProcessingInterval">
            <summary>
            Gets or sets the processing interval requested by the subscriber.
            A value of <c>-1</c> indicates the default processing interval.
            A value of <c>0</c> indicates data will be processed as fast as
            possible.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, the <see cref="P:GSF.TimeSeries.Transport.SubscriptionInfo.ProcessingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, over which to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SubscriptionInfo.ExtraConnectionStringParameters">
            <summary>
            Gets or sets the additional connection string parameters to
            be applied to the connection string sent to the publisher
            during subscription.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SubscriptionInfo.Copy">
            <summary>
            Creates a shallow copy of this
            <see cref="T:GSF.TimeSeries.Transport.SubscriptionInfo"/> object.
            </summary>
            <returns>The copy of this object.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo">
            <summary>
            Configuration object for synchronized data subscriptions.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.#ctor(System.Boolean,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo"/> class.
            </summary>
            <param name="remotelySynchronized">Flag that determines whether the subscription defined by this object is remotely synchronized or locally synchronized.</param>
            <param name="framesPerSecond">Frame rate of the subscription in frames per second.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.RemotelySynchronized">
            <summary>
            Gets or sets the flag that determines whether this subscription
            is remotely synchronized or locally synchronized.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.FramesPerSecond">
            <summary>
            Gets or sets the frame rate of the subscription in frames per second.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.DownsamplingMethod">
            <summary>
            Gets or sets the down-sampling method used when the frame rate of
            the subscription is lower than the frame rate of the measurement's
            source.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.AllowPreemptivePublishing">
            <summary>
            Gets or sets the flag that determines whether frames should be published
            as soon as the data is available. If false, frames will be published
            when their timestamp expires <c>(realTime > timestamp + lagTime)</c>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.AllowSortsByArrival">
            <summary>
            Gets or sets the flag that determines whether to allow measurement
            sorting based on the measurement's time of arrival, if its timestamp
            is unreasonable.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.IgnoreBadTimestamps">
            <summary>
            Gets or sets the flag that determines whether to
            ignore bad timestamps when sorting measurements.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedSubscriptionInfo.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Desired maximum resolution</term>
                    <description>Value to assign</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>100-Nanoseconds</term>
                    <description>0</description>
                </item>
            </list>
            Assigning values less than zero will be set to zero since minimum possible concentrator resolution is one tick (100-nanoseconds). Assigning
            values values greater than <see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/> will be set to <see cref="T:GSF.Ticks"/>.<see cref="F:GSF.Ticks.PerSecond"/>
            since maximum possible concentrator resolution is one second (i.e., 1 frame per second).
            </remarks>
        </member>
        <member name="T:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo">
            <summary>
            Configuration object for unsynchronized data subscriptions.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo.#ctor(System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo"/> class.
            </summary>
            <param name="throttled">The flag that determines whether to request that the subscription be throttled.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo.Throttled">
            <summary>
            Gets or sets the flag that determines whether
            to request that the subscription be throttled.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo.PublishInterval">
            <summary>
            Gets or sets the interval at which data should be
            published when using a throttled subscription.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedSubscriptionInfo.IncludeTime">
            <summary>
            Gets or sets the flag that determines whether timestamps are
            included in the data sent from the publisher. This value is
            ignored if the data is remotely synchronized.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription">
            <summary>
            Represents a synchronized client subscription to the <see cref="T:GSF.TimeSeries.Transport.DataPublisher" />.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.SynchronizedClientSubscription.BufferBlockRetransmission">
            <summary>
            Indicates that a buffer block needed to be retransmitted because
            it was previously sent, but no confirmation was received.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.SynchronizedClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.#ctor(GSF.TimeSeries.Transport.DataPublisher,System.Guid,System.Guid,GSF.TimeSeries.Transport.CompressionModes)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"><see cref="T:System.Guid"/> based client connection ID.</param>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
            <param name="compressionModes"><see cref="T:GSF.TimeSeries.Transport.CompressionModes"/> requested by client.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.Name">
            <summary>
            Gets name of the action adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.UsePayloadCompression">
            <summary>
            Gets or sets flag that determines if payload compression should be enabled in data packets of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.CompressionStrength">
            <summary>
            Gets or sets the compression strength value to use when <see cref="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.UsePayloadCompression"/> is <c>true</c> for this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            Although this adapter provisions support for temporal processing by proxying historical data to a remote sink, the adapter
            does not need to be automatically engaged within an actual temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, therefore this method returns
            <c>false</c> to make sure the adapter doesn't get automatically instantiated within a temporal session.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.TemporalSessionStatus">
            <summary>
            Gets the status of the active temporal session, if any.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/> 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.TimeSeries.Transport.SynchronizedClientSubscription.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.Start">
            <summary>
            Starts the <see cref="T:GSF.TimeSeries.Transport.SynchronizedClientSubscription"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:GSF.TimeSeries.Transport.SynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dynamic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.ConfirmBufferBlock(System.UInt32)">
            <summary>
            Handles the confirmation message received from the
            subscriber to indicate that a buffer block was received.
            </summary>
            <param name="sequenceNumber">The sequence number of the buffer block.</param>
            <returns>A list of buffer block sequence numbers for blocks that need to be retransmitted.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.SynchronizedClientSubscription.PublishFrame(GSF.TimeSeries.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:GSF.TimeSeries.IFrame"/> of time-aligned collection of <see cref="T:GSF.TimeSeries.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:GSF.TimeSeries.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:GSF.TimeSeries.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:GSF.TimeSeries.IFrame"/> within a second ranging from zero to <c><see cref="P:GSF.TimeSeries.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
        </member>
        <member name="T:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy">
            <summary>
            Represents an action adapter that exists within a temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> to proxy data back to its parent <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/> instance.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy.Parent">
            <summary>
            Gets or sets parent subscription for the proxy used to deliver data.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Proxies measurements to parent adapter for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Transport.TemporalClientSubscriptionProxy"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status for this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="T:GSF.TimeSeries.Transport.TSSC.TsscPointMetadata">
            <summary>
            The metadata kept for each pointID.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.TSSC.TsscCodeWords">
            <summary>
            The encoding commands supported by TSSC. This class is used by 
            <see cref="T:GSF.TimeSeries.Transport.TSSC.TsscDecoder"/> and <see cref="T:GSF.TimeSeries.Transport.TSSC.TsscEncoder"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.TSSC.TsscDecoder">
            <summary>
            The decoder for the TSSC protocol.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscDecoder.#ctor">
            <summary>
            Creates a decoder for the TSSC protocol.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscDecoder.Reset">
            <summary>
            Resets the TSSC Decoder to the initial state. 
            </summary>
            <remarks>
            TSSC is a stateful encoder that requires a state
            of the previous data to be maintained. Therefore, if 
            the state ever becomes corrupt (out of order, dropped, corrupted, or duplicated)
            the state must be reset on both ends.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscDecoder.SetBuffer(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Sets the internal buffer to read data from.
            </summary>
            <param name="data"></param>
            <param name="startingPosition"></param>
            <param name="length"></param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscDecoder.TryGetMeasurement(System.UInt16@,System.Int64@,System.UInt32@,System.Single@)">
            <summary>
            Reads the next measurement from the stream. If the end of the stream has been encountered, 
            return false.
            </summary>
            <param name="id">the id</param>
            <param name="timestamp">the timestamp in ticks</param>
            <param name="quality">the quality</param>
            <param name="value">the value</param>
            <returns>true if successful, false otherwise.</returns>
        </member>
        <member name="F:GSF.TimeSeries.Transport.TSSC.TsscDecoder.m_bitStreamCount">
            <summary>
            The number of bits in m_bitStreamCache that are valid. 0 Means the bitstream is empty.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.TSSC.TsscDecoder.m_bitStreamCache">
            <summary>
            A cache of bits that need to be flushed to m_buffer when full. Bits filled starting from the right moving left.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscDecoder.ClearBitStream">
            <summary>
            Resets the stream so it can be reused. All measurements must be registered again.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.TSSC.TsscEncoder">
            <summary>
            An encoder for the TSSC protocol.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.#ctor">
            <summary>
            Creates a encoder for the TSSC protocol.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.Reset">
            <summary>
            Resets the TSSC Encoder to the initial state. 
            </summary>
            <remarks>
            TSSC is a stateful encoder that requires a state
            of the previous data to be maintained. Therefore, if 
            the state ever becomes corrupt (out of order, dropped, corrupted, or duplicated)
            the state must be reset on both ends.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.SetBuffer(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Sets the internal buffer to write data to.
            </summary>
            <param name="data"></param>
            <param name="startingPosition"></param>
            <param name="length"></param>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.FinishBlock">
            <summary>
            Finishes the current block and returns position after the last byte written.
            </summary>
            <returns></returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.TryAddMeasurement(System.UInt16,System.Int64,System.UInt32,System.Single)">
            <summary>
            Adds the supplied measurement to the stream. If the stream is full,
            this method returns false.
            </summary>
            <param name="id">the id</param>
            <param name="timestamp">the timestamp in ticks</param>
            <param name="quality">the quality</param>
            <param name="value">the value</param>
            <returns>true if successful, false otherwise.</returns>
        </member>
        <member name="F:GSF.TimeSeries.Transport.TSSC.TsscEncoder.m_bitStreamBufferIndex">
            <summary>
            The position in m_buffer where the bit stream should be flushed
            -1 means no bit stream position has been assigned. 
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.TSSC.TsscEncoder.m_bitStreamCacheBitCount">
            <summary>
            The number of bits in m_bitStreamCache that are valid. 0 Means the bitstream is empty.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.Transport.TSSC.TsscEncoder.m_bitStreamCache">
            <summary>
            A cache of bits that need to be flushed to m_buffer when full. Bits filled starting from the right moving left.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.TSSC.TsscEncoder.ClearBitStream">
            <summary>
            Resets the stream so it can be reused. All measurements must be registered again.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription">
            <summary>
            Represents an unsynchronized client subscription to the <see cref="T:GSF.TimeSeries.Transport.DataPublisher" />.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.BufferBlockRetransmission">
            <summary>
            Indicates that a buffer block needed to be retransmitted because
            it was previously sent, but no confirmation was received.
            </summary>
        </member>
        <member name="E:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal processing.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.#ctor(GSF.TimeSeries.Transport.DataPublisher,System.Guid,System.Guid,GSF.TimeSeries.Transport.CompressionModes)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"><see cref="T:System.Guid"/> based client connection ID.</param>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
            <param name="compressionModes"><see cref="T:GSF.TimeSeries.Transport.CompressionModes"/> requested by client.</param>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.Name">
            <summary>
            Gets name of the action adapter.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.RequestedInputFilter">
            <summary>
            Gets the input filter requested by the subscriber when establishing this <see cref="T:GSF.TimeSeries.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.UsePayloadCompression">
            <summary>
            Gets or sets flag that determines if payload compression should be enabled in data packets of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.CompressionStrength">
            <summary>
            Gets or sets the compression strength value to use when <see cref="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.UsePayloadCompression"/> is <c>true</c> for this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, over which to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            Although this adapter provisions support for temporal processing by proxying historical data to a remote sink, the adapter
            does not need to be automatically engaged within an actual temporal <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/>, therefore this method returns
            <c>false</c> to make sure the adapter doesn't get automatically instantiated within a temporal session.
            </remarks>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.TemporalSessionStatus">
            <summary>
            Gets the status of the active temporal session, if any.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/> 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.TimeSeries.Transport.UnsynchronizedClientSubscription.Initialize">
            <summary>
            Initializes <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.Start">
            <summary>
            Starts the <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.Stop">
            <summary>
            Stops the <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>	
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:GSF.TimeSeries.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{GSF.TimeSeries.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dynamic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.Transport.UnsynchronizedClientSubscription.ConfirmBufferBlock(System.UInt32)">
            <summary>
            Handles the confirmation message received from the
            subscriber to indicate that a buffer block was received.
            </summary>
            <param name="sequenceNumber">The sequence number of the buffer block.</param>
            <returns>A list of buffer block sequence numbers for blocks that need to be retransmitted.</returns>
        </member>
        <member name="T:GSF.TimeSeries.DebugHostBase">
            <summary>
            Windows form application used to host the time-series framework service.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.DebugHostBase.ServiceHost">
            <summary>
            Reference to instance of <see cref="T:GSF.TimeSeries.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.DebugHostBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:GSF.TimeSeries.DebugHostBase"/> windows form.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.DebugHostBase.ServiceClientName">
            <summary>
            Gets the executable name of the service client that can remotely access the time-series framework service.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.DebugHostBase.DebugHostLoading">
            <summary>
            Invoked when the debug host is loading. By default this launches the remote service client.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.DebugHostBase.DebugHostUnloading">
            <summary>
            Invoked when the debug host is unloading. By default this shuts down the remote service client.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.DebugHostBase.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.DebugHostBase.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:GSF.TimeSeries.DebugHostBase.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.ConfigurationType">
            <summary>
            Configuration data source type enumeration.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.ConfigurationType.Database">
            <summary>
            Configuration source is a database.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.ConfigurationType.WebService">
            <summary>
            Configuration source is a web-service.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.ConfigurationType.BinaryFile">
            <summary>
            Configuration source is a binary file.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.ConfigurationType.XmlFile">
            <summary>
            Configuration source is a XML file.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.ServiceHostBase">
            <summary>
            Represents the time-series framework service host.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.#ctor">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Creates a new <see cref="T:GSF.TimeSeries.ServiceHostBase"/> from specified parameters.
            </summary>
            <param name="container">Service host <see cref="T:System.ComponentModel.IContainer"/>.</param>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.ConsoleApplicationName">
            <summary>
            Gets the related remote console application name.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.ServiceHelper">
            <summary>
            Gets access to the <see cref="T:GSF.ServiceProcess.ServiceHelper"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.RemotingServer">
            <summary>
            Gets reference to the <see cref="T:GSF.Communication.TcpServer"/> based remoting server.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.AllAdapters">
            <summary>
            Gets reference to the <see cref="T:GSF.TimeSeries.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.InputAdapters">
            <summary>
            Gets reference to the <see cref="T:GSF.TimeSeries.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.ActionAdapters">
            <summary>
            Gets reference to the <see cref="T:GSF.TimeSeries.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.OutputAdapters">
            <summary>
            Gets reference to the <see cref="T:GSF.TimeSeries.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.FilterAdapters">
            <summary>
            Gets reference to the <see cref="T:GSF.TimeSeries.Adapters.FilterAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.NodeID">
            <summary>
            Gets the current node ID.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.NodeIDQueryString">
            <summary>
            Gets the current node ID formatted for use in a SQL query string based on <see cref="P:GSF.TimeSeries.ServiceHostBase.ConfigurationType"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.DataSource">
            <summary>
            Gets the currently loaded system configuration <see cref="T:System.Data.DataSet"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.ConfigurationType">
            <summary>
            Gets the defined system <see cref="T:GSF.TimeSeries.ConfigurationType"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.ServiceHostBase.VerifyLocalCertificatePrivateKey">
            <summary>
            Gets or sets flag that determines if the local certificate's private key should be verified upon service start.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ServiceStartingHandler(System.Object,GSF.EventArgs{System.String[]})">
            <summary>
            Event handler for service starting operations.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments containing command line arguments passed into service at startup.</param>
            <remarks>
            Time-series framework uses this handler to load settings from configuration file as service is starting.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ServiceStartedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service started operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to handle initialization of system objects.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ServiceStoppingHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service stopping operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to un-wire events and dispose of system objects.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.InitializeServiceHelper">
            <summary>
            Initializes the service helper.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.PropagateDataSource(System.Data.DataSet)">
            <summary>
            Handle assignment of data source to Iaon session.
            </summary>
            <param name="dataSource">New data source to assign.</param>
            <returns><c>true</c> if data source was assigned; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.CacheCurrentConfiguration(System.Data.DataSet)">
            <summary>
            Caches the current system configuration.
            </summary>
            <param name="configuration">Configuration <see cref="T:System.Data.DataSet"/>.</param>
            <remarks>
            This method allows caching of the current system configuration so it can be used if primary configuration source is unavailable.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:GSF.TimeSeries.ServiceHostBase"/> 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.TimeSeries.ServiceHostBase.OnStart(System.String[])">
            <summary>
            Handles service start event.
            </summary>
            <param name="args">Service startup arguments, if any.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.OnStop">
            <summary>
            Handles service stop event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.OnPause">
            <summary>
            Handles service pause event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.OnContinue">
            <summary>
            Handles service continue event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.OnShutdown">
            <summary>
            Handles service shut down event.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.StatusMessageHandler(System.Object,GSF.EventArgs{System.String,GSF.UpdateType})">
            <summary>
            Event handler for reporting status messages.
            </summary>
            <param name="sender">Event source of the status message.</param>
            <param name="e">Event arguments containing the status message and its type to report.</param>
            <remarks>
            The time-series framework <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> uses this event to report adapter status messages (e.g., to a log file or console window).
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ProcessExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing reported exceptions.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
            <remarks>
            The time-series framework <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> uses this event to report exceptions.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ConfigurationChangedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for processing notifications from adapters that configuration has changed.
            </summary>
            <param name="sender">Event source of the notification.</param>
            <param name="e">Event arguments, if any.</param>
            <remarks>
            The time-series framework <see cref="T:GSF.TimeSeries.Adapters.IaonSession"/> uses this event to report configuration changes.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.LogExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing exceptions encountered while writing entries to any log file.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
            <remarks>
            This function is for derived classes wanting access to any logged exception without needing
            to override all specific log exception handlers.
            </remarks>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.StatusLogExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing exceptions encountered while writing entries to the status log file.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ErrorLogExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing exceptions encountered while writing entries to the error log file.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ConnectionErrorLogExceptionHandler(System.Object,GSF.EventArgs{System.Exception})">
            <summary>
            Event handler for processing exceptions encountered while writing entries to the connection log file.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.HealthMonitorProcessHandler(System.String,System.Object[])">
            <summary>
            Event handler for scheduled health monitor display.
            </summary>
            <param name="name">Scheduled event name.</param>
            <param name="parameters">Scheduled event parameters.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.StatusExportProcessHandler(System.String,System.Object[])">
            <summary>
            Event handler for scheduled adapter status export.
            </summary>
            <param name="name">Scheduled event name.</param>
            <param name="parameters">Scheduled event parameters.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ReportingProcessHandler(System.String,System.Object[])">
            <summary>
            Event handler for scheduled reporting services.
            </summary>
            <param name="name">Scheduled event name.</param>
            <param name="parameters">Scheduled event parameters.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.GetRequestedCollection(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets requested <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/>.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>Requested <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.GetRequestedAdapter(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets requested <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>Requested <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.GetRequestedAdapter(GSF.ServiceProcess.ClientRequestInfo,GSF.TimeSeries.Adapters.IAdapterCollection@)">
            <summary>
            Gets requested <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/> and its containing <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/>.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="collection">Containing <see cref="T:GSF.TimeSeries.Adapters.IAdapterCollection"/> for <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</param>
            <returns>Requested <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ListRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Displays status of specified adapter or collection.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.StartRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Starts specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.StopRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Stops specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ActionRequestHandler(GSF.ServiceProcess.ClientRequestInfo,System.Action{GSF.TimeSeries.Adapters.IAdapter})">
            <summary>
            Generic adapter request handler.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="adapterAction">Action to perform on <see cref="T:GSF.TimeSeries.Adapters.IAdapter"/>.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.InvokeRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Invokes specified adapter command.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ListCommandsRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Lists possible commands of specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.InitializeRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Performs initialization or reinitialization of specified adapter or collection.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.LogEventRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Sends remote entry for logging.
            </summary>
            <param name="requestInfo"></param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.GetInputMeasurementsRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets adapter input measurements.
            </summary>
            <param name="requestInfo"></param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.GetOutputMeasurementsRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets adapter output measurements.
            </summary>
            <param name="requestInfo"></param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.TemporalSupportRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Determines support for temporal processing from existing adapters.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.RefreshRoutesRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Recalculates routing tables.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ReloadConfigRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Manually reloads system configuration.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.UpdateConfigFileRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Updates an option in the configuration file.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.ManageCertificateHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Manages the certificate used by the service.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.AuthenticateRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Attempts to authenticate or re-authenticate to network shares.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.RestartServiceHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Attempts to restart the hose service.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.RequestedAdapterExists(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Determines whether the requested adapter exists.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>True if the requested adapter exists; false otherwise.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.PingRequestHandler(GSF.ServiceProcess.ClientRequestInfo)">
            <summary>
            Used to ping a device.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>True if the requested adapter exists; false otherwise.</returns>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.SendResponse(GSF.ServiceProcess.ClientRequestInfo,System.Boolean)">
            <summary>
            Sends an actionable response to client.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.SendResponse(GSF.ServiceProcess.ClientRequestInfo,System.Boolean,System.String,System.Object[])">
            <summary>
            Sends an actionable response to client with a formatted message.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
            <param name="status">Formatted status message to send with response.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.SendResponseWithAttachment(GSF.ServiceProcess.ClientRequestInfo,System.Boolean,System.Object,System.String,System.Object[])">
            <summary>
            Sends an actionable response to client with a formatted message and attachment.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
            <param name="attachment">Attachment to send with response.</param>
            <param name="status">Formatted status message to send with response.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.DisplayResponseMessage(GSF.ServiceProcess.ClientRequestInfo,System.String,System.Object[])">
            <summary>
            Displays a response message to client requester.
            </summary>
            <param name="requestInfo"><see cref="T:GSF.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="status">Formatted status message to send to client.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.DisplayStatusMessage(System.String,GSF.UpdateType)">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Status message to send to all clients.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of message to send.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.DisplayStatusMessage(System.String,GSF.UpdateType,System.Boolean)">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Status message to send to all clients.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of message to send.</param>
            <param name="publishToLog">Determines if messages should be sent logging engine.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.DisplayStatusMessage(System.String,GSF.UpdateType,System.Object[])">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Formatted status message to send to all clients.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of message to send.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.DisplayStatusMessage(System.String,GSF.UpdateType,System.Boolean,System.Object[])">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Formatted status message to send to all clients.</param>
            <param name="type"><see cref="T:GSF.UpdateType"/> of message to send.</param>
            <param name="publishToLog">Determines if messages should be sent logging engine.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.LogException(System.Exception)">
            <summary>
            Logs an exception to the service helper <see cref="T:GSF.ErrorManagement.ErrorLogger"/>.
            </summary>
            <param name="ex"><see cref="T:System.Exception"/> to log.</param>
        </member>
        <member name="F:GSF.TimeSeries.ServiceHostBase.components">
            <summary> 
            Required designer variable.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.ServiceHostBase.InitializeComponent">
            <summary> 
            Required method for Designer support - do not modify 
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.TemporalOutlierOperation">
            <summary>
            Enumeration that defines how to handle <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>
            values that are outside of the defined Lag/Lead time bounds.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.TemporalOutlierOperation.PublishValueAsNan">
            <summary>
            Measurement value is set to <see cref="F:System.Double.NaN"/> if it is outside of the
            defined time bounds. This is the default behavior.
            </summary>
        </member>
        <member name="F:GSF.TimeSeries.TemporalOutlierOperation.PublishWithBadState">
            <summary>
            Measurement value is preserved if it is outside of the time bounds, but the state
            flags are set to <see cref="P:GSF.TimeSeries.TemporalMeasurement.OutlierState"/> which defaults to
            <see cref="F:GSF.TimeSeries.MeasurementStateFlags.SuspectTime"/>.
            </summary>
        </member>
        <member name="T:GSF.TimeSeries.TemporalMeasurement">
            <summary>
            Represents a time constrained measured value.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TemporalMeasurement.#ctor(System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="M:GSF.TimeSeries.TemporalMeasurement.#ctor(GSF.TimeSeries.IMeasurement,System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="measurement">Source <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="P:GSF.TimeSeries.TemporalMeasurement.OutlierOperation">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.TemporalOutlierOperation"/> for this <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> when
            timestamp is outside defined Lag/Lead time bounds.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.TemporalMeasurement.OutlierState">
            <summary>
            Gets or sets the <see cref="T:GSF.TimeSeries.MeasurementStateFlags"/> to apply to this <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> when
            <see cref="P:GSF.TimeSeries.TemporalMeasurement.OutlierOperation"/> is set to <see cref="F:GSF.TimeSeries.TemporalOutlierOperation.PublishWithBadState"/> and
            timestamp is outside defined Lag/Lead time bounds.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.TemporalMeasurement.LagTime">
            <summary>Allowed past time deviation tolerance in seconds (can be sub-second).</summary>
            <remarks>
            <para>This value defines the time sensitivity to past measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too old.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:GSF.TimeSeries.TemporalMeasurement.LeadTime">
            <summary>Allowed future time deviation tolerance in seconds (can be sub-second).</summary>
            <remarks>
            <para>This value defines the time sensitivity to future measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="M:GSF.TimeSeries.TemporalMeasurement.GetAdjustedValue(GSF.Ticks)">
            <summary>
            Gets numeric adjusted value of this <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>, constrained within specified ticks.
            </summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            <para>Note that returned value will be offset by adder and multiplier.</para>
            </remarks>
            <param name="timestamp">Timestamp used to constrain <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Value offset by adder and multiplier (i.e., Value * Multiplier + Adder).</returns>
        </member>
        <member name="M:GSF.TimeSeries.TemporalMeasurement.GetValue(GSF.Ticks)">
            <summary>
            Gets numeric value of this <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>, constrained within specified ticks.
            </summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            </remarks>
            <param name="timestamp">Timestamp, in ticks, used to constrain <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Raw value of this measurement (i.e., value that is not offset by adder and multiplier).</returns>
        </member>
        <member name="M:GSF.TimeSeries.TemporalMeasurement.SetValue(GSF.Ticks,GSF.Ticks,System.Double,GSF.TimeSeries.MeasurementStateFlags)">
            <summary>
            Sets numeric value and timestamp, as ticks, of this <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>.
            </summary>
            <remarks>
            <para>Operation will only store a value that is newer than the cached value.</para>
            </remarks>
            <param name="currentTime">Timestamp, in ticks, used to constrain <see cref="T:GSF.TimeSeries.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <param name="timestamp">New timestamp, in ticks, for <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>.</param>
            <param name="value">New value for <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>, only stored if <paramref name="timestamp"/> are newer than current <see cref="T:GSF.Ticks"/>.</param>
            <param name="flags">New flags for <see cref="T:GSF.TimeSeries.TemporalMeasurement"/>.</param>
            <returns><c>true</c> if value was updated; otherwise <c>false</c>.</returns>
        </member>
        <member name="T:GSF.TimeSeries.TrackingFrame">
            <summary>
            <see cref="T:GSF.TimeSeries.IFrame"/> container used to track <see cref="T:GSF.TimeSeries.IMeasurement"/> values for down-sampling.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TrackingFrame.#ctor(GSF.TimeSeries.IFrame,GSF.TimeSeries.DownsamplingMethod)">
            <summary>
            Constructs a new <see cref="T:GSF.TimeSeries.TrackingFrame"/> given the specified parameters.
            </summary>
            <param name="sourceFrame">Source <see cref="T:GSF.TimeSeries.IFrame"/> to track.</param>
            <param name="downsamplingMethod"><see cref="T:GSF.TimeSeries.DownsamplingMethod"/> to apply.</param>
        </member>
        <member name="P:GSF.TimeSeries.TrackingFrame.SourceFrame">
            <summary>
            Gets instance of <see cref="T:GSF.TimeSeries.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.TrackingFrame.Timestamp">
            <summary>
            Gets timestamp of <see cref="T:GSF.TimeSeries.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.TrackingFrame.DownsampledMeasurements">
            <summary>
            Total number of measurements down-sampled by <see cref="T:GSF.TimeSeries.TrackingFrame"/>.
            </summary>
        </member>
        <member name="P:GSF.TimeSeries.TrackingFrame.Lock">
            <summary>
            Gets the <see cref="T:GSF.TimeSeries.TrackingFrame"/> locking primitive.
            </summary>
        </member>
        <member name="M:GSF.TimeSeries.TrackingFrame.DeriveMeasurementValue(GSF.TimeSeries.IMeasurement)">
            <summary>
            Derives measurement value, down-sampling if needed.
            </summary>
            <param name="measurement">New <see cref="T:GSF.TimeSeries.IMeasurement"/> value.</param>
            <returns>New derived <see cref="T:GSF.TimeSeries.IMeasurement"/> value, or null if value should not be assigned to <see cref="T:GSF.TimeSeries.IFrame"/>.</returns>
        </member>
    </members>
</doc>
