20#ifndef _mtsInterfaceRequired_h
21#define _mtsInterfaceRequired_h
245 void BlockingCommandExecutedHandler(
void);
246 void BlockingCommandReturnExecutedHandler(
void);
249 bool DetachCommands(
void);
263 void ToStream(std::ostream & outputStream)
const override;
268 template <
class _Po
interType>
291 outputStream <<
" (optional)";
293 outputStream <<
" (required)";
310 const std::string & methodName,
311 const std::string & eventName);
373 const std::string & eventName,
375 template <
class __
classType>
377 __classType * classInstantiation,
378 const std::string & eventName,
385 const std::string & eventName,
391 template <
class __
classType,
class __argumentType>
392 inline mtsCommandWriteBase * AddEventHandlerWrite(
void (__classType::*method)(
const __argumentType &),
393 __classType * classInstantiation,
394 const std::string & eventName,
397 template <
class __
classType>
399 __classType * classInstantiation,
400 const std::string & eventName,
410template <
class __
classType,
class __argumentType>
412 __classType * classInstantiation,
413 const std::string & eventName,
433template <
class __
classType>
435 __classType * classInstantiation,
436 const std::string & eventName,
449 CMN_LOG_CLASS_INIT_ERROR <<
"No mailbox for queued event handler write generic \"" << eventName <<
"\"" << std::endl;
Definition cmnNamedMap.h:54
bool AddItem(const std::string &name, _elementType *item, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_ERROR)
Definition cmnNamedMap.h:232
_elementType * GetItem(const std::string &name, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_DEBUG) const
Definition cmnNamedMap.h:251
Definition mtsCallableVoidBase.h:40
mtsCallableVoidFunction()
Definition mtsCallableVoidFunction.h:56
mtsCallableVoidMethod(void)
Definition mtsCallableVoidMethod.h:74
Definition mtsCommandQueuedWrite.h:210
Definition mtsCommandQueuedWrite.h:43
Definition mtsCommandVoid.h:44
Definition mtsCommandWriteBase.h:40
friend class mtsCommandQueuedWriteGeneric
Definition mtsCommandWriteBase.h:43
Definition mtsCommandWrite.h:189
Definition mtsCommandWrite.h:41
Definition mtsComponent.h:150
Definition mtsParameterTypesOld.h:41
Definition mtsEventReceiver.h:184
Definition mtsEventReceiver.h:221
Definition mtsFunctionQualifiedRead.h:37
Definition mtsFunctionRead.h:37
Definition mtsFunctionVoid.h:36
Definition mtsFunctionVoidReturn.h:38
Definition mtsFunctionWrite.h:37
Definition mtsFunctionWriteReturn.h:38
Base class for data object in cisstMultiTask.
Definition mtsGenericObject.h:52
mtsInterface(const std::string &interfaceName, mtsComponent *component)
Definition mtsInterfaceProvided.h:98
Definition mtsInterfaceRequired.h:270
~FunctionOrReceiverInfo()
Definition mtsInterfaceRequired.h:281
mtsRequiredType Required
Definition mtsInterfaceRequired.h:274
FunctionOrReceiverInfo(_PointerType &func_or_recv, mtsRequiredType required)
Definition mtsInterfaceRequired.h:276
void ToStream(std::ostream &outputStream) const
Definition mtsInterfaceRequired.h:287
void Detach(void)
Definition mtsInterfaceRequired.h:283
friend class mtsInterfaceRequired
Definition mtsInterfaceRequired.h:271
mtsFunctionBase * Pointer
Definition mtsInterfaceRequired.h:273
Definition mtsInterfaceCommon.h:1007
Definition mtsInterfaceRequired.h:83
ConnectionIDType GetConnectionID(void) const
Definition mtsInterfaceRequired.h:185
mtsFunctionWriteReturn * GetFunctionWriteReturn(const std::string &functionName) const
@ DEFAULT_MAIL_BOX_AND_ARGUMENT_QUEUES_SIZE
Definition mtsInterfaceRequired.h:129
FunctionInfoMapType FunctionsVoidReturn
Definition mtsInterfaceRequired.h:322
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:434
FunctionInfoMapType FunctionsRead
Definition mtsInterfaceRequired.h:331
void EnableAllEvents(void)
void GetDescription(mtsInterfaceRequiredDescription &requiredInterfaceDescription) const
mtsCommandVoid * AddEventHandlerVoid(void(__classType::*method)(void), __classType *classInstantiation, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition mtsInterfaceRequired.h:376
bool AddFunction(const std::string &functionName, mtsFunctionRead &function, mtsRequiredType required=MTS_REQUIRED)
bool SetArgumentQueuesSize(size_t desiredSize)
cmnNamedMap< mtsCommandVoid > EventHandlerVoidMapType
Definition mtsInterfaceRequired.h:346
virtual std::vector< std::string > GetNamesOfFunctions(void) const
friend class mtsSocketProxyClient
Definition mtsInterfaceRequired.h:90
friend class mtsEventReceiverBase
Definition mtsInterfaceRequired.h:87
friend class mtsManagerLocal
Definition mtsInterfaceRequired.h:86
mtsInterfaceRequired(void)
virtual std::vector< std::string > GetNamesOfFunctionsQualifiedRead(void) const
bool RemoveEventHandlerWrite(const std::string &eventName)
mtsFunctionVoid * GetFunctionVoid(const std::string &functionName) const
friend class mtsManagerComponent
Definition mtsInterfaceRequired.h:88
size_t ProcessMailBoxes(void)
virtual std::vector< std::string > GetNamesOfFunctionsVoid(void) const
virtual std::vector< std::string > GetNamesOfEventHandlersVoid(void) const
EventHandlerWriteMapType EventHandlersWrite
Definition mtsInterfaceRequired.h:349
mtsMailBox * MailBox
Definition mtsInterfaceRequired.h:100
virtual mtsCommandWriteBase * GetEventHandlerWrite(const std::string &eventName) const
virtual std::vector< std::string > GetNamesOfFunctionsVoidReturn(void) const
size_t ArgumentQueuesSize
Definition mtsInterfaceRequired.h:109
bool UseQueueBasedOnInterfacePolicy(mtsEventQueueingPolicy queueingPolicy, const std::string &methodName, const std::string &eventName)
cmnNamedMap< FunctionInfo > FunctionInfoMapType
Definition mtsInterfaceRequired.h:316
bool SetMailBoxAndArgumentQueuesSize(size_t desiredSize)
FunctionInfoMapType FunctionsWriteReturn
Definition mtsInterfaceRequired.h:328
mtsFunctionRead * GetFunctionRead(const std::string &functionName) const
cmnNamedMap< ReceiverVoidInfo > EventReceiverVoidMapType
Definition mtsInterfaceRequired.h:336
mtsCommandWriteBase * AddEventHandlerWrite(void(__classType::*method)(const __argumentType &), __classType *classInstantiation, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition mtsInterfaceRequired.h:411
virtual std::vector< std::string > GetNamesOfFunctionsWriteReturn(void) const
void ToStream(std::ostream &outputStream) const override
cmnNamedMap< ReceiverWriteInfo > EventReceiverWriteMapType
Definition mtsInterfaceRequired.h:337
virtual mtsCommandVoid * GetEventHandlerVoid(const std::string &eventName) const
bool AddEventHandlerToReceiver(const std::string &eventName, mtsCommandWriteBase *handler) const
mtsInterfaceRequired(const std::string &interfaceName, mtsComponent *component, mtsMailBox *mailBox, mtsRequiredType required=MTS_REQUIRED)
FunctionOrReceiverInfo< mtsEventReceiverWrite > ReceiverWriteInfo
Definition mtsInterfaceRequired.h:300
mtsRequiredType IsRequired(void) const
void DisableAllEvents(void)
FunctionOrReceiverInfo< mtsEventReceiverVoid > ReceiverVoidInfo
Definition mtsInterfaceRequired.h:299
mtsCommandVoid * AddEventHandlerVoid(mtsCallableVoidBase *callable, const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
size_t MailBoxSize
Definition mtsInterfaceRequired.h:106
osaThreadSignal * GetThreadSignal(void)
virtual std::vector< std::string > GetNamesOfFunctionsRead(void) const
bool AddFunction(const std::string &functionName, mtsFunctionWrite &function, mtsRequiredType required=MTS_REQUIRED)
bool AddSystemEventHandlers(void)
EventReceiverVoidMapType EventReceiversVoid
Definition mtsInterfaceRequired.h:340
EventHandlerVoidMapType EventHandlersVoid
Definition mtsInterfaceRequired.h:348
const mtsInterfaceProvided * GetConnectedInterface(void) const
cmnNamedMap< mtsCommandWriteBase > EventHandlerWriteMapType
Definition mtsInterfaceRequired.h:347
virtual std::vector< std::string > GetNamesOfFunctionsWrite(void) const
osaThreadSignal ThreadSignalForBlockingCommands
Definition mtsInterfaceRequired.h:120
const mtsInterfaceProvided * InterfaceProvided
Definition mtsInterfaceRequired.h:103
mtsFunctionVoidReturn * GetFunctionVoidReturn(const std::string &functionName) const
bool AddEventHandlerToReceiver(const std::string &eventName, mtsCommandVoid *handler) const
bool AddEventReceiver(const std::string &eventName, mtsEventReceiverVoid &receiver, mtsRequiredType required=MTS_REQUIRED)
bool ConnectTo(mtsInterfaceProvided *interfaceProvided)
bool RemoveEventHandlerVoid(const std::string &eventName)
FunctionInfoMapType FunctionsVoid
Definition mtsInterfaceRequired.h:319
bool SetMailBoxSize(size_t desiredSize)
FunctionInfoMapType FunctionsQualifiedRead
Definition mtsInterfaceRequired.h:334
virtual ~mtsInterfaceRequired()
bool AddFunction(const std::string &functionName, mtsFunctionQualifiedRead &function, mtsRequiredType required=MTS_REQUIRED)
bool AddFunction(const std::string &functionName, mtsFunctionVoidReturn &function, mtsRequiredType required=MTS_REQUIRED)
bool AddFunction(const std::string &functionName, mtsFunctionVoid &function, mtsRequiredType required=MTS_REQUIRED)
mtsInterfaceRequiredDescription GetDescription() const
friend class mtsSocketProxyServer
Definition mtsInterfaceRequired.h:92
FunctionOrReceiverInfo< mtsFunctionBase > FunctionInfo
Definition mtsInterfaceRequired.h:298
mtsFunctionWrite * GetFunctionWrite(const std::string &functionName) const
bool AddFunction(const std::string &functionName, mtsFunctionWriteReturn &function, mtsRequiredType required=MTS_REQUIRED)
FunctionInfoMapType FunctionsWrite
Definition mtsInterfaceRequired.h:325
mtsFunctionQualifiedRead * GetFunctionQualifiedRead(const std::string &functionName) const
EventReceiverWriteMapType EventReceiversWrite
Definition mtsInterfaceRequired.h:343
mtsCommandVoid * AddEventHandlerVoid(void(*function)(void), const std::string &eventName, mtsEventQueueingPolicy queueingPolicy=MTS_INTERFACE_EVENT_POLICY)
Definition mtsInterfaceRequired.h:384
virtual std::vector< std::string > GetNamesOfEventHandlersWrite(void) const
mtsRequiredType Required
Definition mtsInterfaceRequired.h:97
ConnectionIDType ConnectionID
Definition mtsInterfaceRequired.h:113
bool AddEventReceiver(const std::string &eventName, mtsEventReceiverWrite &receiver, mtsRequiredType required=MTS_REQUIRED)
Definition mtsMailBox.h:36
Definition osaThreadSignal.h:41
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition cmnClassRegisterMacros.h:199
const int CMN_NO_DYNAMIC_CREATION
Definition cmnClassRegisterMacros.h:325
#define CISST_EXPORT
Definition cmnExportMacros.h:50
#define CMN_LOG_ALLOW_DEFAULT
Definition cmnLogLoD.h:76
#define CMN_LOG_CLASS_INIT_ERROR
Definition cmnLogger.h:113
Declaration of cmnNamedMap.
Defines a command with no argument.
Defines a command with no argument.
Defines a base class for a command.
Defines base class for a queued void command.
Define an internal command for cisstMultiTask.
Defines a command with no argument.
Defines a command with one argument.
mtsEventQueueingPolicy
Definition mtsForwardDeclarations.h:48
@ MTS_INTERFACE_EVENT_POLICY
Definition mtsForwardDeclarations.h:48
mtsRequiredType
Definition mtsForwardDeclarations.h:51
@ MTS_OPTIONAL
Definition mtsForwardDeclarations.h:51
@ MTS_REQUIRED
Definition mtsForwardDeclarations.h:51
unsigned int ConnectionIDType
Definition mtsForwardDeclarations.h:149
Defines a base function object to allow heterogeneous containers of functions.
Declaration of mtsInterface.
std::ostream & operator<<(std::ostream &output, const mtsInterfaceRequired::FunctionInfo &functionInfo)
Definition mtsInterfaceRequired.h:462
Declaration of osaThread.