AP&C API Reference
Public Member Functions | Protected Member Functions | Protected Attributes | Properties | List of all members
Apac.Reporting.ThreadedReportingEngine Class Referenceabstract
Inheritance diagram for Apac.Reporting.ThreadedReportingEngine:
Apac.Supervisable Apac.Reporting.IReportGenerator Apac.ISupervisable Apac.Ecop.Reporting.JsonMeasurementReportingEngine Apac.Reporting.XmlCktUsageReportGenerator

Public Member Functions

 ThreadedReportingEngine ()
 Initializes a new instance of the ThreadedReportingEngine<ValueType> class. More...
 
 ThreadedReportingEngine (IMeasurementStore dataStore, ISettingsStore settingStore, IDataCompiler compiler)
 Initializes a new instance of the ThreadedReportingEngine<ValueType> class. More...
 
void GenerateWeeklyReports (DateTime date)
 Should completely re/generate the weekly reports for the week containing the given date. More...
 
void GenerateMonthlyReports (DateTime date)
 Should completely re/generate the monthly reports for the month containing the given date. More...
 
void AppendToWeeklyReports (DateTime date)
 Should append data for the given date to the weekly report. More...
 
void AppendToMonthlyReports (DateTime date)
 Should append data for the given date to the monthly report. More...
 
void Dispose ()
 
- Public Member Functions inherited from Apac.Supervisable
void Initialize (Apac.Configuration.SupervisableConfig config, Supervisors.ISupervisor supervisor)
 Initializes the controller from configuration. More...
 
void ResolveReferences ()
 Resolves any references this component might hold to other supervisable components. More...
 
void CheckReferencesStates ()
 Checks the states of referenced components to be sure they are satisfactory for this component's operation. More...
 
void Starting ()
 Signals that the component will be starting on its own thread. This implementation uses this opportunity to CheckReferencesStates, change state to Starting, and signal subclasses with OnStarting. More...
 
void Start ()
 Starts the component. More...
 
void Stop ()
 Stops the component. More...
 
- Public Member Functions inherited from Apac.ISupervisable
void Initialize (Apac.Configuration.SupervisableConfig config, Supervisors.ISupervisor exec)
 Initializes the component with the given SupervisableConfig (or derivative) and ISupervisor. More...
 

Protected Member Functions

override void OnInitialize (Apac.Configuration.SupervisableConfig config)
 Called when the supervisable component is intitialized. More...
 
override void OnResolveReferences ()
 Called when the supervisable component needs to resolve its runtime references to other components. More...
 
override void OnCheckReferencesStates ()
 Called when the supervisable component needs to check the state of its runtime reference components. More...
 
override void OnStart ()
 Called to start the supervisable component. More...
 
override void OnStop ()
 Called to stop the supervisable component. More...
 
abstract void OnAppendToWeeklyReports (DateTime date)
 Signals to append data for the given date to the weekly report. More...
 
abstract void OnAppendToMonthlyReports (DateTime date)
 Signals to append data for the given date to the monthly report. More...
 
abstract void OnGenerateWeeklyReports (DateTime date)
 Signals a complete re/generate of the weekly reports for the month containing the given date. More...
 
abstract void OnGenerateMonthlyReports (DateTime date)
 Signals a complete re/generate of the monthly reports for the month containing the given date. More...
 
virtual void Dispose (bool disposing)
 
- Protected Member Functions inherited from Apac.Supervisable
abstract void OnInitialize (Apac.Configuration.SupervisableConfig config)
 Called when the supervisable component is intitialized. More...
 
virtual void OnStarting ()
 Called when the supervisable component is about to start. This differs from handling OnStart in that this method is called on the supervisor's thread, whereas Start is called on a new thread. Subclasses may override this to do work that is considered initialization work that should be done before all component threads are started. More...
 
virtual void OnStateChanging (SupervisableState currentState, SupervisableState newState)
 Call chain for state changing notification. More...
 
virtual void OnStateChanged (SupervisableState previousState, SupervisableState newState)
 Call chain for state changed notification. More...
 
virtual void OnException (Exception ex)
 Call chain for exception notification. More...
 
void SetState (SupervisableState newState)
 Changes the state of the controller to the new state. More...
 
virtual void OnStateChangeStarting ()
 
virtual void OnStateChangeRunning ()
 
virtual void OnStateChangeStopping ()
 
virtual void OnStateChangeStopped ()
 
virtual void OnStateChangeInitializing ()
 
virtual void OnStateChangeInitialized ()
 
virtual void OnStateChangeErrored ()
 
virtual void OnStateChangeImpaired ()
 
void HandleException (string message, Exception e)
 Deals with the details of handling exceptions captured by the controller. More...
 
