MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
msgRetractHandleImpl.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2003 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: msgRetractHandleImpl.h,v $ $Revision: 1.7 $ $State: Exp $
7 *********************************************************************/
8 
11 
12 #ifndef msgRetractHandleImplementation_H_
13 #define msgRetractHandleImplementation_H_
14 
15 #ifdef DtIFSPEC1516
16 
17 #include "rtiMsConfig.h"
18 #include <RTI/VariableLengthData.h>
19 #include <string>
20 #include <sstream>
21 #include "internalTypes.h"
22 
23 namespace rti1516
24 {
25 
26 class MessageRetractionHandleImplementation
27 {
28 public:
30  MessageRetractionHandleImplementation();
31  MessageRetractionHandleImplementation(
32  DtMessageRetractionHandle retractHandle);
33  MessageRetractionHandleImplementation(
34  unsigned long fedHandleValue,
35  unsigned long serialValue);
36  MessageRetractionHandleImplementation(
37  MessageRetractionHandleImplementation const & rhs);
38 
40  MessageRetractionHandleImplementation & operator=(
41  MessageRetractionHandleImplementation const & rhs);
42 
43  bool isValid() const;
44 
46  bool operator==(MessageRetractionHandleImplementation const & rhs) const;
47  bool operator!=(MessageRetractionHandleImplementation const & rhs) const;
48  bool operator< (MessageRetractionHandleImplementation const & rhs) const;
49 
52  rti1516::VariableLengthData encode() const;
54  unsigned long encode(void* buffer, unsigned long bufferSize) const;
55  unsigned long encodedLength() const;
56 
58  void decode(
59  rti1516::VariableLengthData const & encodedHandle);
60 
62  void decode(void* buffer, unsigned long bufferSize);
63 
65  std::wstring toString() const;
66 
68  void setValue(DtMessageRetractionHandle retractHandle);
69  DtMessageRetractionHandle const & value() const;
70 
72  void setFederateHandle(unsigned long fedHandleValue);
73  unsigned long federateHandle() const;
74 
76  void setSerialNumber(unsigned long serialValue);
77  unsigned long serialNumber() const;
78 
79 protected:
80  DtMessageRetractionHandle myRetractHandle;
81 };
82 
83 inline
84 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation()
85 {
87  myRetractHandle.sendingFederate = 0;
88  myRetractHandle.serialNumber = 0;
89 }
90 inline
91 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
92  unsigned long fedHandleValue,
93  unsigned long serialValue)
94 {
95  myRetractHandle.sendingFederate = fedHandleValue;
96  myRetractHandle.serialNumber = serialValue;
97 }
98 inline
99 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
100  DtMessageRetractionHandle retractHandle)
101 {
102  myRetractHandle.sendingFederate = retractHandle.sendingFederate;
103  myRetractHandle.serialNumber = retractHandle.serialNumber;
104 }
105 inline
106 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
107  MessageRetractionHandleImplementation const & rhs)
108 {
109  myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate;
110  myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber;
111 }
112 inline
113 MessageRetractionHandleImplementation &
114 MessageRetractionHandleImplementation::operator=(
115  MessageRetractionHandleImplementation const & rhs)
116 {
117  if (this == &rhs)
118  return *this;
119  myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate;
120  myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber;
121  return *this;
122 };
123 
124 inline bool MessageRetractionHandleImplementation::isValid() const
125 {
127  return myRetractHandle.sendingFederate != 0;
128 }
129 
130 inline bool MessageRetractionHandleImplementation::operator==(
131  MessageRetractionHandleImplementation const & rhs) const
132 {
133  return
134  myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate
135  && myRetractHandle.serialNumber == rhs.myRetractHandle.serialNumber;
136 };
137 inline bool MessageRetractionHandleImplementation::operator!=(
138  MessageRetractionHandleImplementation const & rhs) const
139 {
140  return
141  myRetractHandle.sendingFederate != rhs.myRetractHandle.sendingFederate
142  || myRetractHandle.serialNumber != rhs.myRetractHandle.serialNumber;
143 };
144 inline bool MessageRetractionHandleImplementation::operator< (
145  MessageRetractionHandleImplementation const & rhs) const
146 {
147  return
148  myRetractHandle.sendingFederate < rhs.myRetractHandle.sendingFederate
149  ||
150  (myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate
151  && myRetractHandle.serialNumber < rhs.myRetractHandle.serialNumber);
152 };
153 
155 MessageRetractionHandleImplementation::encode() const
156 {
158  netHandle.sendingFederate = myRetractHandle.sendingFederate;
159  netHandle.serialNumber = myRetractHandle.serialNumber;
160  return rti1516::VariableLengthData(&netHandle, sizeof(netHandle));
161 };
162 
163 inline unsigned long MessageRetractionHandleImplementation::encode(
164  void* buffer, unsigned long bufferSize) const
165 {
167  if (bufferSize < sizeof(netHandle))
168  return 0;
169  netHandle.sendingFederate = myRetractHandle.sendingFederate;
170  netHandle.serialNumber = myRetractHandle.serialNumber;
171  memcpy(buffer, &netHandle, sizeof(netHandle));
172  return sizeof(netHandle);
173 }
174 inline unsigned long MessageRetractionHandleImplementation::encodedLength() const
175 {
176  return sizeof(DtNetMessageRetractionHandle);
177 }
178 
179 inline std::wstring MessageRetractionHandleImplementation::toString() const
180 {
181  std::wstringstream ss;
182  ss << myRetractHandle.sendingFederate << L" " << myRetractHandle.serialNumber;
183  return ss.str();
184 };
185 
186 inline void MessageRetractionHandleImplementation::setValue(
187  DtMessageRetractionHandle retractHandle)
188 {
189  myRetractHandle.sendingFederate = retractHandle.sendingFederate;
190  myRetractHandle.serialNumber = retractHandle.serialNumber;
191 }
192 
193 inline DtMessageRetractionHandle const &
194 MessageRetractionHandleImplementation::value() const
195 {
196  return myRetractHandle;
197 }
198 
199 inline void MessageRetractionHandleImplementation::setFederateHandle(
200 unsigned long fedHandleValue)
201 {
202  myRetractHandle.sendingFederate = fedHandleValue;
203 }
204 inline unsigned long MessageRetractionHandleImplementation::federateHandle() const
205 {
206  return myRetractHandle.sendingFederate;
207 }
208 
209 inline void MessageRetractionHandleImplementation::setSerialNumber(unsigned long serialValue)
210 {
211  myRetractHandle.serialNumber = serialValue;
212 }
213 inline unsigned long MessageRetractionHandleImplementation::serialNumber() const
214 {
215  return myRetractHandle.serialNumber;
216 }
217 inline void MessageRetractionHandleImplementation::decode(
218  rti1516::VariableLengthData const & encodedHandle)
219 {
220  DtNetMessageRetractionHandle* netHandle =
221  (DtNetMessageRetractionHandle*) encodedHandle.data();
222  myRetractHandle.sendingFederate = netHandle->sendingFederate;
223  myRetractHandle.serialNumber = netHandle->serialNumber;
224 }
225 
226 inline void MessageRetractionHandleImplementation::decode(
227  void* buffer, unsigned long bufferSize)
228 {
229  DtNetMessageRetractionHandle* netHandle =
231  myRetractHandle.sendingFederate = netHandle->sendingFederate;
232  myRetractHandle.serialNumber = netHandle->serialNumber;
233 }
234 
235 };
236 
237 #endif // DtIFSPEC1516
238 
239 #endif
DtFederateHandle sendingFederate
Definition: internalTypes.h:66
std::string toString(const std::wstring &inString)
Definition: objParams13.h:16
DtHandle serialNumber
Definition: internalTypes.h:65
his file contains a class to hold an arbitrary array of bytes for encoded values, attribute values...
MAKRti::DtNetU32 sendingFederate
Definition: internalTypes.h:61
Definition: internalTypes.h:63
Definition: VariableLengthData.h:22
MAKRti::DtNetU32 serialNumber
Definition: internalTypes.h:60
The declaration of internal types.
Definition: internalTypes.h:58
void const * data() const

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)