VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pMessage.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <portal/dllExport.h>
13 #include <portal/pMessageKinds.h>
15 #include <portal/aggregateTypes.h>
16 #include <portal/amountRecord.h>
19 #include <portal/emitterBeamData.h>
20 #include <portal/ewAttackRecord.h>
22 #include <portal/fixedLengthData.h>
32 #include <portal/shaftRateData.h>
36 #include <portal/typedRateRecord.h>
38 
40 #include <vlpi/syntheticEnvironmentObjectType.h>
41 #include <vlpi/articulatedPartCollection.h>
42 #include <vlpi/attachedPartCollection.h>
43 #include <vlpi/entityIdentifier.h>
44 #include <vlpi/entityType.h>
45 #include <vlpi/patchIdentifier.h>
46 
47 #include <matrix/vlTaitBryan.h>
48 #include <matrix/vlVector.h>
49 
50 #include <vlutil/vlNetTypes.h>
51 #include <vlutil/vlString.h>
52 #include <vlutil/vlTime.h>
53 #include <vlutil/vlUuid.h>
54 
55 #include <iosfwd>
56 #include <vector>
57 #include <map>
58 
59 namespace MAKVrExchange
60 {
61 
68  {
69  public:
70 
73 
75  DtPortalMessage( const DtPortalMessage& other );
76 
78  virtual ~DtPortalMessage();
79 
81  virtual DtPortalMessage& operator = ( const DtPortalMessage& other );
82 
85 
86  virtual bool operator == ( const DtPortalMessage& other ) const;
87  virtual bool operator != ( const DtPortalMessage& other ) const;
88 
90 
93 
96  DtDEC_ATTRIBUTE( DtPortalMessageKind, Kind, kind );
97 
99 
101  public:
102 
105 
108  virtual void setSerialNumber( unsigned int i ) const;
109 
116  virtual unsigned int serialNumber() const;
117 
120  virtual void setSendingBrokerId( const DtU32& id ) const;
121 
125  virtual DtU32 sendingBrokerId() const;
126 
129  virtual void setTimeSent( const DtTime& tm ) const;
130 
134  virtual DtTime timeSent() const;
135 
138  virtual void setTimeReceived( const DtTime& tm ) const;
139 
144  virtual DtTime timeReceived() const;
145 
147 
148  public:
149 
153  virtual unsigned int netSize() const;
154 
158  virtual void writeSelfToBuffer( void* buffer, int bufferSize ) const;
159 
163  virtual void readSelfFromBuffer( const void* buffer, int bufferSize );
164 
167  virtual std::ostream& printDataToStream( std::ostream& str ) const;
168 
169  protected:
170 
173 
174  virtual int getSize( const DtU8& v ) const;
175  virtual char* encode( const DtU8& val, char* buffer, int& bufferSize ) const;
176  virtual const char* decode( DtU8& val, const char* buffer, int& bufferSize ) const;
177 
178  virtual int getSize( const DtU16& v ) const;
179  virtual char* encode( const DtU16& val, char* buffer, int& bufferSize ) const;
180  virtual const char* decode( DtU16& val, const char* buffer, int& bufferSize ) const;
181 
182  virtual int getSize( const DtU32& v ) const;
183  virtual char* encode( const DtU32& val, char* buffer, int& bufferSize ) const;
184  virtual const char* decode( DtU32& val, const char* buffer, int& bufferSize ) const;
185 
186  virtual int getSize( const DtU64& v ) const;
187  virtual char* encode( const DtU64& val, char* buffer, int& bufferSize ) const;
188  virtual const char* decode( DtU64& val, const char* buffer, int& bufferSize ) const;
189 
190  virtual int getSize( const DtInt8& v ) const;
191  virtual char* encode( const DtInt8& val, char* buffer, int& bufferSize ) const;
192  virtual const char* decode( DtInt8& val, const char* buffer, int& bufferSize ) const;
193 
194  virtual int getSize( const DtInt16& v ) const;
195  virtual char* encode( const DtInt16& val, char* buffer, int& bufferSize ) const;
196  virtual const char* decode( DtInt16& val, const char* buffer, int& bufferSize ) const;
197 
198  virtual int getSize( const DtInt32& v ) const;
199  virtual char* encode( const DtInt32& val, char* buffer, int& bufferSize ) const;
200  virtual const char* decode( DtInt32& val, const char* buffer, int& bufferSize ) const;
201 
202  virtual int getSize( const DtInt64& v ) const;
203  virtual char* encode( const DtInt64& val, char* buffer, int& bufferSize ) const;
204  virtual const char* decode( DtInt64& val, const char* buffer, int& bufferSize ) const;
205 
206  virtual int getSize( const DtFloat32& v ) const;
207  virtual char* encode( const DtFloat32& val, char* buffer, int& bufferSize ) const;
208  virtual const char* decode( DtFloat32& val, const char* buffer, int& bufferSize ) const;
209 
210  virtual int getSize( const DtFloat64& v ) const;
211  virtual char* encode( const DtFloat64& val, char* buffer, int& bufferSize ) const;
212  virtual const char* decode( DtFloat64& val, const char* buffer, int& bufferSize ) const;
213 
214  virtual int getSize( const DtVector32& v ) const;
215  virtual char* encode( const DtVector32& val, char* buffer, int& bufferSize ) const;
216  virtual const char* decode( DtVector32& val, const char* buffer, int& bufferSize ) const;
217 
218  virtual int getSize( const DtVector64& v ) const;
219  virtual char* encode( const DtVector64& val, char* buffer, int& bufferSize ) const;
220  virtual const char* decode( DtVector64& val, const char* buffer, int& bufferSize ) const;
221 
222  virtual int getSize( const DtTaitBryan& v ) const;
223  virtual char* encode( const DtTaitBryan& val, char* buffer, int& bufferSize ) const;
224  virtual const char* decode( DtTaitBryan& val, const char* buffer, int& bufferSize ) const;
225 
226  virtual int getSize( const DtString& val ) const;
227  virtual char* encode( const DtString& val, char* buffer, int& bufferSize ) const;
228  virtual const char* decode( DtString& val, const char* buffer, int& bufferSize ) const;
229 
230  virtual int getSize( const std::wstring& val ) const;
231  virtual char* encode( const std::wstring& val, char* buffer, int& bufferSize ) const;
232  virtual const char* decode( std::wstring& val, const char* buffer, int& bufferSize ) const;
233 
234  virtual int getSize(const DtVrlUuid& val) const;
235  virtual char* encode(const DtVrlUuid& val, char* buffer, int& bufferSize) const;
236  virtual const char* decode(DtVrlUuid& val, const char* buffer, int& bufferSize) const;
237 
238  virtual int getSize( const bool& v ) const;
239  virtual char* encode( const bool& val, char* buffer, int& bufferSize ) const;
240  virtual const char* decode( bool& val, const char* buffer, int& bufferSize ) const;
241 
243 
246 
247  virtual int getSize( const DtSilentEntity& v ) const;
248  virtual char* encode( const DtSilentEntity& val, char* buffer, int& bufferSize ) const;
249  virtual const char* decode( DtSilentEntity& val, const char* buffer, int& bufferSize ) const;
250 
251  virtual int getSize( const DtSilentAggregate& v ) const;
252  virtual char* encode( const DtSilentAggregate& val, char* buffer, int& bufferSize ) const;
253  virtual const char* decode( DtSilentAggregate& val, const char* buffer, int& bufferSize ) const;
254 
255  virtual int getSize( const DtVariableLengthData& v ) const;
256  virtual char* encode( const DtVariableLengthData& val, char* buffer, int& bufferSize ) const;
257  virtual const char* decode( DtVariableLengthData& val, const char* buffer, int& bufferSize ) const;
258 
259  virtual int getSize( const DtFixedLengthData& value ) const;
260  virtual char* encode( const DtFixedLengthData& value, char* buffer, int& bufferSize ) const;
261  virtual const char* decode( DtFixedLengthData& value, const char* buffer, int& bufferSize ) const;
262 
263  virtual int getSize( const DtAggregateVariableDatum& v ) const;
264  virtual char* encode( const DtAggregateVariableDatum& val, char* buffer, int& bufferSize ) const;
265  virtual const char* decode( DtAggregateVariableDatum& val, const char* buffer, int& bufferSize ) const;
266 
267  virtual int getSize( const DtEmitterBeamData& data ) const;
268  virtual char* encode( const DtEmitterBeamData& data, char* buffer, int& bufferSize ) const;
269  virtual const char* decode( DtEmitterBeamData& data, const char* buffer, int& bufferSize ) const;
270 
271  virtual int getSize( const DtLinearSegmentData& data ) const;
272  virtual char* encode( const DtLinearSegmentData& data, char* buffer, int& bufferSize ) const;
273  virtual const char* decode( DtLinearSegmentData& data, const char* buffer, int& bufferSize ) const;
274 
275  virtual int getSize( const DtActiveSonarBeamData& data ) const;
276  virtual char* encode( const DtActiveSonarBeamData& data, char* buffer, int& bufferSize ) const;
277  virtual const char* decode( DtActiveSonarBeamData& data, const char* buffer, int& bufferSize ) const;
278 
279  virtual int getSize( const DtEntityIdentifier& value ) const;
280  virtual char* encode( const DtEntityIdentifier& value, char* buffer, int& bufferSize ) const;
281  virtual const char* decode( DtEntityIdentifier& value, const char* buffer, int& bufferSize ) const;
282 
283  virtual int getSize( const DtEntityType& value ) const;
284  virtual char* encode( const DtEntityType& value, char* buffer, int& bufferSize ) const;
285  virtual const char* decode( DtEntityType& value, const char* buffer, int& bufferSize ) const;
286 
287  virtual int getSize( const DtSyntheticEnvironmentObjectType& value ) const;
288  virtual char* encode( const DtSyntheticEnvironmentObjectType& value, char* buffer, int& bufferSize ) const;
289  virtual const char* decode( DtSyntheticEnvironmentObjectType& value, const char* buffer, int& bufferSize ) const;
290 
291  virtual int getSize( const DtArticulatedPartCollection& value ) const;
292  virtual char* encode( const DtArticulatedPartCollection& value, char* buffer, int& bufferSize ) const;
293  virtual const char* decode( DtArticulatedPartCollection& value, const char* buffer, int& bufferSize ) const;
294 
295  virtual int getSize( const DtAttachedPartCollection& value ) const;
296  virtual char* encode( const DtAttachedPartCollection& value, char* buffer, int& bufferSize ) const;
297  virtual const char* decode( DtAttachedPartCollection& value, const char* buffer, int& bufferSize ) const;
298 
299  virtual int getSize( const DtIffAtcNavaidsAltParm4& value ) const;
300  virtual char* encode( const DtIffAtcNavaidsAltParm4& value, char* buffer, int& bufferSize ) const;
301  virtual const char* decode( DtIffAtcNavaidsAltParm4& value, const char* buffer, int& bufferSize ) const;
302 
303  virtual int getSize( const DtSimulationAddress& value ) const;
304  virtual char* encode( const DtSimulationAddress& value, char* buffer, int& bufferSize ) const;
305  virtual const char* decode( DtSimulationAddress& value, const char* buffer, int& bufferSize ) const;
306 
307  virtual int getSize( const DtShaftRateData& value ) const;
308  virtual char* encode( const DtShaftRateData& value, char* buffer, int& bufferSize ) const;
309  virtual const char* decode( DtShaftRateData& value, const char* buffer, int& bufferSize ) const;
310 
311  virtual int getSize( const DtRingSectorsRecord& value ) const;
312  virtual char* encode( const DtRingSectorsRecord& value, char* buffer, int& bufferSize ) const;
313  virtual const char* decode( DtRingSectorsRecord& value, const char* buffer, int& bufferSize ) const;
314 
315  virtual int getSize( const DtPostureTransitionRecord& value ) const;
316  virtual char* encode( const DtPostureTransitionRecord& value, char* buffer, int& bufferSize ) const;
317  virtual const char* decode( DtPostureTransitionRecord& value, const char* buffer, int& bufferSize ) const;
318 
319  virtual int getSize( const DtMoppLevelTransitionRecord& value ) const;
320  virtual char* encode( const DtMoppLevelTransitionRecord& value, char* buffer, int& bufferSize ) const;
321  virtual const char* decode( DtMoppLevelTransitionRecord& value, const char* buffer, int& bufferSize ) const;
322 
323  virtual int getSize( const DtIndirectFirePowerRecord& value ) const;
324  virtual char* encode( const DtIndirectFirePowerRecord& value, char* buffer, int& bufferSize ) const;
325  virtual const char* decode( DtIndirectFirePowerRecord& value, const char* buffer, int& bufferSize ) const;
326 
327  virtual int getSize( const DtRangedPowerRecord& value ) const;
328  virtual char* encode( const DtRangedPowerRecord& value, char* buffer, int& bufferSize ) const;
329  virtual const char* decode( DtRangedPowerRecord& value, const char* buffer, int& bufferSize ) const;
330 
331  virtual int getSize( const DtEffectModifierRecord& value ) const;
332  virtual char* encode( const DtEffectModifierRecord& value, char* buffer, int& bufferSize ) const;
333  virtual const char* decode( DtEffectModifierRecord& value, const char* buffer, int& bufferSize ) const;
334 
335  virtual int getSize( const DtTypedQuantityRecord& value ) const;
336  virtual char* encode( const DtTypedQuantityRecord& value, char* buffer, int& bufferSize ) const;
337  virtual const char* decode( DtTypedQuantityRecord& value, const char* buffer, int& bufferSize ) const;
338 
339  virtual int getSize( const DtCasualtyReportRecord& value ) const;
340  virtual char* encode( const DtCasualtyReportRecord& value, char* buffer, int& bufferSize ) const;
341  virtual const char* decode( DtCasualtyReportRecord& value, const char* buffer, int& bufferSize ) const;
342 
343  virtual int getSize( const DtTypedAmountRecord& value ) const;
344  virtual char* encode( const DtTypedAmountRecord& value, char* buffer, int& bufferSize ) const;
345  virtual const char* decode( DtTypedAmountRecord& value, const char* buffer, int& bufferSize ) const;
346 
347  virtual int getSize( const DtEWAttackRecord& value ) const;
348  virtual char* encode( const DtEWAttackRecord& value, char* buffer, int& bufferSize ) const;
349  virtual const char* decode( DtEWAttackRecord& value, const char* buffer, int& bufferSize ) const;
350 
351  virtual int getSize( const DtEWAttackDefendingRecord& value ) const;
352  virtual char* encode( const DtEWAttackDefendingRecord& value, char* buffer, int& bufferSize ) const;
353  virtual const char* decode( DtEWAttackDefendingRecord& value, const char* buffer, int& bufferSize ) const;
354 
355  virtual int getSize( const DtTypedRateRecord& value ) const;
356  virtual char* encode( const DtTypedRateRecord& value, char* buffer, int& bufferSize ) const;
357  virtual const char* decode( DtTypedRateRecord& value, const char* buffer, int& bufferSize ) const;
358 
359  virtual int getSize( const DtAmountRecord& value ) const;
360  virtual char* encode( const DtAmountRecord& value, char* buffer, int& bufferSize ) const;
361  virtual const char* decode( DtAmountRecord& value, const char* buffer, int& bufferSize ) const;
362 
363  virtual int getSize( const DtSensorContactInfo& value ) const;
364  virtual char* encode( const DtSensorContactInfo& value, char* buffer, int& bufferSize ) const;
365  virtual const char* decode( DtSensorContactInfo& value, const char* buffer, int& bufferSize ) const;
366 
367  virtual int getSize( const DtPropulsionSystemData& value ) const;
368  virtual char* encode( const DtPropulsionSystemData& value, char* buffer, int& bufferSize ) const;
369  virtual const char* decode( DtPropulsionSystemData& value, const char* buffer, int& bufferSize ) const;
370 
371  virtual int getSize( const DtNozzleSystemData& value ) const;
372  virtual char* encode( const DtNozzleSystemData& value, char* buffer, int& bufferSize ) const;
373  virtual const char* decode( DtNozzleSystemData& value, const char* buffer, int& bufferSize ) const;
374 
375  virtual int getSize( const DtVrxRecordSetList& value ) const;
376  virtual char* encode( const DtVrxRecordSetList& value, char* buffer, int& bufferSize ) const;
377  virtual const char* decode( DtVrxRecordSetList& value, const char* buffer, int& bufferSize ) const;
378 
379  virtual int getSize( const DtPatchIdentifier& value ) const;
380  virtual char* encode( const DtPatchIdentifier& value, char* buffer, int& bufferSize ) const;
381  virtual const char* decode( DtPatchIdentifier& value, const char* buffer, int& bufferSize ) const;
382 
384 
387 
388  template <typename T1, typename T2>
389  int getSize( const std::pair<T1,T2>& value ) const;
390 
391  template <typename T1, typename T2>
392  char* encode( const std::pair<T1,T2>& value, char* buffer, int& bufferSize ) const;
393 
394  template <typename T1, typename T2>
395  const char* decode( std::pair<T1,T2>& value, const char* buffer, int& bufferSize ) const;
396 
398 
401 
402  template <typename T>
403  int getSize( const std::list<T>& value ) const;
404 
405  template <typename T>
406  char* encode( const std::list<T>& value, char* buffer, int& bufferSize ) const;
407 
408  template <typename T>
409  const char* decode( std::list<T>& value, const char* buffer, int& bufferSize ) const;
410 
412 
415 
416  template <typename T>
417  int getSize( const std::vector<T>& value ) const;
418 
419  template <typename T>
420  char* encode( const std::vector<T>& value, char* buffer, int& bufferSize ) const;
421 
422  template <typename T>
423  const char* decode( std::vector<T>& value, const char* buffer, int& bufferSize ) const;
424 
426 
429 
430  template <typename T1, typename T2>
431  int getSize( const std::map<T1,T2>& value ) const;
432 
433  template <typename T1, typename T2>
434  char* encode( const std::map<T1,T2>& value, char* buffer, int& bufferSize ) const;
435 
436  template <typename T1, typename T2>
437  const char* decode( std::map<T1,T2>& value, const char* buffer, int& bufferSize ) const;
438 
440 
441  protected:
442 
445  mutable DtU32 myMutableSerialNumber;
446 
450 
453  mutable DtTime myMutableSentTimeStamp;
454 
458 
459  };
460 
461 
462  DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& str, const DtPortalMessage& msg );
463 
464 }
465 
466 DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& str, const std::vector<DtString>& msg );
467 
468 
469 #define _pMessage_INL_
470 #include <portal/pMessage.inl>
471 #undef _pMessage_INL_
Definition: amountRecord.h:23
Represents variable length byte arrays.
Definition: variableLengthData.h:24
Contains the DtShaftRateData class declaration.
Definition: typedQuantityRecord.h:24
Contains the DtPostureTransitionRecord class declaration.
Declares classes and data types used by aggregates.
Represents SEES PDU Nozzle System Data.
Definition: nozzleSystemData.h:22
Definition: effectModifierRecord.h:24
Definition: indirectFirePowerRecord.h:24
#define DT_DLL_LIBPORTAL
Definition: include/portal/dllExport.h:20
DtU32 myMutableSerialNumber
Mutable because it can be set by the PConnection.
Definition: pMessage.h:445
Contains the DtMoppLevelTransitionRecord class declaration.
Instances of DtVrxRecordSetList are lists of RecordSets.
Definition: vrxRecordSetList.h:39
Contains the DtTypedAmountRecord class declaration.
Represents Linear Segment Parameter Objects.
Definition: linearSegmentData.h:38
Represents SEES PDU Propulsion System Data.
Definition: propulsionSystemData.h:22
#define DtDEC_ATTRIBUTE(T, N, n)
A Macro to define an attribute; as well as make an accessor and mutator for that attribute.
Definition: addAttribute.h:49
Contains the DtEmitterBeamData class declaration.
DtTime myMutableReceivedTimeStamp
Mutable because it can be set by the PConnection.
Definition: pMessage.h:457
Contains the DtTypedQuantityRecord class declaration.
Contains the DtRangedPowerRecord class declaration.
Contains the DtVariableLengthData class declaration.
Represents data of fixed length.
Definition: fixedLengthData.h:27
The base class for all messages passed through the portal.
Definition: pMessage.h:67
Definition: moppLevelTransitionRecord.h:23
Definition: sensorContactInfo.h:28
Definition: ringSectorsRecord.h:22
Contains the DtLinearSegmentData class declaration.
Contains the DtActiveSonarBeamData class declaration.
Contains the DtNozzleSystemData class declaration.
A container class for the SilentAggregateType.
Definition: aggregateTypes.h:23
Definition: casualtyReportRecord.h:24
Contains the DtTypedResupplyAmountRecord class declaration.
Contains the DtCasualtyReportRecord class declaration.
Contains the DtEWAttackRecord class declaration.
DT_DLL_LIBPORTAL std::ostream & operator<<(std::ostream &stream, const DtActiveSonarBeamData &data)
Contains the DtEWAttackDefendingRecord class declaration.
Definition: ewAttackRecord.h:24
Contains the DtIndirectFirePowerRecord class declaration.
Contains the DtPropulsionSystemData class declaration.
Definition: typedRateRecord.h:24
Represents variable data transmitted as part of the Aggregate Object.
Definition: aggregateTypes.h:97
DtU32 myMutableSendingBrokerId
Mutable because it can be set by the PConnection.
Definition: pMessage.h:449
Contains the DtEffectModifierRecord class declaration.
Represents Emitter Beam Objects.
Definition: activeSonarBeamData.h:31
Contains the DtPortalMessageKind type enumerations.
Contains the DtTypedRateRecord class declaration.
Definition: typedAmountRecord.h:25
Definition: rangedPowerRecord.h:24
DtTime myMutableSentTimeStamp
Mutable because it can be set by the PConnection.
Definition: pMessage.h:453
Definition: ewAttackDefendingRecord.h:24
Contains the DtAmountRecord class declaration.
Definition: postureTransitionRecord.h:23
Contains the DtFixedLengthData class declaration.
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
Contains the DtSensorContactInfo class declaration.
Represents Propulsion Noise Shaft Rate Data.
Definition: shaftRateData.h:25
Represents Emitter Beam Objects.
Definition: emitterBeamData.h:36
Represents entities which are not simulated, but rather only listed in the aggregate.
Definition: aggregateTypes.h:57
Contains the DtRingSectorsRecord class declaration.

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)