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
Afficher le fichier Open project: GridProtectionAlliance/gsf Class Usage Examples

Private Properties

Свойство 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

Méthodes publiques

Méthode 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.

Méthodes protégées

Méthode 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

Méthode 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 méthode

Creates a new DataGapRecoverer.
public DataGapRecoverer ( ) : System
Résultat System

Dispose() public méthode

Releases all the resources used by the DataGapRecoverer object.
public Dispose ( ) : void
Résultat void

Dispose() protected méthode

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.
Résultat void

FlushLog() public méthode

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.
Résultat bool

FlushLogAsync() public méthode

Queues up a flush to happen asynchronously.
public FlushLogAsync ( ) : void
Résultat void

Initialize() public méthode

Initializes the DataGapRecoverer.
public Initialize ( ) : void
Résultat void

LogDataGap() public méthode

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.
Résultat bool

OnProcessException() protected méthode

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 .
Résultat void

OnRecoveredMeasurements() protected méthode

Raises the RecoveredMeasurements event.
protected OnRecoveredMeasurements ( ICollection measurements ) : void
measurements ICollection
Résultat void

OnStatusMessage() protected méthode

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 .
Résultat void