void ResetException ()
 Allows subclasses to reset the last exception to an empty state. More...
 
void HandleImpairment (string message, Exception e)
 Deals with the details of handling non-critical problems captured by the controller. More...
 

Protected Attributes

volatile Configuration.ReportGeneratorConfig _config = null
 

Properties

IMeasurementStore Store [get]
 Provide subclasses with access to the store. More...
 
ISettingsStore SettingStore [get]
 Provide subclasses with access to the settings. More...
 
- Properties inherited from Apac.Supervisable
string Name [get]
 Gets the name of the controller, as specified by configuration. Note that if the name is not specified, then an index will be used. More...
 
string Description [get]
 Gets the description of the controller, as specified by configuration. More...
 
bool Prioritized [get]
 Indicates if the supervisable component should be executed on a higher thread priority. More...
 
DateTime LastHeartbeat [get]
 The time of the last heartbeat. More...
 
Supervisors.ISupervisor ExecutiveSupervisor [get]
 Walks the tree to find the top level supervisor. More...
 
bool IsRunning [get]
 Gets a value indicating whether this instance is running. More...
 
SupervisableState CurrentState [get]
 Gets the current overall state of the controller. More...
 
SupervisableState PreviousState [get]
 Gets the previous overall state of the controller. More...
 
Exception LastException [get]
 Gets the last exception encountered within the controller. More...
 
DateTime StartTime [get]
 Gets the time this supervisable component was started. More...
 
DateTime StopTime [get]
 Gets the time this supervisable component was stopped. More...
 
TimeSpan UpTime [get]
 Gets the amount of time this supervisable component has been running, or did run before it was stopped (if IsRunning is false). More...
 
Supervisors.ISupervisor Supervisor [get]
 Gets the supervisor. More...
 
SupervisableConfig Config [get]
 The configuration object used by the supervisable component. More...
 
log4net.ILog Log [get]
 Lazy-initialized logger for subclass usage. More...
 
- Properties inherited from Apac.ISupervisable
string Name [get]
 The name of the component, for unique identification purposes. More...
 
string Description [get]
 The description of the component, for human consumption. More...
 
bool Prioritized [get]
 Indicates if the component should be high priority. More...
 
Supervisors.ISupervisor ExecutiveSupervisor [get]
 Walks the tree to find the top level supervisor. More...
 
bool IsRunning [get]
 Indicates that the component is running. More...
 
DateTime LastHeartbeat [get]
 
DateTime StartTime [get]
 Gets the time this supervisable component was started. More...
 
DateTime StopTime [get]
 Gets the time this supervisable component was stopped. More...
 
TimeSpan UpTime [get]
 Gets the amount of time this supervisable component has been running, or did run before it was stopped (if IsRunning is false). More...
 
SupervisableState CurrentState [get]
 Gets the current SupervisableState of this component. More...
 
SupervisableState PreviousState [get]
 Gets the previous SupervisableState of this component. More...
 
Exception LastException [get]
 Gets the last exception to have occurred and been trapped by this component. More...
 

Additional Inherited Members

- Events inherited from Apac.Supervisable
SupervisableStateChangingHandler SupervisableStateChanging
 Notifies listeners that the state is about to change. More...
 
SupervisableStateChangedHandler SupervisableStateChanged
 Notifies listeners that the state has changed. More...
 
SupervisableErroredHandler SupervisableErrored
 Notifies listeners that an error occured within the controller. More...
 
SupervisableHeartbeatHandler SupervisableHeartbeat
 Notifies listeners that the component is still active. More...
 
- Events inherited from Apac.ISupervisable
SupervisableStateChangingHandler SupervisableStateChanging
 Notifies listeners that the state is about to change. More...
 
SupervisableStateChangedHandler SupervisableStateChanged
 Notifies listeners that the state has changed. More...
 
SupervisableErroredHandler SupervisableErrored
 Notifies listeners that an error occured within the controller. More...
 
SupervisableHeartbeatHandler SupervisableHeartbeat
 Notifies listeners that the component is still active. More...
 

Constructor & Destructor Documentation

◆ ThreadedReportingEngine() [1/2]

Apac.Reporting.ThreadedReportingEngine.ThreadedReportingEngine ( )
inline

Initializes a new instance of the ThreadedReportingEngine<ValueType> class.

◆ ThreadedReportingEngine() [2/2]

Apac.Reporting.ThreadedReportingEngine.ThreadedReportingEngine ( IMeasurementStore  dataStore,
ISettingsStore  settingStore,
IDataCompiler  compiler 
)
inline

Initializes a new instance of the ThreadedReportingEngine<ValueType> class.

Parameters
dataStoreThe data store.
settingStoreThe setting store.
compilerThe compiler.

