AP&C API Reference
Public Member Functions | Protected Member Functions | Properties | List of all members
Apac.LicensedSupervisable Class Reference

Provides the basis for supervisable components to utilize the licensing infrastructure. It contains a 'safety' feature that will release the license when the object is Disposed, but this is not fool-proof. Subclasses should ensure that ReleaseLicense() is called as appropriate (most likely during Supervisable.OnStop(). More...

Inheritance diagram for Apac.LicensedSupervisable:
Apac.Supervisable Apac.ISupervisable Apac.Control.SerialModbusController Apac.Control.ThreadedPollingController Apac.Control.UdpNodeController Apac.Ecop.DataManager Apac.PassiveHaus.DataManager Apac.TcTec.Top16.Control.Top16DIOController Apac.Control.HttpController Apac.Control.MockController2 Apac.Dallas.OneWire.Control.OneWireController Apac.Dlp.Control.DlpIo20Controller Bushido.Upt.Control.PegController

Public Member Functions

bool IsLicensed (LicensedFeatures feature)
 Checks to see if an individual feature is licensed, based on the stored response. More...
 
void Dispose ()
 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. More...
 
- 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

AcquisitionResponse CheckLicense ()
 Checks the license. More...
 
ReleaseResponse ReleaseLicense ()
 Releases the license. More...
 
virtual void Dispose (bool cleanUpManagedObjects)
 Releases unmanaged and - optionally - managed resources. More...
 
- Protected Member Functions inherited from Apac.Supervisable
abstract void OnInitialize (Apac.Configuration.SupervisableConfig config)
 Called when the supervisable component is intitialized. More...
 
abstract void OnResolveReferences ()
 Called when the supervisable component needs to resolve its runtime references to other components. More...
 
abstract void OnCheckReferencesStates ()
 Called when the supervisable component needs to check the state of its runtime reference components. 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...
 
abstract void OnStart ()
 Called to start the supervisable component. More...
 
abstract void OnStop ()
 Called to stop the supervisable component. 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...
 

Properties

abstract LicensedFeatures Features [get]
 Gets the licensed features used by this component. See the LicensedFeatures flags enumeration. More...
 
AcquisitionResponse LicenseResponse [get]
 Gets the license response previously obtained with CheckLicense(). 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...
 

Detailed Description

Provides the basis for supervisable components to utilize the licensing infrastructure. It contains a 'safety' feature that will release the license when the object is Disposed, but this is not fool-proof. Subclasses should ensure that ReleaseLicense() is called as appropriate (most likely during Supervisable.OnStop().

Member Function Documentation

◆ CheckLicense()

AcquisitionResponse Apac.LicensedSupervisable.CheckLicense ( )
inlineprotected

Checks the license.

Returns
Returns the AcquisitionResponse indicating the result of the request.

◆ Dispose() [1/2]

void Apac.LicensedSupervisable.Dispose ( )
inline

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

◆ Dispose() [2/2]

virtual void Apac.LicensedSupervisable.Dispose ( bool  cleanUpManagedObjects)
inlineprotectedvirtual

Releases unmanaged and - optionally - managed resources.

Parameters
cleanUpManagedObjectstrue to release both managed and unmanaged resources; false to release only unmanaged resources.

◆ IsLicensed()

bool Apac.LicensedSupervisable.IsLicensed ( LicensedFeatures  feature)
inline

Checks to see if an individual feature is licensed, based on the stored response.

Parameters
feature
Returns
Returns true if the feature is licensed, false if not.

◆ ReleaseLicense()

ReleaseResponse Apac.LicensedSupervisable.ReleaseLicense ( )
inlineprotected

Releases the license.

Property Documentation

◆ Features

abstract LicensedFeatures Apac.LicensedSupervisable.Features
get

Gets the licensed features used by this component. See the LicensedFeatures flags enumeration.

The features.

◆ LicenseResponse

AcquisitionResponse Apac.LicensedSupervisable.LicenseResponse
get

Gets the license response previously obtained with CheckLicense().

The license response.


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