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(
34  DtFederateHandle handle,
35 #ifdef DtIFSPEC1516
36  rti1516::LogicalTime const & lbtsVal,
37  rti1516::LogicalTime const & lagLbtsVal,
38 #elif defined(DtIFSPEC1516E)
39  rti1516e::LogicalTime const & lbtsVal,
40  rti1516e::LogicalTime const & lagLbtsVal,
41 #else
42  RTI::FedTime const & lbtsVal,
43  RTI::FedTime const & lagLbtsVal,
44 #endif
45  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
46 
48  DtLbtsMsg(const DtNetLbts* netRepMsg,
49  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
50 
52  virtual ~DtLbtsMsg();
53 
55  virtual DtRtiMsg* clone(bool copy = true) const;
56 
58  virtual void set(
59  DtFederateHandle handle,
60 #ifdef DtIFSPEC1516
61  rti1516::LogicalTime const & lbtsVal,
62  rti1516::LogicalTime const & lagLbtsVal);
63 #elif defined(DtIFSPEC1516E)
64  rti1516e::LogicalTime const & lbtsVal,
65  rti1516e::LogicalTime const & lagLbtsVal);
66 #else
67  RTI::FedTime const & lbtsVal,
68  RTI::FedTime const & lagLbtsVal);
69 #endif
70 
72  virtual void setLaggardFederate(DtFederateHandle handle);
73  virtual DtFederateHandle laggardFederate() const;
74 
76 #ifdef DtIFSPEC1516
77  virtual void setTime(rti1516::LogicalTime const & timeVal);
78  virtual rti1516::LogicalTime const * time(
79  DtLogicalTimeFactory* logicalTimeFactory) const;
80 #elif defined(DtIFSPEC1516E)
81  virtual void setTime(rti1516e::LogicalTime const & timeVal);
82  virtual rti1516e::LogicalTime const * time(
83  DtLogicalTimeFactory* logicalTimeFactory) const;
84 #else
85  virtual void setTime(RTI::FedTime const & timeVal);
86  virtual RTI::FedTime const * time(
87  DtLogicalTimeFactory* logicalTimeFactory) const;
88 #endif
89 
91 #ifdef DtIFSPEC1516
92  virtual void setLagLbts(rti1516::LogicalTime const & lbtsVal);
93  virtual rti1516::LogicalTime const * lagLbts(
94  DtLogicalTimeFactory* logicalTimeFactory) const;
95 #elif defined(DtIFSPEC1516E)
96  virtual void setLagLbts(rti1516e::LogicalTime const & lbtsVal);
97  virtual rti1516e::LogicalTime const * lagLbts(
98  DtLogicalTimeFactory* logicalTimeFactory) const;
99 #else
100  virtual void setLagLbts(RTI::FedTime const & lbtsVal);
101  virtual RTI::FedTime const * lagLbts(
102  DtLogicalTimeFactory* logicalTimeFactory) const;
103 #endif
104 
106  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
107 
108 public:
109 
111  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
112 
114  static DtRtiMsg* create(const DtNetMsgHeader* initial,
115  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
116 
118  static void addCallback(DtConnectionMgr *conn,
119  DtLbtsMsgCb cb, void *usr);
120  static void removeCallback(DtConnectionMgr *conn,
121  DtLbtsMsgCb cb, void *usr);
122 
123 protected:
124 
127 
129  virtual DtNetLbts* netLbtsMsg();
130  virtual const DtNetLbts* netLbtsMsg() const;
131 
133 #ifdef DtIFSPEC1516
134  virtual int minSize(rti1516::LogicalTime const * lbtsVal=NULL,
135  rti1516::LogicalTime const * lagLbtsVal=NULL) const;
136 #elif defined(DtIFSPEC1516E)
137  virtual int minSize(rti1516e::LogicalTime const * lbtsVal=NULL,
138  rti1516e::LogicalTime const * lagLbtsVal=NULL) const;
139 #else
140  virtual int minSize(RTI::FedTime const * lbtsVal=NULL,
141  RTI::FedTime const * lagLbtsVal=NULL) const;
142 #endif
143 
145  virtual void setTimeSize(int size);
146  virtual int timeSize() const;
147 
149  virtual char* timePtr();
150 
152  virtual void setLagLbtsSize(int size);
153  virtual int lagLbtsSize() const;
154 
156  virtual char* lagLbtsPtr();
157 
159  virtual int timeFieldSize() const;
160 
162  virtual int lagLbtsFieldSize() const;
163 
165  virtual DtLbtsMsg* self() const;
166 
167 protected:
169 #ifdef DtIFSPEC1516
170  rti1516::LogicalTime* myLagLbts;
171 #elif defined(DtIFSPEC1516E)
172  rti1516e::LogicalTime* myLagLbts;
173 #else
174  RTI::FedTime* myLagLbts;
175 #endif
176 };
177 
178 inline DtLbtsMsg* DtLbtsMsg::self() const
179 {
180  return const_cast<DtLbtsMsg*>( this );
181 }
182 
183 #endif
184 #endif
185 
186 

Document ID: Generated on Fri Sep 27 00:57:56 EDT 2019 from SVN revision 201708
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)