Member Function Documentation

◆ AppendToMonthlyReports()

void Apac.Reporting.ThreadedReportingEngine.AppendToMonthlyReports ( DateTime  date)
inline

Should append data for the given date to the monthly report.

Parameters
date

Implements Apac.Reporting.IReportGenerator.

◆ AppendToWeeklyReports()

void Apac.Reporting.ThreadedReportingEngine.AppendToWeeklyReports ( DateTime  date)
inline

Should append data for the given date to the weekly report.

Parameters
dateThe date to be appended to the report.

Implements Apac.Reporting.IReportGenerator.

◆ GenerateMonthlyReports()

void Apac.Reporting.ThreadedReportingEngine.GenerateMonthlyReports ( DateTime  date)
inline

Should completely re/generate the monthly reports for the month containing the given date.

Parameters
dateThe date used to determine which monthly report to generate.

Implements Apac.Reporting.IReportGenerator.

◆ GenerateWeeklyReports()

void Apac.Reporting.ThreadedReportingEngine.GenerateWeeklyReports ( DateTime  date)
inline

Should completely re/generate the weekly reports for the week containing the given date.

Parameters
dateThe date used to determine which weekly report to generate.

Implements Apac.Reporting.IReportGenerator.

◆ OnAppendToMonthlyReports()

abstract void Apac.Reporting.ThreadedReportingEngine.OnAppendToMonthlyReports ( DateTime  date)
protectedpure virtual

Signals to append data for the given date to the monthly report.

Parameters
dateThe date for which the monthly report should be updated.

Implemented in Apac.Ecop.Reporting.JsonMeasurementReportingEngine, and Apac.Reporting.XmlCktUsageReportGenerator.

◆ OnAppendToWeeklyReports()

abstract void Apac.Reporting.ThreadedReportingEngine.OnAppendToWeeklyReports ( DateTime  date)
protectedpure virtual

Signals to append data for the given date to the weekly report.

Parameters
dateThe date for which the weekly report should be updated.

Implemented in Apac.Ecop.Reporting.JsonMeasurementReportingEngine, and Apac.Reporting.XmlCktUsageReportGenerator.

◆ OnCheckReferencesStates()

override void Apac.Reporting.ThreadedReportingEngine.OnCheckReferencesStates ( )
inlineprotectedvirtual

Called when the supervisable component needs to check the state of its runtime reference components.

Exceptions
InitializationException

Implements Apac.Supervisable.

◆ OnGenerateMonthlyReports()

abstract void Apac.Reporting.ThreadedReportingEngine.OnGenerateMonthlyReports ( DateTime  date)
protectedpure virtual

Signals a complete re/generate of the monthly reports for the month containing the given date.

Parameters
dateThe date for which the report should be re/generated.

Implemented in Apac.Ecop.Reporting.JsonMeasurementReportingEngine, and Apac.Reporting.XmlCktUsageReportGenerator.

◆ OnGenerateWeeklyReports()

abstract void Apac.Reporting.ThreadedReportingEngine.OnGenerateWeeklyReports ( DateTime  date)
protectedpure virtual

Signals a complete re/generate of the weekly reports for the month containing the given date.

Parameters
dateThe date for which the report should be re/generated.

Implemented in Apac.Ecop.Reporting.JsonMeasurementReportingEngine, and Apac.Reporting.XmlCktUsageReportGenerator.

◆ OnInitialize()

override void Apac.Reporting.ThreadedReportingEngine.OnInitialize ( Apac.Configuration.SupervisableConfig  config)
inlineprotected

Called when the supervisable component is intitialized.

Parameters
configThe configuration to use for initialization.
Exceptions
InitializationException

◆ OnResolveReferences()

override void Apac.Reporting.ThreadedReportingEngine.OnResolveReferences ( )
inlineprotectedvirtual

Called when the supervisable component needs to resolve its runtime references to other components.

Exceptions
InitializationException

Implements Apac.Supervisable.

◆ OnStart()

override void Apac.Reporting.ThreadedReportingEngine.OnStart ( )
inlineprotectedvirtual

Called to start the supervisable component.

Implements Apac.Supervisable.

◆ OnStop()

override void Apac.Reporting.ThreadedReportingEngine.OnStop ( )
inlineprotectedvirtual

Called to stop the supervisable component.

Implements Apac.Supervisable.

Property Documentation

◆ SettingStore

ISettingsStore Apac.Reporting.ThreadedReportingEngine.SettingStore
getprotected

Provide subclasses with access to the settings.

◆ Store

IMeasurementStore Apac.Reporting.ThreadedReportingEngine.Store
getprotected

Provide subclasses with access to the store.


The documentation for this class was generated from the following file: