C# Class GSF.TimeSeries.Transport.DataGapRecoverer

Represents a data gap recovery module.

Data gaps will be recovered using an unsynchronized temporal subscription.

This class expects that source historian that feeds temporal subscription will recover data in time-sorted order.

Inheritance: ISupportLifecycle, IProvideStatus
Mostra file Open project: GridProtectionAlliance/gsf Class Usage Examples

Private Properties

Property Type Description
CanProcessDataGap bool
Common_ProcessException void
Common_StatusMessage void
DataStreamMonitor_Elapsed void
GetLoggingPath string
ProcessDataGap void
TemporalSubscription_ConnectionEstablished void
TemporalSubscription_ConnectionTerminated void
TemporalSubscription_NewMeasurements void
TemporalSubscription_ProcessingComplete void

Public Methods

Method Description
DataGapRecoverer ( ) : System

Creates a new DataGapRecoverer.

Dispose ( ) : void

Releases all the resources used by the DataGapRecoverer object.

FlushLog ( int timeout = Timeout.Infinite ) : bool

Blocks calling thread until data gap OutageLog has been flushed to disk.

Data gap log is automatically persisted to disk as Outage items are added or removed from the log. This function only exists to force a flush and block calling thread until flush has completed.

Function first waits for any pending data gap operation to complete then waits for data gap log to be flushed. Both waits use the same timeout value, as a result it is possible that total wait time could be longer than specified wait time.

FlushLogAsync ( ) : void

Queues up a flush to happen asynchronously.

Initialize ( ) : void

Initializes the DataGapRecoverer.

LogDataGap ( DateTimeOffset startTime, DateTimeOffset endTime ) : bool

Logs a new data gap for processing.

Data gap will not be logged for processing if the startTime and endTime do not represent a valid time span for recovery according to MinimumRecoverySpan and MaximumRecoverySpan.

Protected Methods

Method Description
Dispose ( bool disposing ) : void

Releases the unmanaged resources used by the DataGapRecoverer object and optionally releases the managed resources.

OnProcessException ( MessageLevel level, Exception exception, string eventName = null, MessageFlags flags = MessageFlags.None ) : void

Raises the ProcessException event.

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.

OnRecoveredMeasurements ( ICollection measurements ) : void

Raises the RecoveredMeasurements event.

OnStatusMessage ( MessageLevel level, string status, string eventName = null, MessageFlags flags = MessageFlags.None ) : void

Raises the StatusMessage event and sends this data to the Logger.

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.

Private Methods

Method Description
CanProcessDataGap ( Outage dataGap ) : bool
Common_ProcessException ( object sender, EventArgs e ) : void
Common_StatusMessage ( object sender, EventArgs e ) : void
DataStreamMonitor_Elapsed ( object sender, EventArgs e ) : void
GetLoggingPath ( string filePath ) : string
ProcessDataGap ( Outage dataGap ) : void
TemporalSubscription_ConnectionEstablished ( object sender, EventArgs e ) : void
TemporalSubscription_ConnectionTerminated ( object sender, EventArgs e ) : void
TemporalSubscription_NewMeasurements ( object sender, EventArgs e ) : void
TemporalSubscription_ProcessingComplete ( object sender, EventArgs e ) : void

Method Details

DataGapRecoverer() public method

Creates a new DataGapRecoverer.
public DataGapRecoverer ( ) : System
return System

Dispose() public method

Releases all the resources used by the DataGapRecoverer object.
public Dispose ( ) : void
return void

Dispose() protected method

Releases the unmanaged resources used by the DataGapRecoverer object and optionally releases the managed resources.
protected Dispose ( bool disposing ) : void
disposing bool true to release both managed and unmanaged resources; false to release only unmanaged resources.
return void

FlushLog() public method

Blocks calling thread until data gap OutageLog has been flushed to disk.

Data gap log is automatically persisted to disk as Outage items are added or removed from the log. This function only exists to force a flush and block calling thread until flush has completed.

Function first waits for any pending data gap operation to complete then waits for data gap log to be flushed. Both waits use the same timeout value, as a result it is possible that total wait time could be longer than specified wait time.

public FlushLog ( int timeout = Timeout.Infinite ) : bool
timeout int Optional time-out for waiting thread block. Defaults to waiting indefinitely.
return bool

FlushLogAsync() public method

Queues up a flush to happen asynchronously.
public FlushLogAsync ( ) : void
return void

Initialize() public method

Initializes the DataGapRecoverer.
public Initialize ( ) : void
return void

LogDataGap() public method

Logs a new data gap for processing.
Data gap will not be logged for processing if the startTime and endTime do not represent a valid time span for recovery according to MinimumRecoverySpan and MaximumRecoverySpan.
public LogDataGap ( DateTimeOffset startTime, DateTimeOffset endTime ) : bool
startTime DateTimeOffset Start time of data gap.
endTime DateTimeOffset End time of data gap.
return bool

OnProcessException() protected method

Raises the ProcessException event.
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.
protected OnProcessException ( MessageLevel level, Exception exception, string eventName = null, MessageFlags flags = MessageFlags.None ) : void
level MessageLevel The to assign to this message
exception System.Exception Processing .
eventName string A fixed string to classify this event; defaults to null.
flags MessageFlags to use, if any; defaults to .
return void

OnRecoveredMeasurements() protected method

Raises the RecoveredMeasurements event.
protected OnRecoveredMeasurements ( ICollection measurements ) : void
measurements ICollection
return void

OnStatusMessage() protected method

Raises the StatusMessage event and sends this data to the Logger.
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.
protected OnStatusMessage ( MessageLevel level, string status, string eventName = null, MessageFlags flags = MessageFlags.None ) : void
level MessageLevel The to assign to this message
status string New status message.
eventName string A fixed string to classify this event; defaults to null.
flags MessageFlags to use, if any; defaults to .
return void