MAK RTIspy API Documentation for HLA 1516
lbtsMsg.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: lbtsMsg.h,v $ $Revision: 1.12 $ $State: Exp $
00008 *********************************************************************/
00009 
00012 
00013 #ifndef DtLbtsMsg_H_
00014 #define DtLbtsMsg_H_
00015 
00016 #ifdef DtTIME
00017 
00018 #include "rtiMsg.h"
00019 #include "netlbtsMsg.h"
00020 
00021 class DtConnectionMgr;
00022 class DtLbtsMsg;
00023 typedef void (*DtLbtsMsgCb)(const DtLbtsMsg& msg, void* usr);
00024 
00025 class DT_DLL_LRC DtLbtsMsg : public DtRtiMsg
00026 {
00027 public:
00028 
00030    DtLbtsMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00031 
00033    DtLbtsMsg(
00034       DtFederateHandle handle,
00035 #ifdef DtIFSPEC1516
00036       rti1516::LogicalTime const & lbtsVal,
00037       rti1516::LogicalTime const & lagLbtsVal,
00038 #elif defined(DtIFSPEC1516E)
00039       rti1516e::LogicalTime const & lbtsVal,
00040       rti1516e::LogicalTime const & lagLbtsVal,
00041 #else
00042       RTI::FedTime const & lbtsVal,
00043       RTI::FedTime const & lagLbtsVal,
00044 #endif
00045       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00046 
00048    DtLbtsMsg(const DtNetLbts* netRepMsg,
00049       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00050 
00052    virtual ~DtLbtsMsg();
00053 
00055    virtual DtRtiMsg* clone(bool copy = true) const; 
00056 
00058    virtual void set(
00059       DtFederateHandle handle,
00060 #ifdef DtIFSPEC1516
00061       rti1516::LogicalTime const & lbtsVal,
00062       rti1516::LogicalTime const & lagLbtsVal);
00063 #elif defined(DtIFSPEC1516E)
00064       rti1516e::LogicalTime const & lbtsVal,
00065       rti1516e::LogicalTime const & lagLbtsVal);
00066 #else
00067       RTI::FedTime const & lbtsVal,
00068       RTI::FedTime const & lagLbtsVal);
00069 #endif
00070    
00072    virtual void setLaggardFederate(DtFederateHandle handle);
00073    virtual DtFederateHandle laggardFederate() const;
00074 
00076 #ifdef DtIFSPEC1516
00077    virtual void setTime(rti1516::LogicalTime const & timeVal);
00078    virtual rti1516::LogicalTime const * time(
00079       DtLogicalTimeFactory* logicalTimeFactory) const;
00080 #elif defined(DtIFSPEC1516E)
00081    virtual void setTime(rti1516e::LogicalTime const & timeVal);
00082    virtual rti1516e::LogicalTime const * time(
00083        DtLogicalTimeFactory* logicalTimeFactory) const;
00084 #else
00085    virtual void setTime(RTI::FedTime const & timeVal);
00086    virtual RTI::FedTime const * time(
00087       DtLogicalTimeFactory* logicalTimeFactory) const;
00088 #endif
00089 
00091 #ifdef DtIFSPEC1516
00092    virtual void setLagLbts(rti1516::LogicalTime const & lbtsVal);
00093    virtual rti1516::LogicalTime const * lagLbts(
00094       DtLogicalTimeFactory* logicalTimeFactory) const;
00095 #elif defined(DtIFSPEC1516E)
00096    virtual void setLagLbts(rti1516e::LogicalTime const & lbtsVal);
00097    virtual rti1516e::LogicalTime const * lagLbts(
00098        DtLogicalTimeFactory* logicalTimeFactory) const;
00099 #else
00100    virtual void setLagLbts(RTI::FedTime const & lbtsVal);
00101    virtual RTI::FedTime const * lagLbts(
00102       DtLogicalTimeFactory* logicalTimeFactory) const;
00103 #endif
00104 
00106    virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
00107 
00108 public:
00109 
00111    static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00112 
00114    static DtRtiMsg* create(const DtNetMsgHeader* initial,
00115       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00116 
00118    static void addCallback(DtConnectionMgr *conn,
00119       DtLbtsMsgCb cb, void *usr);
00120    static void removeCallback(DtConnectionMgr *conn,
00121       DtLbtsMsgCb cb, void *usr);
00122 
00123 protected:
00124    
00126    DtRtiMsgKind internalDtRtiMsgKind();
00127 
00129    virtual DtNetLbts* netLbtsMsg();
00130    virtual const DtNetLbts* netLbtsMsg() const;
00131 
00133 #ifdef DtIFSPEC1516
00134    virtual int minSize(rti1516::LogicalTime const * lbtsVal=NULL,
00135       rti1516::LogicalTime const * lagLbtsVal=NULL) const;
00136 #elif defined(DtIFSPEC1516E)
00137    virtual int minSize(rti1516e::LogicalTime const * lbtsVal=NULL,
00138        rti1516e::LogicalTime const * lagLbtsVal=NULL) const;
00139 #else
00140    virtual int minSize(RTI::FedTime const * lbtsVal=NULL,
00141       RTI::FedTime const * lagLbtsVal=NULL) const;
00142 #endif
00143 
00145    virtual void setTimeSize(int size);
00146    virtual int timeSize() const;
00147 
00149    virtual char* timePtr();
00150 
00152    virtual void setLagLbtsSize(int size);
00153    virtual int lagLbtsSize() const;
00154 
00156    virtual char* lagLbtsPtr();
00157 
00159    virtual int timeFieldSize() const;
00160 
00162    virtual int lagLbtsFieldSize() const;
00163 
00165    virtual DtLbtsMsg* self() const;
00166 
00167 protected:
00169 #ifdef DtIFSPEC1516
00170    rti1516::LogicalTime* myLagLbts;
00171 #elif defined(DtIFSPEC1516E)
00172    rti1516e::LogicalTime* myLagLbts;
00173 #else
00174    RTI::FedTime* myLagLbts;
00175 #endif
00176 };
00177 
00178 inline DtLbtsMsg* DtLbtsMsg::self() const
00179 {
00180    return const_cast<DtLbtsMsg*>( this );
00181 }
00182 
00183 #endif
00184 #endif
00185 
00186 

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)