40 #ifndef _orxCOMMAND_H_ 41 #define _orxCOMMAND_H_ 50 #define orxCOMMAND_KC_BLOCK_MARKER '"' 51 #define orxCOMMAND_KC_PUSH_MARKER '>' 52 #define orxCOMMAND_KC_POP_MARKER '<' 53 #define orxCOMMAND_KC_GUID_MARKER '^' 54 #define orxCOMMAND_KC_SEPARATOR ',' 59 typedef enum __orxCOMMAND_VAR_TYPE_t 80 typedef struct __orxCOMMAND_VAR_DEF_t
88 typedef struct __orxCOMMAND_VAR_t
112 #define orxCOMMAND_REGISTER_CORE_COMMAND(MODULE, COMMAND, RESULT_NAME, RESULT_TYPE, REQ_PARAM_NUMBER, OPT_PARAM_NUMBER, ...) \ 115 orxCOMMAND_VAR_DEF stResult; \ 116 orxCOMMAND_VAR_DEF astParamList[REQ_PARAM_NUMBER + OPT_PARAM_NUMBER + 1] = {{"Dummy", orxCOMMAND_VAR_TYPE_NONE}, __VA_ARGS__}; \ 118 stResult.eType = RESULT_TYPE; \ 119 stResult.zName = RESULT_NAME; \ 120 eStatus = orxCommand_Register(#MODULE"."#COMMAND, &orx##MODULE##_Command##COMMAND, REQ_PARAM_NUMBER, OPT_PARAM_NUMBER, &astParamList[1], &stResult);\ 121 orxASSERT(eStatus != orxSTATUS_FAILURE); \ 124 #define orxCOMMAND_UNREGISTER_CORE_COMMAND(MODULE, COMMAND) \ 127 orxCommand_Unregister(#MODULE"."#COMMAND); \ 130 #define orxCOMMAND_REGISTER(NAME, FUNCTION, RESULT_NAME, RESULT_TYPE, REQ_PARAM_NUMBER, OPT_PARAM_NUMBER, ...) \ 133 orxCOMMAND_VAR_DEF stResult; \ 134 orxCOMMAND_VAR_DEF astParamList[REQ_PARAM_NUMBER + OPT_PARAM_NUMBER + 1] = {{"Dummy", orxCOMMAND_VAR_TYPE_NONE}, __VA_ARGS__}; \ 136 stResult.eType = RESULT_TYPE; \ 137 stResult.zName = RESULT_NAME; \ 138 eStatus = orxCommand_Register(NAME, &FUNCTION, REQ_PARAM_NUMBER, OPT_PARAM_NUMBER, &astParamList[1], &stResult); \ 139 orxASSERT(eStatus != orxSTATUS_FAILURE); \ 142 #define orxCOMMAND_UNREGISTER(NAME) \ 145 orxCommand_Unregister(NAME); \ 220 extern orxDLLAPI const orxSTRING orxFASTCALL
orxCommand_GetNext(
const orxSTRING _zBase,
const orxSTRING _zPrevious, orxU32 *_pu32CommonLength);
orxDLLAPI const orxSTRING orxFASTCALL orxCommand_GetPrototype(const orxSTRING _zCommand)
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_Register(const orxSTRING _zCommand, const orxCOMMAND_FUNCTION _pfnFunction, orxU32 _u32RequiredParamNumber, orxU32 _u32OptionalParamNumber, const orxCOMMAND_VAR_DEF *_astParamList, const orxCOMMAND_VAR_DEF *_pstResult)
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_AddAlias(const orxSTRING _zAlias, const orxSTRING _zCommand, const orxSTRING _zArgs)
orxDLLAPI void orxFASTCALL orxCommand_Exit()
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_RemoveAlias(const orxSTRING _zAlias)
orxDLLAPI void orxFASTCALL orxCommand_Setup()
orxCOMMAND_VAR_TYPE eType
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_ParseNumericalArguments(orxU32 _u32ArgNumber, const orxCOMMAND_VAR *_astArgList, orxCOMMAND_VAR *_astOperandList)
orxDLLAPI orxBOOL orxFASTCALL orxCommand_IsRegistered(const orxSTRING _zCommand)
orxDLLAPI orxCOMMAND_VAR *orxFASTCALL orxCommand_EvaluateWithGUID(const orxSTRING _zCommandLine, orxU64 _u64GUID, orxCOMMAND_VAR *_pstResult)
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_Init()
void(orxFASTCALL * orxCOMMAND_FUNCTION)(orxU32 _u32ArgNumber, const orxCOMMAND_VAR *_astArgList, orxCOMMAND_VAR *_pstResult)
orxDLLAPI orxCOMMAND_VAR *orxFASTCALL orxCommand_Evaluate(const orxSTRING _zCommandLine, orxCOMMAND_VAR *_pstResult)
orxDLLAPI orxU32 orxFASTCALL orxCommand_PrintVar(orxSTRING _zDstString, orxU32 _u32Size, const orxCOMMAND_VAR *_pstVar)
orxDLLAPI orxBOOL orxFASTCALL orxCommand_IsAlias(const orxSTRING _zAlias)
typedef void(orxFASTCALL *orxMODULE_EXIT_FUNCTION)()
orxDLLAPI orxCOMMAND_VAR *orxFASTCALL orxCommand_Execute(const orxSTRING _zCommand, orxU32 _u32ArgNumber, const orxCOMMAND_VAR *_astArgList, orxCOMMAND_VAR *_pstResult)
orxDLLAPI const orxSTRING orxFASTCALL orxCommand_GetNext(const orxSTRING _zBase, const orxSTRING _zPrevious, orxU32 *_pu32CommonLength)
orxCOMMAND_VAR_TYPE eType
orxDLLAPI orxSTATUS orxFASTCALL orxCommand_Unregister(const orxSTRING _zCommand)