INOS
TINOSTaskExCmdBaseParam< ObjectType, ParamType > Class Template Reference

Abstract template base class for all TINOSTaskExCmd variants. More...

#include <cinostaskextmpl.h>

Inheritance diagram for TINOSTaskExCmdBaseParam< ObjectType, ParamType >:

Public Member Functions

CMcResult operator() (ParamType... Params, CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Calls this command (dispatched). This function creates and puts a message of this command to the task ex of the command.
 
virtual uint32 AddCommand (bool abDeleteOnRemove=false) override
 Adds this command to the module it belongs to. And makes it therefore callable. This function also checks if the parameter definitions match the types declared in the template parameters.
 
virtual uint32 AddCommand (uint64 aChar, uint16 aKeyLevel, bool abRegisterInco=true, bool abDeleteOnRemove=false) override
 Adds this command to the module it belongs to. And makes it therefore callable. This function also checks if the parameter definitions match the types declared in the template parameters.
 
virtual void SetDefaults (ParamType... Default)
 
virtual ~TINOSTaskExCmdBaseParam ()
 Destructor.
 
- Public Member Functions inherited from CINOSTaskExCmdBase
virtual void SetPreDispatcher (const CINOSTaskExCmdHookBase *apPreDispatchHook)
 Sets the pre dispatch callback which is called before a message is of this command is dispatched.
 
virtual void SetOnMsgDone (const CINOSTaskExCmdHookBase *apOnMsgDoneHook)
 Sets the OnMsgDone callback which is called when MsgDone is called on a message of this command.
 
CINOSTaskExMsgCreateMsg (CINOSSync *apSync=DF_INOS_SYNCHRONOUS)
 Create a message of this command. Can be used for manual, customized call.
 
const charGetOption () const
 Returns the option string of this command.
 
const charGetName ()
 Returns the name of this command.
 
void SetName (const char *apName)
 Returns the name of this command.
 
CINOSTaskExMsgGetMsg ()
 Returns the message of this command.
 
void SetTask (CINOSTaskEx *apTask)
 
void AddParam (const char *apName, real64 arValue, real64 arMin, real64 arMax, const char *apUnit="", uint32 auChar=0, uint32 auFlags=0)
 Adds a real64 param description. This function may only be used if the param description has not be provided in the constructor. The funcion needs to be called in the same order as the template type definition.
 
void AddParam (const char *apName, const char *apValue, const char *apComboData=nullptr, uint32 auFlags=0)
 Adds a string (char*) param description. This function may only be used if the param description has not be provided in the constructor. The funcion needs to be called in the same order as the template type definition.
 
void AddParam (const char *apName, bool abValue, uint32 auFlags=0)
 Adds a bool param description. This function may only be used if the param description has not be provided in the constructor. The funcion needs to be called in the same order as the template type definition.
 
void SetAllowedStates (uint32 auStateBitmap)
 Sets the states in which this command is allowed to be called.
 
int operator< (CINOSTaskExCmdBase &aTaskExMsg)
 binary tree operators
 
int operator== (CINOSTaskExCmdBase &aTaskExMsg)
 
int operator< (const char *aName)
 
int operator== (const char *aName)
 
virtual ~CINOSTaskExCmdBase ()
 Destructor.
 
void Claim ()
 Claims the object of this command. This ensures that in case this command.
 
void Release (CINOSTaskExMsg *apMsg=nullptr)
 Releases the object of this command. This ensures that in case this command.
 

Protected Member Functions

 TINOSTaskExCmdBaseParam (const char *apName, CINOSTaskEx *apTask, ObjectType *apObject, TINOSTaskExValDef< ParamType >... apDefaultParams, uint32 auStateBitmap, const char *apOption, uint64 auCharacteristics, uint16 auKeyLevel, bool abRegisterInco)
 Constructor (base constructor is protected, as this class is abstract)
 
template<typename T >
CINOSTaskExMsgParamAddParam (CINOSTaskExMsg *apMsg, T aValue)
 
CINOSTaskExMsgParamAddParam (CINOSTaskExMsg *apMsg, const char *pValue)
 
- Protected Member Functions inherited from CINOSTaskExCmdBase
virtual void Dispatch (CINOSTaskExMsg *apMsg)=0
 Dispatches a message if this command. Used by CINOSTaskEx.
 
virtual void DispatchTmd (CINOSTaskExMsg *apMsg)=0
 Dispatches a timed message if this command. Used by CINOSTaskEx.
 
bool PreDispatch (CINOSTaskExMsg *apMsg)
 Function is called by the module (CINOSTaskEx) before the message of this command is dispatched.
 
void OnMsgDone (CINOSTaskExMsg *apMsg, CINOSTaskExDef::ERplId aRplId, tMcAppError aAppError)
 Function is called by the module (CINOSTaskEx) when MsgDone is called on a message of this command.
 
 CINOSTaskExCmdBase (const char *apName, CINOSTaskEx *apTask, uint32 auStateBitmap, const char *apOption, uint64 auCharacteristics, uint16 auKeyLevel, bool abRegisterInco)
 Constructor (base constructor is protected, as this class is abstract)
 
bool CheckParams (size_t count,...)
 Checks if thie added parameters match the template definition.
 
virtual void DeleteCommand ()
 Deletes the object of this command, dispatch if called from.
 

Protected Attributes

ObjectTypem_pObject
 Object of this command.
 
- Protected Attributes inherited from CINOSTaskExCmdBase
CINOSTaskExm_pTask
 Task of this command.
 
tPreDispatchFunction m_pPreDispatchFunction = nullptr
 Function that is called before messages of this command are dispatched.
 
tOnMsgDoneFunction m_pMsgDoneFunction = nullptr
 Function that is called when MsgDone is called on messages of this command.
 
uint64 m_uCharacteristics = 0
 Characteristics of the INCO registration of this commands.
 
uint64 m_uIsStructureBitmap = 0
 Bitmap that defines if the parameter corresponding to the bit number is a structure.
 
uint16 m_uKeyLevel = cKeyLevelMin
 Key level of the INCO registration of this commands.
 
bool m_bRegisterInco = true
 Defines if this command is registered to the INCO tree if not.
 
CINOSTaskExMsg m_CommandMsg
 Prototype message for this command.
 
CINOSTaskExMsgm_pRegisterMsg = nullptr
 Register message for this command (in the task ex for INCO tree)
 
uint32 m_uAllowedStates
 Bitmap of states in which this command is allowed to be called.
 
const charm_pOption = nullptr
 Option(s) of the module which are required for this command to be added.
 
std::atomic_ulong m_uReferenceCount
 Reference count for dynamically created and added objects. If count is 0 the.
 

Additional Inherited Members

- Public Types inherited from CINOSTaskExCmdBase
typedef bool(CINOSTaskEx::* tPreDispatchFunction) (CINOSTaskExMsg *apMsg)
 Type of pre-dispatch functions. Functions of this type can be used as a callback in SetPreDispatcher.
 
typedef void(CINOSTaskEx::* tOnMsgDoneFunction) (CINOSTaskExMsg *apMsg, CINOSTaskExDef::ERplId aRplId, tMcAppError aAppError)
 Type of OnMsgDone functions. Functions of this type can be used as a callback in SetOnMsgDone.
 

Detailed Description

template<class ObjectType, typename... ParamType>
class TINOSTaskExCmdBaseParam< ObjectType, ParamType >

Abstract template base class for all TINOSTaskExCmd variants.

Template Parameters
ObjectTypeType of the class this command is added to. Class must be inherited from CINOSTaskEx.
ParamType...List of types of the parameters of this command.

Member Function Documentation

◆ AddCommand() [1/2]

template<class ObjectType , typename... ParamType>
virtual uint32 TINOSTaskExCmdBaseParam< ObjectType, ParamType >::AddCommand ( bool  abDeleteOnRemove = false)
inlineoverridevirtual

Adds this command to the module it belongs to. And makes it therefore callable. This function also checks if the parameter definitions match the types declared in the template parameters.

Reimplemented from CINOSTaskExCmdBase.

◆ AddCommand() [2/2]

template<class ObjectType , typename... ParamType>
virtual uint32 TINOSTaskExCmdBaseParam< ObjectType, ParamType >::AddCommand ( uint64  aChar,
uint16  aKeyLevel,
bool  abRegisterInco = true,
bool  abDeleteOnRemove = false 
)
inlineoverridevirtual

Adds this command to the module it belongs to. And makes it therefore callable. This function also checks if the parameter definitions match the types declared in the template parameters.

Parameters
Characteristicsuint32 characteristics of the INCO item of the command.
aKeyLeveluint16 key level of the INCO item of the parameter.
abRegisterIncobool defines if the command should be registered to the inco tree.

Reimplemented from CINOSTaskExCmdBase.

◆ operator()()

template<class ObjectType , typename... ParamType>
CMcResult TINOSTaskExCmdBaseParam< ObjectType, ParamType >::operator() ( ParamType...  Params,
CINOSSync apSync = DF_INOS_SYNCHRONOUS 
)
inline

Calls this command (dispatched). This function creates and puts a message of this command to the task ex of the command.

Parameters
Params...The parameters of this command as defined in the template definition.
apSyncCINOSSync* sync type or sync object

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