![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1998 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: timeTwoMsg.h,v $ $Revision: 1.12 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtTimeLookaheadMsg_H_ 00013 #define DtTimeLookaheadMsg_H_ 00014 00015 #ifdef DtTIME 00016 00017 #include "rtiMsg.h" 00018 #include "netTimeTwoMsg.h" 00019 00020 class DtConnection; 00021 class DtTimeLookaheadMsg; 00022 typedef void (*DtTimeLookaheadCb)(const DtTimeLookaheadMsg& msg, void* usr); 00023 00024 class DT_DLL_LRC DtTimeLookaheadMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtTimeLookaheadMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00032 DtTimeLookaheadMsg( 00033 #ifdef DtIFSPEC1516 00034 rti1516::LogicalTime const & theTime, 00035 rti1516::LogicalTimeInterval const & theLookahead, 00036 #elif defined(DtIFSPEC1516E) 00037 rti1516e::LogicalTime const & theTime, 00038 rti1516e::LogicalTimeInterval const & theLookahead, 00039 #else 00040 RTI::FedTime const & theTime, 00041 RTI::FedTime const & theLookahead, 00042 #endif 00043 bool isTimeAvailable=false, 00044 unsigned long nerCycleVal=0, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00048 DtTimeLookaheadMsg(const DtNetTimeLookaheadMsg* netRepMsg, 00049 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00050 00052 virtual ~DtTimeLookaheadMsg(); 00053 00055 virtual DtRtiMsg* clone(bool copy = true) const; 00056 00058 virtual void set( 00059 #ifdef DtIFSPEC1516 00060 rti1516::LogicalTime const & theTime, 00061 rti1516::LogicalTimeInterval const & theLookahead, 00062 #elif defined(DtIFSPEC1516E) 00063 rti1516e::LogicalTime const & theTime, 00064 rti1516e::LogicalTimeInterval const & theLookahead, 00065 #else 00066 RTI::FedTime const & theTime, 00067 RTI::FedTime const & theLookahead, 00068 #endif 00069 bool isTimeAvailable=false, 00070 unsigned long nerCycleVal=0); 00071 00073 #ifdef DtIFSPEC1516 00074 virtual void setTime(rti1516::LogicalTime const & timeVal); 00075 virtual rti1516::LogicalTime const * time( 00076 DtLogicalTimeFactory* logicalTimeFactory) const; 00077 #elif defined(DtIFSPEC1516E) 00078 virtual void setTime(rti1516e::LogicalTime const & timeVal); 00079 virtual rti1516e::LogicalTime const * time( 00080 DtLogicalTimeFactory* logicalTimeFactory) const; 00081 #else 00082 virtual void setTime(RTI::FedTime const & timeVal); 00083 virtual RTI::FedTime const * time( 00084 DtLogicalTimeFactory* logicalTimeFactory) const; 00085 #endif 00086 00088 #ifdef DtIFSPEC1516 00089 virtual void setLookahead(rti1516::LogicalTimeInterval const & lookaheadVal); 00090 virtual rti1516::LogicalTimeInterval const * lookahead( 00091 DtLogicalTimeFactory* logicalTimeFactory) const; 00092 #elif defined(DtIFSPEC1516E) 00093 virtual void setLookahead(rti1516e::LogicalTimeInterval const & lookaheadVal); 00094 virtual rti1516e::LogicalTimeInterval const * lookahead( 00095 DtLogicalTimeFactory* logicalTimeFactory) const; 00096 #else 00097 virtual void setLookahead(RTI::FedTime const & lookaheadVal); 00098 virtual RTI::FedTime const * lookahead( 00099 DtLogicalTimeFactory* logicalTimeFactory) const; 00100 #endif 00101 00104 virtual void setTimeAvailable(bool isTimeAvailable); 00105 virtual bool timeAvailable() const; 00106 00108 virtual void setNerCycle(unsigned long nerCycleVal); 00109 virtual unsigned long nerCycle() const; 00110 00112 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00113 00114 protected: 00115 00117 DtRtiMsgKind internalDtRtiMsgKind(); 00118 00120 virtual DtNetTimeLookaheadMsg* netTimeLookaheadMsg(); 00121 virtual const DtNetTimeLookaheadMsg* netTimeLookaheadMsg() const; 00122 00124 #ifdef DtIFSPEC1516 00125 virtual int minSize(rti1516::LogicalTime const * theTime=NULL, 00126 rti1516::LogicalTimeInterval const * theLookahead=NULL) const; 00127 #elif defined(DtIFSPEC1516E) 00128 virtual int minSize(rti1516e::LogicalTime const * theTime=NULL, 00129 rti1516e::LogicalTimeInterval const * theLookahead=NULL) const; 00130 #else 00131 virtual int minSize(RTI::FedTime const * theTime=NULL, 00132 RTI::FedTime const * theLookahead=NULL) const; 00133 #endif 00134 00136 virtual void setTimeSize(int size); 00137 virtual int timeSize() const; 00138 00140 virtual void setLookaheadSize(int size); 00141 virtual int lookaheadSize() const; 00142 00144 virtual char* timePtr(); 00145 00147 virtual char* lookaheadPtr(); 00148 00150 virtual int timeFieldSize() const; 00151 00153 virtual int lookaheadFieldSize() const; 00154 00156 virtual DtTimeLookaheadMsg* self() const; 00157 00158 protected: 00160 #ifdef DtIFSPEC1516 00161 rti1516::LogicalTimeInterval * myLookahead; 00162 #elif defined(DtIFSPEC1516E) 00163 rti1516e::LogicalTimeInterval * myLookahead; 00164 #else 00165 RTI::FedTime * myLookahead; 00166 #endif 00167 }; 00168 00169 inline DtTimeLookaheadMsg* DtTimeLookaheadMsg::self() const 00170 { 00171 return const_cast<DtTimeLookaheadMsg*>( this ); 00172 } 00173 00174 #endif 00175 #endif 00176