21 #ifndef _mtsInterfaceRequired_h
22 #define _mtsInterfaceRequired_h
89 friend class mtsComponentProxy;
90 friend class mtsComponentInterfaceProxyClient;
92 friend class mtsManagerLocalTest;
131 enum {DEFAULT_MAIL_BOX_AND_ARGUMENT_QUEUES_SIZE = 64};
164 bool SetMailBoxSize(
size_t desiredSize);
180 bool SetArgumentQueuesSize(
size_t desiredSize);
185 bool SetMailBoxAndArgumentQueuesSize(
size_t desiredSize);
189 virtual std::vector<std::string> GetNamesOfFunctions(
void)
const;
190 virtual std::vector<std::string> GetNamesOfFunctionsVoid(
void)
const;
191 virtual std::vector<std::string> GetNamesOfFunctionsVoidReturn(
void)
const;
192 virtual std::vector<std::string> GetNamesOfFunctionsWrite(
void)
const;
193 virtual std::vector<std::string> GetNamesOfFunctionsWriteReturn(
void)
const;
194 virtual std::vector<std::string> GetNamesOfFunctionsRead(
void)
const;
195 virtual std::vector<std::string> GetNamesOfFunctionsQualifiedRead(
void)
const;
200 mtsFunctionVoid * GetFunctionVoid(
const std::string & functionName)
const;
202 mtsFunctionWrite * GetFunctionWrite(
const std::string & functionName)
const;
204 mtsFunctionRead * GetFunctionRead(
const std::string & functionName)
const;
210 virtual std::vector<std::string> GetNamesOfEventHandlersVoid(
void)
const;
211 virtual std::vector<std::string> GetNamesOfEventHandlersWrite(
void)
const;
216 virtual mtsCommandVoid * GetEventHandlerVoid(
const std::string & eventName)
const;
238 bool AddSystemEventHandlers(
void);
241 void BlockingCommandExecutedHandler(
void);
242 void BlockingCommandReturnExecutedHandler(
void);
245 bool DetachCommands(
void);
251 void DisableAllEvents(
void);
253 void EnableAllEvents(
void);
259 void ToStream(std::ostream & outputStream)
const;
263 #ifndef SWIG // SWIG cannot deal with this
264 template <
class _Po
interType>
275 Pointer(&func_or_recv),
287 outputStream << *Pointer;
289 outputStream <<
" (optional)";
291 outputStream <<
" (required)";
308 const std::string & methodName,
309 const std::string & eventName);
371 const std::string & eventName,
373 template <
class __
classType>
375 __classType * classInstantiation,
376 const std::string & eventName,
383 const std::string & eventName,
389 template <
class __
classType,
class __argumentType>
391 __classType * classInstantiation,
392 const std::string & eventName,
395 template <
class __
classType>
397 __classType * classInstantiation,
398 const std::string & eventName,
408 template <
class __
classType,
class __argumentType>
410 __classType * classInstantiation,
411 const std::string & eventName,
431 template <
class __
classType>
433 __classType * classInstantiation,
434 const std::string & eventName,
445 if (argumentPrototype)
449 CMN_LOG_CLASS_INIT_ERROR <<
"No mailbox for queued event handler write generic \"" << eventName <<
"\"" << std::endl;
471 #endif // _mtsInterfaceRequired_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
Definition: mtsEventReceiver.h:143
Defines base class for a queued void command.
FunctionInfoMapType FunctionsQualifiedRead
Definition: mtsInterfaceRequired.h:332
Definition: mtsParameterTypesOld.h:41
void ToStream(std::ostream &outputStream) const
Definition: mtsInterfaceRequired.h:285
Definition: mtsFunctionRead.h:37
EventHandlerVoidMapType EventHandlersVoid
Definition: mtsInterfaceRequired.h:346
FunctionInfoMapType FunctionsVoidReturn
Definition: mtsInterfaceRequired.h:320
Definition: mtsSocketProxyClient.h:72
FunctionInfoMapType FunctionsWriteReturn
Definition: mtsInterfaceRequired.h:326
_PointerType * Pointer
Definition: mtsInterfaceRequired.h:271
Definition: mtsCommandVoid.h:44
Definition: mtsForwardDeclarations.h:49
FunctionOrReceiverInfo< mtsFunctionBase > FunctionInfo
Definition: mtsInterfaceRequired.h:296
mtsCommandVoid * AddEventHandlerVoid(void(*function)(void), const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition: mtsInterfaceRequired.h:382
bool AddEventHandlerToReceiver(const std::string &eventName, mtsCommandVoid *handler) const
Definition: mtsForwardDeclarations.h:52
Definition: mtsCallableVoidBase.h:39
Definition: mtsFunctionQualifiedRead.h:37
cmnNamedMap< ReceiverWriteInfo > EventReceiverWriteMapType
Definition: mtsInterfaceRequired.h:335
Definition: mtsInterfaceRequired.h:85
Definition: mtsInterfaceRequired.h:265
FunctionInfoMapType FunctionsVoid
Definition: mtsInterfaceRequired.h:317
~FunctionOrReceiverInfo()
Definition: mtsInterfaceRequired.h:279
Declaration of cmnNamedMap.
size_t ProcessMailBoxes(InterfacesProvidedMapType &interfaces)
Definition: mtsCommandWrite.h:189
Definition: mtsEventReceiver.h:98
Definition: mtsInterfaceCommon.h:1046
Definition: mtsInterface.h:41
Definition: mtsFunctionVoidReturn.h:38
Definition: mtsFunctionVoid.h:36
void GetDescription(mtsInterfaceRequiredDescription &requiredInterfaceDescription)
Declaration of osaThread.
EventReceiverVoidMapType EventReceiversVoid
Definition: mtsInterfaceRequired.h:338
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
cmnNamedMap< mtsCommandWriteBase > EventHandlerWriteMapType
Definition: mtsInterfaceRequired.h:345
std::ostream & operator<<(std::ostream &output, const mtsInterfaceRequired::FunctionInfo &functionInfo)
Definition: mtsInterfaceRequired.h:462
size_t ArgumentQueuesSize
Definition: mtsInterfaceRequired.h:115
osaThreadSignal ThreadSignalForBlockingCommands
Definition: mtsInterfaceRequired.h:122
Definition: mtsManagerLocal.h:89
Defines a base function object to allow heterogeneous containers of functions.
virtual void SetArgumentPrototype(const mtsGenericObject *argumentPrototype)
Definition: mtsCommandQueuedWrite.h:252
Declaration of Manager Component ClientThis class defines the manager component client which is manag...
Definition: mtsManagerComponentClient.h:41
Definition: mtsEventReceiver.h:180
mtsEventQueueingPolicy
Definition: mtsForwardDeclarations.h:49
bool UseQueueBasedOnInterfacePolicy(mtsEventQueueingPolicy queueingPolicy, const std::string &methodName, const std::string &eventName)
mtsRequiredType
Definition: mtsForwardDeclarations.h:52
Definition: mtsCommandWriteBase.h:40
Definition: mtsCommandQueuedWrite.h:209
bool AddItem(const std::string &name, _elementType *item, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_ERROR)
Definition: cmnNamedMap.h:232
cmnNamedMap< FunctionInfo > FunctionInfoMapType
Definition: mtsInterfaceRequired.h:314
virtual void ToStream(std::ostream &outputStream) const
Definition: mtsComponent.h:150
Defines a command with no argument.
FunctionOrReceiverInfo(_PointerType &func_or_recv, mtsRequiredType required)
Definition: mtsInterfaceRequired.h:274
EventHandlerWriteMapType EventHandlersWrite
Definition: mtsInterfaceRequired.h:347
FunctionInfoMapType FunctionsWrite
Definition: mtsInterfaceRequired.h:323
bool AddFunction(const std::string &functionName, mtsFunctionVoid &function, mtsRequiredType required=MTS_REQUIRED)
Define an internal command for cisstMultiTask.
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
bool RemoveEventHandlerVoid(const std::string &eventName)
Declaration of mtsInterface.
cmnNamedMap< ReceiverVoidInfo > EventReceiverVoidMapType
Definition: mtsInterfaceRequired.h:334
_elementType * GetItem(const std::string &name, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_DEBUG) const
Definition: cmnNamedMap.h:251
Definition: mtsInterfaceProvided.h:96
EventReceiverWriteMapType EventReceiversWrite
Definition: mtsInterfaceRequired.h:341
mtsCommandVoid * AddEventHandlerVoid(void(__classType::*method)(void), __classType *classInstantiation, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition: mtsInterfaceRequired.h:374
const mtsInterfaceProvided * InterfaceProvided
Definition: mtsInterfaceRequired.h:109
Defines a command with no argument.
Definition: mtsForwardDeclarations.h:52
mtsRequiredType Required
Definition: mtsInterfaceRequired.h:272
mtsRequiredType Required
Definition: mtsInterfaceRequired.h:103
FunctionOrReceiverInfo< mtsEventReceiverVoid > ReceiverVoidInfo
Definition: mtsInterfaceRequired.h:297
mtsCommandWriteBase * AddEventHandlerWrite(void(__classType::*method)(const __argumentType &), __classType *classInstantiation, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition: mtsInterfaceRequired.h:409
bool AddEventReceiver(const std::string &eventName, mtsEventReceiverVoid &receiver, mtsRequiredType required=MTS_REQUIRED)
mtsMailBox * MailBox
Definition: mtsInterfaceRequired.h:106
size_t MailBoxSize
Definition: mtsInterfaceRequired.h:112
#define CMN_LOG_CLASS_INIT_ERROR
Definition: cmnLogger.h:113
FunctionOrReceiverInfo< mtsEventReceiverWrite > ReceiverWriteInfo
Definition: mtsInterfaceRequired.h:298
Definition: mtsCallableVoidFunction.h:35
mtsCommandVoid * AddEventHandlerVoid(mtsCallableVoidBase *callable, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition: mtsCallableVoidMethod.h:45
bool RemoveEventHandlerWrite(const std::string &eventName)
Definition: osaThreadSignal.h:40
Definition: mtsFunctionWrite.h:37
void Detach(void)
Definition: mtsInterfaceRequired.h:281
mtsCommandWriteBase * AddEventHandlerWriteGeneric(void(__classType::*method)(const mtsGenericObject &), __classType *classInstantiation, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY, mtsGenericObject *argumentPrototype=0)
Definition: mtsInterfaceRequired.h:432
Definition: mtsCommandWrite.h:41
Defines a command with one argument.
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
Definition: mtsMailBox.h:36
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition: cmnClassRegisterMacros.h:202
FunctionInfoMapType FunctionsRead
Definition: mtsInterfaceRequired.h:329
Defines a command with no argument.
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
Definition: mtsFunctionWriteReturn.h:38
Defines a base class for a command.
Definition: mtsSocketProxyServer.h:81
cmnNamedMap< mtsCommandVoid > EventHandlerVoidMapType
Definition: mtsInterfaceRequired.h:344
Definition: mtsCommandQueuedWrite.h:42