MAK RTIspy API Documentation for HLA Evolved
nerLbtsMsg.h
Go to the documentation of this file.
00001 
00002 /*********************************************************************
00003 ** Copyright (c) 1998 MaK Technologies, Inc.
00004 ** All rights reserved.
00005 *********************************************************************/
00006 /*********************************************************************
00007 ** $RCSfile: nerLbtsMsg.h,v $ $Revision: 1.9 $ $State: Exp $
00008 *********************************************************************/
00009 
00012 
00013 #ifndef DtNerLbtsMsg_H_
00014 #define DtNerLbtsMsg_H_
00015 
00016 #ifdef DtTIME
00017 
00018 #include "rtiMsg.h"
00019 #include "netNerLbtsMsg.h"
00020 
00021 class DtConnectionMgr;
00022 class DtNerLbtsMsg;
00023 typedef void (*DtNerLbtsMsgCb)(const DtNerLbtsMsg& msg, void* usr);
00024 
00025 class DT_DLL_LRC DtNerLbtsMsg : public DtRtiMsg
00026 {
00027 public:
00028 
00030    DtNerLbtsMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00031 
00033    DtNerLbtsMsg(
00034       unsigned long nerCycleVal,
00035       DtFederateHandle handle,
00036       bool nerPending,
00037       bool lagNerPending,
00038 #ifdef DtIFSPEC1516
00039       rti1516::LogicalTime const & lbtsVal,
00040       rti1516::LogicalTime const & lagLbtsVal,
00041 #elif defined(DtIFSPEC1516E)
00042       rti1516e::LogicalTime const & lbtsVal,
00043       rti1516e::LogicalTime const & lagLbtsVal,
00044 #else
00045       RTI::FedTime const & lbtsVal,
00046       RTI::FedTime const & lagLbtsVal,
00047 #endif
00048       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00049 
00051    DtNerLbtsMsg(const DtNetNerLbts* netRepMsg,
00052       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00053 
00055    virtual ~DtNerLbtsMsg();
00056 
00058    virtual DtRtiMsg* clone(bool copy = true) const; 
00059 
00061    virtual void set(
00062       unsigned long nerCycleVal,
00063       DtFederateHandle handle,
00064       bool nerPending,
00065       bool lagNerPending,
00066 #ifdef DtIFSPEC1516
00067       rti1516::LogicalTime const & lbtsVal,
00068       rti1516::LogicalTime const & lagLbtsVal);
00069 #elif defined(DtIFSPEC1516E)
00070       rti1516e::LogicalTime const & lbtsVal,
00071       rti1516e::LogicalTime const & lagLbtsVal);
00072 #else
00073       RTI::FedTime const & lbtsVal,
00074       RTI::FedTime const & lagLbtsVal);
00075 #endif
00076    
00078    virtual void setNerCycle(unsigned long nerCycleVal);
00079    virtual unsigned long nerCycle() const;
00080 
00082    virtual void setLaggardFederate(DtFederateHandle handle);
00083    virtual DtFederateHandle laggardFederate() const;
00084 
00086    virtual void setIsNerPending(bool nerAvailable);
00087    virtual bool isNerPending() const;
00088 
00090    virtual void setIsLagNerPending(bool nerAvailable);
00091    virtual bool isLagNerPending() const;
00092 
00094 #ifdef DtIFSPEC1516
00095    virtual void setTime(rti1516::LogicalTime const & timeVal);
00096    virtual rti1516::LogicalTime const * time(
00097       DtLogicalTimeFactory* logicalTimeFactory) const;
00098 #elif defined(DtIFSPEC1516E)
00099    virtual void setTime(rti1516e::LogicalTime const & timeVal);
00100    virtual rti1516e::LogicalTime const * time(
00101        DtLogicalTimeFactory* logicalTimeFactory) const;
00102 #else
00103    virtual void setTime(RTI::FedTime const & timeVal);
00104    virtual RTI::FedTime const * time(
00105       DtLogicalTimeFactory* logicalTimeFactory) const;
00106 #endif
00107 
00109 #ifdef DtIFSPEC1516
00110    virtual void setLagLbts(rti1516::LogicalTime const & lbtsVal);
00111    virtual rti1516::LogicalTime const * lagLbts(
00112       DtLogicalTimeFactory* logicalTimeFactory) const;
00113 #elif defined(DtIFSPEC1516E)
00114    virtual void setLagLbts(rti1516e::LogicalTime const & lbtsVal);
00115    virtual rti1516e::LogicalTime const * lagLbts(
00116        DtLogicalTimeFactory* logicalTimeFactory) const;
00117 #else
00118    virtual void setLagLbts(RTI::FedTime const & lbtsVal);
00119    virtual RTI::FedTime const * lagLbts(
00120       DtLogicalTimeFactory* logicalTimeFactory) const;
00121 #endif
00122 
00124    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00125 
00126 public:
00127 
00129    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00130 
00132    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00133       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00134 
00136    static void addCallback(DtConnectionMgr *conn,
00137       DtNerLbtsMsgCb cb, void *usr);
00138    static void removeCallback(DtConnectionMgr *conn,
00139       DtNerLbtsMsgCb cb, void *usr);
00140 
00141 protected:
00142    
00144    DtRtiMsgKind internalDtRtiMsgKind();
00145 
00147    virtual DtNetNerLbts* netNerLbtsMsg();
00148    virtual const DtNetNerLbts* netNerLbtsMsg() const;
00149 
00151 #ifdef DtIFSPEC1516
00152    virtual int minSize(rti1516::LogicalTime const * lbtsVal=NULL,
00153       rti1516::LogicalTime const * lagLbtsVal=NULL) const;
00154 #elif defined(DtIFSPEC1516E)
00155    virtual int minSize(rti1516e::LogicalTime const * lbtsVal=NULL,
00156        rti1516e::LogicalTime const * lagLbtsVal=NULL) const;
00157 #else
00158    virtual int minSize(RTI::FedTime const * lbtsVal=NULL,
00159       RTI::FedTime const * lagLbtsVal=NULL) const;
00160 #endif
00161 
00163    virtual void setTimeSize(int size);
00164    virtual int timeSize() const;
00165 
00167    virtual char* timePtr();
00168 
00170    virtual void setLagLbtsSize(int size);
00171    virtual int lagLbtsSize() const;
00172 
00174    virtual char* lagLbtsPtr();
00175 
00177    virtual int timeFieldSize() const;
00178 
00180    virtual int lagLbtsFieldSize() const;
00181 
00183    virtual DtNerLbtsMsg* self() const;
00184 
00185 protected:
00187 #ifdef DtIFSPEC1516
00188    rti1516::LogicalTime* myLagLbts;
00189 #elif defined(DtIFSPEC1516E)
00190    rti1516e::LogicalTime* myLagLbts;
00191 #else
00192    RTI::FedTime* myLagLbts;
00193 #endif
00194 };
00195 
00196 inline DtNerLbtsMsg* DtNerLbtsMsg::self() const
00197 {
00198    return const_cast<DtNerLbtsMsg*>( this );
00199 }
00200 
00201 #endif
00202 #endif
00203 
00204 

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)