MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
nerLbtsMsg.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: nerLbtsMsg.h,v $ $Revision: 1.9 $ $State: Exp $
8 *********************************************************************/
9 
12 
13 #ifndef DtNerLbtsMsg_H_
14 #define DtNerLbtsMsg_H_
15 
16 #ifdef DtTIME
17 
18 #include "rtiMsg.h"
19 #include "netNerLbtsMsg.h"
20 
21 class DtConnectionMgr;
22 class DtNerLbtsMsg;
23 typedef void (*DtNerLbtsMsgCb)(const DtNerLbtsMsg& msg, void* usr);
24 
25 class DT_DLL_LRC DtNerLbtsMsg : public DtRtiMsg
26 {
27 public:
28 
30  DtNerLbtsMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
31 
33  DtNerLbtsMsg(
34  unsigned long nerCycleVal,
35  DtFederateHandle handle,
36  bool nerPending,
37  bool lagNerPending,
38 #ifdef DtIFSPEC1516
39  rti1516::LogicalTime const & lbtsVal,
40  rti1516::LogicalTime const & lagLbtsVal,
41 #elif defined(DtIFSPEC1516E)
42  rti1516e::LogicalTime const & lbtsVal,
43  rti1516e::LogicalTime const & lagLbtsVal,
44 #else
45  RTI::FedTime const & lbtsVal,
46  RTI::FedTime const & lagLbtsVal,
47 #endif
48  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
49 
51  DtNerLbtsMsg(const DtNetNerLbts* netRepMsg,
52  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
53 
55  virtual ~DtNerLbtsMsg();
56 
58  virtual DtRtiMsg* clone(bool copy = true) const;
59 
61  virtual void set(
62  unsigned long nerCycleVal,
63  DtFederateHandle handle,
64  bool nerPending,
65  bool lagNerPending,
66 #ifdef DtIFSPEC1516
67  rti1516::LogicalTime const & lbtsVal,
68  rti1516::LogicalTime const & lagLbtsVal);
69 #elif defined(DtIFSPEC1516E)
70  rti1516e::LogicalTime const & lbtsVal,
71  rti1516e::LogicalTime const & lagLbtsVal);
72 #else
73  RTI::FedTime const & lbtsVal,
74  RTI::FedTime const & lagLbtsVal);
75 #endif
76 
78  virtual void setNerCycle(unsigned long nerCycleVal);
79  virtual unsigned long nerCycle() const;
80 
82  virtual void setLaggardFederate(DtFederateHandle handle);
83  virtual DtFederateHandle laggardFederate() const;
84 
86  virtual void setIsNerPending(bool nerAvailable);
87  virtual bool isNerPending() const;
88 
90  virtual void setIsLagNerPending(bool nerAvailable);
91  virtual bool isLagNerPending() const;
92 
94 #ifdef DtIFSPEC1516
95  virtual void setTime(rti1516::LogicalTime const & timeVal);
96  virtual rti1516::LogicalTime const * time(
97  DtLogicalTimeFactory* logicalTimeFactory) const;
98 #elif defined(DtIFSPEC1516E)
99  virtual void setTime(rti1516e::LogicalTime const & timeVal);
100  virtual rti1516e::LogicalTime const * time(
101  DtLogicalTimeFactory* logicalTimeFactory) const;
102 #else
103  virtual void setTime(RTI::FedTime const & timeVal);
104  virtual RTI::FedTime const * time(
105  DtLogicalTimeFactory* logicalTimeFactory) const;
106 #endif
107 
109 #ifdef DtIFSPEC1516
110  virtual void setLagLbts(rti1516::LogicalTime const & lbtsVal);
111  virtual rti1516::LogicalTime const * lagLbts(
112  DtLogicalTimeFactory* logicalTimeFactory) const;
113 #elif defined(DtIFSPEC1516E)
114  virtual void setLagLbts(rti1516e::LogicalTime const & lbtsVal);
115  virtual rti1516e::LogicalTime const * lagLbts(
116  DtLogicalTimeFactory* logicalTimeFactory) const;
117 #else
118  virtual void setLagLbts(RTI::FedTime const & lbtsVal);
119  virtual RTI::FedTime const * lagLbts(
120  DtLogicalTimeFactory* logicalTimeFactory) const;
121 #endif
122 
124  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
125 
126 public:
127 
129  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
130 
132  static DtRtiMsg* create(const DtNetMsgHeader* initial,
133  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
134 
136  static void addCallback(DtConnectionMgr *conn,
137  DtNerLbtsMsgCb cb, void *usr);
138  static void removeCallback(DtConnectionMgr *conn,
139  DtNerLbtsMsgCb cb, void *usr);
140 
141 protected:
142 
145 
147  virtual DtNetNerLbts* netNerLbtsMsg();
148  virtual const DtNetNerLbts* netNerLbtsMsg() const;
149 
151 #ifdef DtIFSPEC1516
152  virtual int minSize(rti1516::LogicalTime const * lbtsVal=NULL,
153  rti1516::LogicalTime const * lagLbtsVal=NULL) const;
154 #elif defined(DtIFSPEC1516E)
155  virtual int minSize(rti1516e::LogicalTime const * lbtsVal=NULL,
156  rti1516e::LogicalTime const * lagLbtsVal=NULL) const;
157 #else
158  virtual int minSize(RTI::FedTime const * lbtsVal=NULL,
159  RTI::FedTime const * lagLbtsVal=NULL) const;
160 #endif
161 
163  virtual void setTimeSize(int size);
164  virtual int timeSize() const;
165 
167  virtual char* timePtr();
168 
170  virtual void setLagLbtsSize(int size);
171  virtual int lagLbtsSize() const;
172 
174  virtual char* lagLbtsPtr();
175 
177  virtual int timeFieldSize() const;
178 
180  virtual int lagLbtsFieldSize() const;
181 
183  virtual DtNerLbtsMsg* self() const;
184 
185 protected:
187 #ifdef DtIFSPEC1516
188  rti1516::LogicalTime* myLagLbts;
189 #elif defined(DtIFSPEC1516E)
190  rti1516e::LogicalTime* myLagLbts;
191 #else
192  RTI::FedTime* myLagLbts;
193 #endif
194 };
195 
196 inline DtNerLbtsMsg* DtNerLbtsMsg::self() const
197 {
198  return const_cast<DtNerLbtsMsg*>( this );
199 }
200 
201 #endif
202 #endif
203 
204 

Document ID: Generated on Mon Jul 9 10:30:41 EDT 2018 from SVN revision 190224
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)