23 #ifndef OPERATIONDISPATCHER_HXX
24 #define OPERATIONDISPATCHER_HXX
28 #include <tccore/method.h>
33 #include <extensionframework/libextensionframework_exports.h>
37 class OperationDispatcher;
38 class FunctionInvoker;
39 class OpToOpExtensionInvoker;
42 class ExtensionFunctionSet;
95 struct EXTENSIONFRAMEWORK_API Teamcenter::
extn_fn
121 void addPreCondition( METHOD_function_t fnPtr, TC_argument_list_t* userArgs,
bool functionInvokerRequired =
true );
122 void addPreConditionAt(
int pos, METHOD_function_t fnPtr, TC_argument_list_t* userArgs );
127 void addPreAction( METHOD_function_t fnPtr, TC_argument_list_t* userArgs,
bool functionInvokerRequired =
true );
128 void addPreActionAt(
int pos, METHOD_function_t fnPtr, TC_argument_list_t *userArgs );
133 void addPostAction( METHOD_function_t fnPtr, TC_argument_list_t* userArgs,
bool functionInvokerRequired =
true,
134 bool auto_dispatched =
true );
135 void addPostActionAt(
int pos, METHOD_function_t fnPtr, TC_argument_list_t *userArgs );
140 void addPostActionInternal( METHOD_function_t fnPtr, TC_argument_list_t* userArgs,
bool functionInvokerRequired =
true,
141 bool auto_dispatched =
true );
142 void setBaseAction( METHOD_function_t baseActionFnPtr, TC_argument_list_t* baseActionUserArgs );
198 const std::string& tarMsgName );
202 void setBOName(
const std::string& boName );
206 typedef logical (* METHOD_user_arg_compare_t) (TC_argument_list_t * firstArg,
207 TC_argument_list_t * secondArg);
209 int getPreActionUserArgPosition( TC_argument_list_t* user_arg_to_compare, METHOD_user_arg_compare_t compareFunc,
int* positionFound );
222 virtual void executeBaseAction( METHOD_message_t & msg, va_list args,
bool userExitBase =
false )
const;
231 virtual void executeBaseAction( tag_t object_tag, va_list args,
bool userExitBase =
false )
const;
233 virtual void execute( tag_t object_tag, va_list args )
const;
251 virtual void setName(
const std::string& );
257 static int executeUserExit(
const char* typeName,
const char* propName,
const char* msgName,
bool* customActionExecuted, ... );
258 static int executeUserExit(
const char* typeName,
const char* propName,
const char* msgName, va_list args );
264 static bool isExtensionValid(
const std::string& typeName,
const std::string& operationName,
265 const std::string& extensionName, ExtensionPointType_t extType );
267 static bool hasAction(
const std::string& typeName,
const std::string& operationName,
268 ExtensionPointType_t extType );
290 const std::string& operationID,
301 const std::string& operationID,
316 int addRuntimeUserArguments(
const char * extensionName, ExtensionPointType_t extType,
int argCount,
const TC_argument_t * args );
320 virtual void setupMessageData( tag_t object_tag, METHOD_message_t& msgData )
const;
358 ExtensionPointType_t extensionType );
393 const std::string& objectBasedOperationID,
395 bool& oObjBasedSuperDelegToSetBasedParent,
404 const std::string& operationID,
407 tag_t& parentWithOpOverriden,
416 const std::string& operationID,
449 #include <extensionframework/libextensionframework_undef.h>
450 #endif //OPERATIONDISPATCHER_HXX