15 #include <vlutil/vlThreadSafe.h>
16 #include <vlutil/vlMutex.h>
18 #include <vlutil/vlLockfreeQueue.h>
24 #include <vlutil/vlSelectParamW.h>
33 class DtSelectParamWithWrite;
43 MAKRti::DtTransportType transport,
44 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny() );
65 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
66 DtBoost::shared_ptr<DtRtiAssistantLrcClient>() );
86 virtual bool isAsynchronous();
91 rti1516::FederateAmbassador* fedAmb,
92 #elif defined(DtIFSPEC13)
93 RTI::FederateAmbassador* fedAmb,
96 MAKRti::DtString fedExName,
102 virtual void queueMsg(
DtRtiMsg* msg,
103 MAKRti::DtTransportType transport,
104 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny() );
108 MAKRti::DtTransportType transport,
109 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny() );
114 MAKRti::DtTransportType transport,
115 const MAKRti::DtInetAddr& addr = MAKRti::DtInetAddr::inaddrAny() );
137 virtual bool flush();
140 virtual void receiveThread();
141 virtual void sendThread();
145 virtual bool wait( MAKRti::DtTime periodInSeconds,
bool unlockWhileWaiting =
false );
157 #elif defined(DtIFSPEC1516E)
165 virtual HANDLE waitEvent();
170 #elif defined(DtIFSPEC1516E)
173 virtual WSAEVENT readFileEvent(RTI::TransportType transport);
177 virtual int waitEvent();
182 virtual void signalReceiveEvent();
186 virtual void clearReceiveEvent();
190 virtual void signalSendEvent();
194 virtual void clearSendEvent();
197 virtual void yield();
208 virtual bool doReceiveProcessing(
unsigned long timeout);
211 virtual void doDisconnectFederation();
214 virtual bool doWait(MAKRti::DtTime period);
223 virtual bool sendPackets();
231 MAKRti::DtTransportType transportType,
unsigned int& receivedPacketCount);
237 virtual bool receivePackets();
243 unsigned int& receivedPacketCount);
247 virtual void processPendingMsgQueueCallbacks();
250 virtual void processPendingMsgMakeCallbacks();
253 virtual void setMessageTracking(
DtRtiMsg& msg);
257 virtual void destroyPackets();
269 virtual void startAsynchronousReceiveProcessing();
270 virtual void startAsynchronousSendProcessing();
273 virtual void stopAsynchronousReceiveProcessing();
274 virtual void stopAsynchronousSendProcessing();
288 DtBoost::shared_ptr<DtRtiAssistantLrcClient> assistantClient =
289 DtBoost::shared_ptr<DtRtiAssistantLrcClient>() );
293 static unsigned long runReceive(
void* usr );
294 static unsigned long runSend(
void* usr );
296 static void* runReceive(
void* usr );
297 static void* runSend(
void* usr );
319 HANDLE myReceiveThreadHandle;
320 HANDLE mySendThreadHandle;
322 HANDLE* myWaitEvents;
323 HANDLE mySendWaitEvent;
324 unsigned int myNumWaitEvents;
362 unsigned int myWaitEvent_BestEffortConn;
363 unsigned int myWaitEvent_PrimaryReliableConn;
364 unsigned int myWaitEvent_AncillaryReliableConnStart;
365 unsigned int myNoBestEffort;