MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lbtsMsg.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3 ** Copyright (c) 1998 MaK Technologies, Inc.
4 ** All rights reserved.
5 *********************************************************************/
6 /*********************************************************************
7 ** $RCSfile: lbtsMsg.h,v $ $Revision: 1.12 $ $State: Exp $
8 *********************************************************************/
9 
12 
13 #ifndef DtLbtsMsg_H_
14 #define DtLbtsMsg_H_
15 
16 #ifdef DtTIME
17 
18 #include "rtiMsg.h"
19 #include "netlbtsMsg.h"
20 
21 class DtConnectionMgr;
22 class DtLbtsMsg;
23 typedef void (*DtLbtsMsgCb)(const DtLbtsMsg& msg, void* usr);
24 
25 class DT_DLL_LRC DtLbtsMsg : public DtRtiMsg
26 {
27 public:
28 
30  DtLbtsMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
31 
33  DtLbtsMsg(DtFederateHandle handle, DtRtiApiTime const & lbtsVal, DtRtiApiTime const & lagLbtsVal, DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
34 
36  DtLbtsMsg(const DtNetLbts* netRepMsg,
37  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
38 
40  virtual ~DtLbtsMsg();
41 
43  virtual DtRtiMsg* clone(bool copy = true) const;
44 
46  virtual void set(DtFederateHandle handle, DtRtiApiTime const & lbtsVal, DtRtiApiTime const & lagLbtsVal, bool adjustBufferSize = true);
47 
49  virtual void setLaggardFederate(DtFederateHandle handle);
50  virtual DtFederateHandle laggardFederate() const;
51 
53  virtual void setTime(DtRtiApiTime const & timeVal, bool adjustBufferSize = true);
54  virtual DtRtiApiTime const * time(DtLogicalTimeFactory* logicalTimeFactory) const;
55 
57  virtual void setLagLbts(DtRtiApiTime const & lbtsVal, bool adjustBufferSize = true);
58  virtual DtRtiApiTime const * lagLbts(DtLogicalTimeFactory* logicalTimeFactory) const;
59 
61  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
62 
63 public:
64 
66  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
67 
69  static DtRtiMsg* create(const DtNetMsgHeader* initial,
70  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
71 
73  static void addCallback(DtConnectionMgr *conn,
74  DtLbtsMsgCb cb, void *usr);
75  static void removeCallback(DtConnectionMgr *conn,
76  DtLbtsMsgCb cb, void *usr);
77 
78 protected:
79 
82 
84  virtual DtNetLbts* netLbtsMsg();
85  virtual const DtNetLbts* netLbtsMsg() const;
86 
88  virtual int minSize(DtRtiApiTime const * lbtsVal=NULL, DtRtiApiTime const * lagLbtsVal=NULL) const;
89 
91  virtual void setTimeSize(int size);
92  virtual int timeSize() const;
93 
95  virtual char* timePtr();
96 
98  virtual void setLagLbtsSize(int size);
99  virtual int lagLbtsSize() const;
100 
102  virtual char* lagLbtsPtr();
103 
105  virtual DtLbtsMsg* self() const;
106 
107 protected:
109  DtRtiApiTime* myLagLbts;
110 };
111 
112 inline DtLbtsMsg* DtLbtsMsg::self() const
113 {
114  return const_cast<DtLbtsMsg*>( this );
115 }
116 
117 #endif
118 #endif
119 
120 
DtRtiMsgKind
Definition: rtiMsgKind.h:9
Definition: netRtiMsgHdr.h:23
virtual void setTime(const DtRtiApiTime &time)
Set/Get time Used in timestamped messages.
Definition: fedTimeFactory.h:73
virtual void printData(DtLogicalTimeFactory *logicalTimeFactory) const
virtual DtRtiApiTime const * time(DtLogicalTimeFactory *fedTimeFactory) const
RTI_API::LogicalTime DtRtiApiTime
Typedefs for RTI API types that frequently require conditional precompile directives.
Definition: rtiApiTypes.h:91
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:34
DtHandle DtFederateHandle
Definition: internalTypes.h:46
virtual DtRtiMsg * clone(bool copy=true) const =0
Return a copy/empty object of the same type as this.
virtual DtRtiMsgKind internalDtRtiMsgKind()=0
#define DT_DLL_LRC
Definition: rtiMsConfig.h:155

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)