![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef _baseExConn_H_ 00008 #define _baseExConn_H_ 00009 00010 00011 #include <vlpi/entityIdentifier.h> 00012 #include <vlutil/vlTime.h> 00013 #include <vlutil/vlList.h> 00014 00015 class DT_DLL_VL DtStateMsg; 00016 class DT_DLL_VL DtInteraction; 00017 00018 typedef DtU16 DtExerciseId; 00019 00020 00025 00026 typedef void (*DtPostDrainCb)(void* usr); 00027 00031 class DT_DLL_VL DtBaseExerciseConn 00032 { 00033 public: 00034 00036 virtual ~DtBaseExerciseConn(); 00037 00039 virtual void send(const DtStateMsg& msg) = 0; 00040 00042 virtual void send(const DtInteraction& msg) = 0; 00043 00046 virtual void sendStamped(const DtStateMsg& msg) = 0; 00047 00050 virtual void sendStamped(const DtInteraction& msg) = 0; 00051 00054 virtual void addPostDrainCallback(DtPostDrainCb cb, void *usr); 00055 virtual void removePostDrainCallback(DtPostDrainCb cb, void *usr); 00056 virtual void removeAllPostDrainCallbacks(); 00057 00061 virtual void setClock(DtClock* clock); 00062 00064 virtual DtClock* clock(); 00065 00066 virtual int lastDrainInputReceiveCount() const; 00067 00070 virtual void incrementNumberOfMessagesProcessed(); 00071 00073 00076 virtual void setApplicationId(int siteId, int applNum); 00077 virtual DtSimulationAddress applicationId(); 00078 00081 virtual const DtEntityIdentifier& nextId(); 00082 00085 virtual DtEntityIdentifier makeEntityId(int entityNum); 00086 00087 protected: 00088 00090 00092 DtBaseExerciseConn(); 00093 00095 DtBaseExerciseConn(const DtBaseExerciseConn&); 00096 00098 DtBaseExerciseConn& operator=(const DtBaseExerciseConn&); 00099 00101 virtual void executePostDrainCbs(); 00102 00103 protected: 00104 00105 DtSimulationAddress myAppId; 00106 DtEntityIdentifier myCurrentId; 00107 DtList myPostDrainCbs; 00108 DtClock* myClock; 00109 int myNumberOfMessagesProcessed; 00110 }; 00111 00112 #endif 00113