INOS
|
#include <cinostaskextmpl.h>
Public Types | |
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. | |
Public Member Functions | |
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. | |
virtual uint32 | AddCommand (bool abDeleteOnRemove=false) |
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) |
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. | |
CINOSTaskExMsg * | CreateMsg (CINOSSync *apSync=DF_INOS_SYNCHRONOUS) |
Create a message of this command. Can be used for manual, customized call. | |
const char * | GetOption () const |
Returns the option string of this command. | |
const char * | GetName () |
Returns the name of this command. | |
void | SetName (const char *apName) |
Returns the name of this command. | |
CINOSTaskExMsg & | GetMsg () |
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 | |
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 | |
CINOSTaskEx * | m_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. | |
CINOSTaskExMsg * | m_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 char * | m_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. | |
Friends | |
class | CINOSTaskEx |
Abstract base class for all CINOSTaskEx command templates (TINOSTaskExCmd etc.)
typedef void(CINOSTaskEx::* CINOSTaskExCmdBase::tOnMsgDoneFunction) (CINOSTaskExMsg *apMsg, CINOSTaskExDef::ERplId aRplId, tMcAppError aAppError) |
Type of OnMsgDone functions. Functions of this type can be used as a callback in SetOnMsgDone.
apMsg | CINOSTaskExMsg* the message that MsgDone was called on. |
apMsg | aRplId CINOSTaskExDef::ERplId reply id provided to MsgDone. |
apMsg | aAppError tMcAppError error code provided to MsgDone. |
typedef bool(CINOSTaskEx::* CINOSTaskExCmdBase::tPreDispatchFunction) (CINOSTaskExMsg *apMsg) |
Type of pre-dispatch functions. Functions of this type can be used as a callback in SetPreDispatcher.
apMsg | CINOSTaskExMsg* the message that is about to be dispatched. |
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.
Delete | the command object after command is removed from the task ex. |
Reimplemented in TINOSTaskExCmdBaseParam< ObjectType, ParamType >, TINOSTaskExCmdBaseParam< CINOSMcModule, ParamType... >, TINOSTaskExCmdBaseParam< CINOSMcRobot, ParamType... >, and TINOSTaskExCmdBaseParam< ObjectType, ParamType... >.
|
inlinevirtual |
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.
Characteristics | uint32 characteristics of the INCO item of the command. |
aKeyLevel | uint16 key level of the INCO item of the parameter. |
abRegisterInco | bool defines if the command should be registered to the inco tree. |
Delete | the command object after command is removed from the task ex. |
Reimplemented in TINOSTaskExCmdBaseParam< ObjectType, ParamType >, TINOSTaskExCmdBaseParam< CINOSMcModule, ParamType... >, TINOSTaskExCmdBaseParam< CINOSMcRobot, ParamType... >, and TINOSTaskExCmdBaseParam< ObjectType, ParamType... >.
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.
apName | const char* name of the parameter |
abValue | bool initial default value of the parameter |
auFlags | uint32 flags of the INCO item of the parameter |
|
inline |
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.
apName | const char* name of the parameter |
apValue | const char* initial default value of the parameter |
apComboData | const char* combo data of the parameter |
auFlags | uint32 flags of the INCO item of the parameter |
|
inline |
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.
apName | const char* name of the parameter |
arValue | real64 initial default value of the parameter |
arMin | real64 minimal value of the parameter |
arMax | real64 maximal value of the parameter |
apUnit | const char* unit of the parameter |
auChar | uint32 characteristics of the INCO item of the parameter |
auFlags | uint32 flags of the INCO item of the parameter |
|
inline |
Create a message of this command. Can be used for manual, customized call.
apSync | CINOSSync* sync type or sync object |
|
protectedpure virtual |
Dispatches a message if this command. Used by CINOSTaskEx.
apMsg | CINOSTaskExMsg* message to be dispatched. |
Implemented in TINOSTaskExCmd< ObjectType, ParamType >, TINOSTaskExCmdDyn< ObjectType >, TINOSTaskExCmdMsg< ObjectType, ParamType >, TINOSTaskExCmdMsg< CINOSMcModule, const char *, bool >, TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char * >, and TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char *, const char * >.
|
protectedpure virtual |
Dispatches a timed message if this command. Used by CINOSTaskEx.
apMsg | CINOSTaskExMsg* message to be dispatched. |
Implemented in TINOSTaskExCmd< ObjectType, ParamType >, TINOSTaskExCmdDyn< ObjectType >, TINOSTaskExCmdMsg< ObjectType, ParamType >, TINOSTaskExCmdMsg< CINOSMcModule, const char *, bool >, TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char * >, and TINOSTaskExCmdMsg< CINOSMcRobot, const char *, const char *, const char * >.
|
inline |
Returns the message of this command.
Returns the name of this command.
Returns the option string of this command.
|
inlineprotected |
Function is called by the module (CINOSTaskEx) when MsgDone is called on a message of this command.
apMsg | CINOSTaskExMsg* message that MsgDone is called on. |
aRplId | CINOSTaskExDef::ERplId reply id of the MsgDone. |
aAppError | tMcAppError error code of the MsgDone. |
|
inlineprotected |
Function is called by the module (CINOSTaskEx) before the message of this command is dispatched.
apMsg | CINOSTaskExMsg* message that is to be dispatched. |
Sets the states in which this command is allowed to be called.
auStateBitmap | uint32 Bitmap of the allowed states, each bit represents if the according state. 1 = allowed, 0 = not-allowed. |
Returns the name of this command.
|
inlinevirtual |
Sets the OnMsgDone callback which is called when MsgDone is called on a message of this command.
aOnMsgDoneFunction | tOnMsgDoneFunction function that will be called on MsgDone. |
|
inlinevirtual |
Sets the pre dispatch callback which is called before a message is of this command is dispatched.
aOnMsgDoneFunction | tOnMsgDoneFunction that will be called before dispatching. |