MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
conEnabledMsg.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: conEnabledMsg.h,v $ $Revision: 1.9 $ $State: Exp $
8 *********************************************************************/
9 
12 
13 #ifndef DtConstrainedEnabledMsg_H_
14 #define DtConstrainedEnabledMsg_H_
15 
16 #ifdef DtTIME
17 
18 #include "rtiMsConfig.h"
19 #include "rtiMsg.h"
20 #include "netConEnblMsg.h"
21 
22 class DtConnectionMgr;
23 class DtConstrainedEnabledMsg;
24 typedef void (*DtConstrainedEnabledMsgCb)(const DtConstrainedEnabledMsg& msg, void* usr);
25 
26 class DT_DLL_LRC DtConstrainedEnabledMsg : public DtRtiMsg
27 {
28 public:
29 
31  DtConstrainedEnabledMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
32 
34  DtConstrainedEnabledMsg(
35  DtFederateHandle handle,
36 #ifdef DtIFSPEC1516
37  rti1516::LogicalTime const & theTime,
38  rti1516::LogicalTime const & theLbts,
39 #elif defined(DtIFSPEC1516E)
40  rti1516e::LogicalTime const & theTime,
41  rti1516e::LogicalTime const & theLbts,
42 #else
43  RTI::FedTime const & theTime,
44  RTI::FedTime const & theLbts,
45 #endif
46  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
47 
49  DtConstrainedEnabledMsg(const DtNetConstrainedEnabled* netRepMsg,
50  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
51 
53  virtual ~DtConstrainedEnabledMsg();
54 
56  virtual DtRtiMsg* clone(bool copy = true) const;
57 
59  virtual void set(
60  DtFederateHandle handle,
61 #ifdef DtIFSPEC1516
62  rti1516::LogicalTime const & theTime,
63  rti1516::LogicalTime const & theLbts);
64 #elif defined(DtIFSPEC1516E)
65  rti1516e::LogicalTime const & theTime,
66  rti1516e::LogicalTime const & theLbts);
67 #else
68  RTI::FedTime const & theTime,
69  RTI::FedTime const & theLbts);
70 #endif
71 
73  virtual void setRequestingFederate(DtFederateHandle handle);
74  virtual DtFederateHandle requestingFederate() const;
75 
77 #ifdef DtIFSPEC1516
78  virtual void setTime(rti1516::LogicalTime const & timeVal);
79  virtual rti1516::LogicalTime const * time(
80  DtLogicalTimeFactory* logicalTimeFactory) const;
81 #elif defined(DtIFSPEC1516E)
82  virtual void setTime(rti1516e::LogicalTime const & timeVal);
83  virtual rti1516e::LogicalTime const * time(
84  DtLogicalTimeFactory* logicalTimeFactory) const;
85 #else
86  virtual void setTime(RTI::FedTime const & timeVal);
87  virtual RTI::FedTime const * time(
88  DtLogicalTimeFactory* logicalTimeFactory) const;
89 #endif
90 
92 #ifdef DtIFSPEC1516
93  virtual void setLbts(rti1516::LogicalTime const & lbtsVal);
94  virtual rti1516::LogicalTime const * lbts(
95  DtLogicalTimeFactory* logicalTimeFactory) const;
96 #elif defined(DtIFSPEC1516E)
97  virtual void setLbts(rti1516e::LogicalTime const & lbtsVal);
98  virtual rti1516e::LogicalTime const * lbts(
99  DtLogicalTimeFactory* logicalTimeFactory) const;
100 #else
101  virtual void setLbts(RTI::FedTime const & lbtsVal);
102  virtual RTI::FedTime const * lbts(
103  DtLogicalTimeFactory* logicalTimeFactory) const;
104 #endif
105 
107  virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const;
108 
109 public:
110 
112  static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
113 
115  static DtRtiMsg* create(const DtNetMsgHeader* initial,
116  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
117 
119  static void addCallback(DtConnectionMgr *conn,
120  DtConstrainedEnabledMsgCb cb, void *usr);
121  static void removeCallback(DtConnectionMgr *conn,
122  DtConstrainedEnabledMsgCb cb, void *usr);
123 
124 protected:
125 
128 
130  virtual DtNetConstrainedEnabled* netConstrainedEnabledMsg();
131  virtual const DtNetConstrainedEnabled* netConstrainedEnabledMsg() const;
132 
134 #ifdef DtIFSPEC1516
135  virtual int minSize(rti1516::LogicalTime const * theTime=NULL,
136  rti1516::LogicalTime const * theLbts=NULL) const;
137 #elif defined(DtIFSPEC1516E)
138  virtual int minSize(rti1516e::LogicalTime const * theTime=NULL,
139  rti1516e::LogicalTime const * theLbts=NULL) const;
140 #else
141  virtual int minSize(RTI::FedTime const * theTime=NULL,
142  RTI::FedTime const * theLbts=NULL) const;
143 #endif
144 
146  virtual void setTimeSize(int size);
147  virtual int timeSize() const;
148 
150  virtual char* timePtr();
151 
153  virtual void setLbtsSize(int size);
154  virtual int lbtsSize() const;
155 
157  virtual char* lbtsPtr();
158 
160  virtual int timeFieldSize() const;
161 
163  virtual int lbtsFieldSize() const;
164 
166  virtual DtConstrainedEnabledMsg* self() const;
167 
168 protected:
170 #ifdef DtIFSPEC1516
171  rti1516::LogicalTime* myLbts;
172 #elif defined(DtIFSPEC1516E)
173  rti1516e::LogicalTime* myLbts;
174 #else
175  RTI::FedTime* myLbts;
176 #endif
177 };
178 
179 inline DtConstrainedEnabledMsg* DtConstrainedEnabledMsg::self() const
180 {
181  return const_cast<DtConstrainedEnabledMsg*>( this );
182 }
183 
184 #endif
185 #endif
186 
DtRtiMsgKind
Definition: rtiMsgKind.h:9
Definition: netRtiMsgHdr.h:23
!DtIFSPEC1516
Definition: fedTimeFactory.h:190
virtual void printData(DtLogicalTimeFactory *logicalTimeFactory) const
#define NULL
Definition: baseTypes13.h:8
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:60
DtRtiMsg is the base class for messages between RTI components.
Definition: rtiMsg.h:45
DtHandle DtFederateHandle
Definition: internalTypes.h:29
virtual RTI::FedTime const * time(DtLogicalTimeFactory *fedTimeFactory) const
virtual DtRtiMsg * clone(bool copy=true) const =0
Return a copy/empty object of the same type as this.
virtual DtRtiMsgKind internalDtRtiMsgKind()=0
virtual void setTime(const RTI::FedTime &time)
Set/Get time Used in timestamped messages.
#define DT_DLL_LRC
Definition: rtiMsConfig.h:126

Document ID: Generated on Thu May 11 15:55:32 EDT 2023 from SVN revision 254743
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)