MAK RTIspy API Documentation for HLA 1516
timeTwoMsg.h
Go to the documentation of this file.
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 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)