![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00009 00010 #ifndef DtEnvironmentProcessPublisher_H_ 00011 #define DtEnvironmentProcessPublisher_H_ 00012 00013 #if DtDIS 00014 00015 00016 #include "dObjPub.h" 00017 #include "pdu.h" 00018 #include "envProcessSR.h" 00019 #include "dEnvProcEnc.h" 00020 #include "dEnvProcDec.h" 00021 00030 class DT_DLL_VL DtEnvironmentProcessPublisher : public DtObjectPublisher 00031 { 00032 00033 public: 00036 typedef DtEnvironmentProcessRepository* (*DtStateRepCreator)(); 00037 00038 public: 00039 00041 DtEnvironmentProcessPublisher( 00042 DtEnvironmentProcessRepository* stateRepToUse, 00043 DtExerciseConn* conn, 00044 const DtObjectId& id = DtObjectId::defaultId()); 00045 00047 DtEnvironmentProcessPublisher( 00048 DtExerciseConn* conn, 00049 const DtObjectId& id = DtObjectId::defaultId()); 00050 00052 virtual ~DtEnvironmentProcessPublisher(); 00053 00058 virtual void tick(); 00059 00062 virtual DtEnvironmentProcessRepository* environmentProcessStateRep(); 00063 00065 virtual DtEnvironmentProcessRepository* epsr(); 00066 00070 virtual DtEnvironmentProcessDecoder* decoder(); 00071 00074 virtual DtEnvironmentProcessEncoder* encoder(); 00075 00077 virtual const DtObjectId& id() const; 00078 00080 virtual const DtObjectId& localId() const; 00081 00083 virtual const DtGlobalObjectDesignator& globalId() const; 00084 00088 virtual void sendFinalPduOnDestruction(bool onOff); 00089 00092 virtual void forceUpdate(); 00093 00094 public: 00095 00097 static void setStateRepCreator(DtStateRepCreator creator); 00098 static DtStateRepCreator stateRepCreator(void); 00099 00100 static void setClassDfltTimeThreshold(DtTime threshold); 00101 00102 protected: 00103 00105 void sendFinalPdu(); 00106 00108 void init(const DtEntityIdentifier& vehId); 00109 00110 //copy constructor -- not implemented 00111 DtEnvironmentProcessPublisher(const DtEnvironmentProcessPublisher& orig); 00112 00114 DtEnvironmentProcessPublisher& operator= 00115 (const DtEnvironmentProcessPublisher& orig); 00116 00117 protected: 00118 00119 DtObjectId myId; 00120 DtEnvironmentProcessDecoder* myDecoder; 00121 DtEnvironmentProcessEncoder* myEncoder; 00122 bool mySendFinalInDtor; 00123 00124 protected: 00125 static DtStateRepCreator theStateRepCreator; 00126 static DtTime theClassDfltTimeThreshold; 00127 static bool theClassDfltIsSetFlag; 00128 }; 00129 00130 inline DtEnvironmentProcessRepository* 00131 DtEnvironmentProcessPublisher::environmentProcessStateRep() 00132 { 00133 return epsr(); 00134 } 00135 00136 inline DtEnvironmentProcessRepository* DtEnvironmentProcessPublisher::epsr() 00137 { 00138 return static_cast<DtEnvironmentProcessRepository*>(myStateRep); 00139 } 00140 00141 inline DtEnvironmentProcessEncoder* DtEnvironmentProcessPublisher::encoder() 00142 { 00143 return myEncoder; 00144 } 00145 00146 inline DtEnvironmentProcessDecoder* DtEnvironmentProcessPublisher::decoder() 00147 { 00148 return myDecoder; 00149 } 00150 00151 00152 inline void DtEnvironmentProcessPublisher::sendFinalPduOnDestruction(bool onOff) 00153 { 00154 mySendFinalInDtor = onOff; 00155 } 00156 00157 inline const DtObjectId& DtEnvironmentProcessPublisher::id() const 00158 { 00159 return myId; 00160 } 00161 00162 inline const DtObjectId& DtEnvironmentProcessPublisher::localId() const 00163 { 00164 return id(); 00165 } 00166 00167 #endif 00168 #endif 00169