ADTF  3.18.3
cFilterLevelmachine

The Default Filter Level State Machine. More...

Inheritance diagram for cFilterLevelmachine:
[legend]

Public Types

enum  tInitStage : uint8_t {
  StageFirst = 0 , StageNormal = 1 , StagePreConnect = StageNormal , StageGraphReady = 2 ,
  StagePostConnect = StageGraphReady
}
 The Filters InitStages will be used for the cFilterLevelmachine::Init and cFilterLevelmachine::Shutdown call. More...
 

Protected Member Functions

 cFilterLevelmachine ()=default
 CTOR Default.
 
 cFilterLevelmachine (const cFilterLevelmachine &)=delete
 deleted copy CTOR
 
 cFilterLevelmachine (cFilterLevelmachine &&)=delete
 deleted move CTOR
 
cFilterLevelmachineoperator= (const cFilterLevelmachine &)=delete
 deleted copy operator
 
cFilterLevelmachineoperator= (cFilterLevelmachine &&)=delete
 deleted move operator
 
virtual ~cFilterLevelmachine ()=default
 DTOR Default.
 
tResult InitStageFirst ()
 Internal StateMachine Event.
 
tResult InitStageNormal ()
 Internal StateMachine Event.
 
tResult InitStageReady ()
 Internal StateMachine Event.
 
tResult ShutdownStageReady ()
 Internal StateMachine Event.
 
tResult ShutdownStageNormal ()
 Internal StateMachine Event.
 
tResult ShutdownStageFirst ()
 Internal StateMachine Event.
 
tResult SetLevel (IFilter::tFilterState eLevel)
 
virtual tResult Init (cFilterLevelmachine::tInitStage eStage)
 Implements the default cFilterLevelmachine state machine call. More...
 
virtual tResult Start ()
 Implements the default cFilterLevelmachine state machine calls. More...
 
virtual tResult Stop ()
 Implements the default cFilterLevelmachine state machine calls. More...
 
virtual tResult Shutdown (cFilterLevelmachine::tInitStage eStage)
 Implements the default cFilterLevelmachine state machine call. More...
 
- Protected Member Functions inherited from level_machine< Subclass, LevelType, START_LEVEL >
virtual ~level_machine ()=default
 DTOR.
 
LevelType GetLevel () const
 Returns the current Level of the levelMachine. More...
 

Additional Inherited Members

- Public Member Functions inherited from level_machine< Subclass, LevelType, START_LEVEL >
template<typename ... InnerHandlers>
tResult ChangeLevel (LevelType eLevel)
 Change Level raise or decrease the Level level by level and call the given hendler methods. More...
 
- Protected Types inherited from level_machine< Subclass, LevelType, START_LEVEL >
enum  tDirection : uint8_t { Inc = 0 , Dec = 1 }
 Direction of entering a new Level. More...
 
typedef tResult(Subclass::* tChangeMethod) ()
 Defintion of function type called within the handler implementation.
 

Detailed Description

The Default Filter Level State Machine.

See Filter State Machine for the Level Machine.

Definition at line 22 of file filter_levelmachine.h.

Member Enumeration Documentation

◆ tInitStage

enum tInitStage : uint8_t

The Filters InitStages will be used for the cFilterLevelmachine::Init and cFilterLevelmachine::Shutdown call.

Enumerator
StageFirst 

Very First Init Stage, passed when reaching state State_Constructed.

StageNormal 

Second Init Stage (Pre Connect calls), passed when reaching state State_Initialized.

StagePreConnect 

Second Init Stage (Pre Connect calls)

StageGraphReady 

Third Init Stage (Post Connect calls), passed when reaching state State_Ready.

StagePostConnect 

Third Init Stage (Post Connect calls)

Definition at line 44 of file filter_levelmachine.h.

Member Function Documentation

◆ Init()

virtual tResult Init ( cFilterLevelmachine::tInitStage  eStage)
protectedvirtual

Implements the default cFilterLevelmachine state machine call.

This will be called during filter state changes and can be overridden by the filter implementation.

Note
Make sure to call the parent implementation of the used base class at the beginning within your overriding function!
Parameters
[in]eStageThe Init Stage. See state machine documentation in Filter State Machine.
Returns
Standard Result Code. Any Error will break further initialization of the cFilterGraph and the Runlevel change.

Reimplemented in filter_with_trigger_function< TriggerFunctionImpl >, cFilter, and cFilter.

◆ Shutdown()

virtual tResult Shutdown ( cFilterLevelmachine::tInitStage  eStage)
protectedvirtual

Implements the default cFilterLevelmachine state machine call.

This will be called during filter state changes and can be overridden by the filter implementation.

Note
Make sure to call the parent implementation of the used base class at the end within your overriding function!
Parameters
[in]eStageThe Init Stage. See state machine documentation in Filter State Machine.
Returns
Standard Result Code.

Reimplemented in filter_with_trigger_function< TriggerFunctionImpl >, cFilter, and cFilter.

◆ Start()

virtual tResult Start ( )
protectedvirtual

Implements the default cFilterLevelmachine state machine calls.

This will be called during filter state changes and can be overridden by the filter implementation.

Note
Make sure to call the parent implementation of the used base class at the beginning within your overriding function!

See Filter State Machine.

Returns
Standard Result Code.

Reimplemented in cFilter, and cFilter.

◆ Stop()

virtual tResult Stop ( )
protectedvirtual

Implements the default cFilterLevelmachine state machine calls.

Keep in mind, that streaming and triggers might still occur during and after this function is called. Streaming will only have stopped completely before any other following state change. If your filter has any blocking operations during the handling of triggers, make sure that you cancel them in this function.

This will be called during filter state changes and can be overridden by the filter implementation.

Note
Make sure to call the parent implementation of the used base class at the end within your overriding function!

See Filter State Machine.

Returns
Standard Result Code.

Reimplemented in cFilter, and cFilter.