ADTF
Loading...
Searching...
No Matches
adtf::streaming::ant::cFilterLevelmachine Class Reference

#include <filter_levelmachine.h>

Inherits adtf::ucom::ant::level_machine< Subclass, LevelType, START_LEVEL >.

Inherited by adtf::filter::cFilter [protected].

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)
 
virtual tResult Start ()
 
virtual tResult Stop ()
 
virtual tResult Shutdown (cFilterLevelmachine::tInitStage eStage)
 
- Protected Member Functions inherited from adtf::ucom::ant::level_machine< Subclass, LevelType, START_LEVEL >
virtual ~level_machine ()=default
 DTOR.
 
LevelType GetLevel () const
 

Additional Inherited Members

- Public Member Functions inherited from adtf::ucom::ant::level_machine< Subclass, LevelType, START_LEVEL >
template<typename ... InnerHandlers>
tResult ChangeLevel (LevelType eLevel)
 
- Protected Types inherited from adtf::ucom::ant::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.

Member Enumeration Documentation

◆ tInitStage

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 Properties of the filter itself (not those of the pins) are available during and from this call forward.

StageNormal 

Second Init Stage (Pre Connect calls), passed when reaching state State_Initialized This is the last stage where you are allowed to create pins by yourself. Following this stage all dynamic pins will be requested externally.

StagePreConnect 

Second Init Stage (Pre Connect calls)

StageGraphReady 

Third Init Stage (Post Connect calls), passed when reaching state State_Ready All dynamic pins will have been requested before this stage. Properties of pins are available during and from this call forward.

StagePostConnect 

Third Init Stage (Post Connect calls)

Member Function Documentation

◆ Init()

virtual tResult adtf::streaming::ant::cFilterLevelmachine::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 adtf::filter::cFilter, and adtf::filter::devil::filter_with_trigger_function< TriggerFunctionImpl >.

◆ Shutdown()

virtual tResult adtf::streaming::ant::cFilterLevelmachine::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 adtf::filter::cFilter, and adtf::filter::devil::filter_with_trigger_function< TriggerFunctionImpl >.

◆ Start()

virtual tResult adtf::streaming::ant::cFilterLevelmachine::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 adtf::filter::cFilter.

◆ Stop()

virtual tResult adtf::streaming::ant::cFilterLevelmachine::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 adtf::filter::cFilter.


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