15 #include <vlutil/vlMachineTypes.h>
17 namespace MAKVrExchange
20 namespace DtTenaBroker
37 virtual ~DtMessageInterface();
41 virtual void send(
const DtInteraction& inter, DtExerciseConn& exConn )
const = 0;
46 virtual void addCallback( DtExerciseConn* conn,
void* usr ) = 0;
51 virtual void removeCallback( DtExerciseConn* conn,
void* usr ) = 0;
55 virtual void setSendDelayTime(
double delayTimeInSeconds );
58 virtual double sendDelayTime()
const;
62 double mySendDelayTime;
72 #define DtDEFINE_MSG_CALLBACKINFO(localName) \
73 class localName##MessageCallbackInfo \
76 localName##MessageCallbackInfo(DtExerciseConn* exConn, \
77 localName##Interface* iface) : \
79 myInterface(iface) { } \
81 DtExerciseConn* exConn() { return myExConn;} \
82 localName##Interface* interface() { return myInterface;} \
84 DtExerciseConn* myExConn; \
85 localName##Interface* myInterface; \
87 typedef DCT::Utils::SmartPtr<localName##MessageCallbackInfo> \
88 localName##MessageCallbackInfoPtr;
93 #define DtDEFINE_MESSAGE_CALLBACK(localName, omNamespace) \
94 class localName##MessageCallback : \
95 public virtual TENA::Middleware::Callback::Callback \
98 localName##MessageCallback( const omNamespace::Pointer& message, \
99 const localName##MessageCallbackInfoPtr& callbackInfo) : \
100 myCallbackInfo(callbackInfo), \
101 myMessage(message) { } \
103 virtual ~localName##MessageCallback() {} \
105 virtual void execute() \
107 localName##Interaction* interaction = \
108 static_cast<localName##Interaction*>(localName##Interaction::create()); \
109 localName##Interface::decode(myMessage, interaction); \
110 myCallbackInfo->exConn()->applyInteractionCallback(interaction->name(), \
112 myCallbackInfo->exConn()->incrementNumberOfMessagesProcessed(); \
113 delete interaction; \
116 localName##MessageCallbackInfoPtr myCallbackInfo; \
117 omNamespace::Pointer myMessage; \
123 #define DtDEFINE_MESSAGE_CALLBACK_FACTORY(localName, omNamespace) \
124 class localName##MessageCallbackFactory : \
125 public virtual omNamespace::MessageCallbackFactory \
128 localName##MessageCallbackFactory( \
129 const localName##MessageCallbackInfoPtr& cbInfo) : \
130 myCallbackInfo(cbInfo) { } \
132 virtual ~localName##MessageCallbackFactory() { } \
134 virtual std::auto_ptr<TENA::Middleware::Callback::Callback> \
135 create(const omNamespace::Pointer& message) \
137 return std::auto_ptr<TENA::Middleware::Callback::Callback>( \
138 new localName##MessageCallback(message, myCallbackInfo)); \
141 localName##MessageCallbackInfoPtr myCallbackInfo; \
147 #define DtDEFINE_MESSAGE_SUB_INFO(localName, omNamespace) \
148 class localName##SubscriptionInfo : public omNamespace::SubscriptionInfo \
151 localName##SubscriptionInfo(const localName##MessageCallbackInfoPtr& cbInfo)\
152 : omNamespace::SubscriptionInfo( \
153 omNamespace::MessageCallbackFactoryPtr( \
154 new localName##MessageCallbackFactory(cbInfo))) { } \
156 virtual ~localName##SubscriptionInfo() { } \
#define DT_DLL_VLTENA
Definition: brokers/tenaBroker/vlTena/dllExport.h:26
Contains the DtExerciseConn class declaration.