WebLVC 1.7d 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 VT MAK
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 
46 #include <matrix/vlTaitBryan.h>
47 #include <matrix/vlVector.h>
48 
49 #include <vlutil/vlNetTypes.h>
50 #include <vlutil/vlString.h>
51 #include <vlutil/vlTime.h>
52 
53 #include <iosfwd>
54 #include <vector>
55 #include <map>
56 
57 namespace MAKVrExchange
58 {
59 
66  {
67  public:
68 
71 
73  DtPortalMessage( const DtPortalMessage& other );
74 
76  virtual ~DtPortalMessage();
77 
79  virtual DtPortalMessage& operator = ( const DtPortalMessage& other );
80 
83 
84  virtual bool operator == ( const DtPortalMessage& other ) const;
85  virtual bool operator != ( const DtPortalMessage& other ) const;
86 
88 
91 
94  DtDEC_ATTRIBUTE( DtPortalMessageKind, Kind, kind );
95 
97 
99  public:
100 
103 
106  virtual void setSerialNumber( unsigned int i ) const;
107 
114  virtual unsigned int serialNumber() const;
115 
118  virtual void setSendingBrokerId( const DtU32& id ) const;
119 
123  virtual DtU32 sendingBrokerId() const;
124 
127  virtual void setTimeSent( const DtTime& tm ) const;
128 
132  virtual DtTime timeSent() const;
133 
136  virtual void setTimeReceived( const DtTime& tm ) const;
137 
142  virtual DtTime timeReceived() const;
143 
145 
146  public:
147 
151  virtual unsigned int netSize() const;
152 
156  virtual void writeSelfToBuffer( void* buffer, int bufferSize ) const;
157 
161  virtual void readSelfFromBuffer( const void* buffer, int bufferSize );
162 
165  virtual std::ostream& printDataToStream( std::ostream& str ) const;
166 
167  protected:
168 
171 
172  virtual int getSize( const DtU8& v ) const;
173  virtual char* encode( const DtU8& val, char* buffer, int& bufferSize ) const;
174  virtual const char* decode( DtU8& val, const char* buffer, int& bufferSize ) const;
175 
176  virtual int getSize( const DtU16& v ) const;
177  virtual char* encode( const DtU16& val, char* buffer, int& bufferSize ) const;
178  virtual const char* decode( DtU16& val, const char* buffer, int& bufferSize ) const;
179 
180  virtual int getSize( const DtU32& v ) const;
181  virtual char* encode( const DtU32& val, char* buffer, int& bufferSize ) const;
182  virtual const char* decode( DtU32& val, const char* buffer, int& bufferSize ) const;
183 
184  virtual int getSize( const DtU64& v ) const;
185  virtual char* encode( const DtU64& val, char* buffer, int& bufferSize ) const;
186  virtual const char* decode( DtU64& val, const char* buffer, int& bufferSize ) const;
187 
188  virtual int getSize( const DtInt8& v ) const;
189  virtual char* encode( const DtInt8& val, char* buffer, int& bufferSize ) const;
190  virtual const char* decode( DtInt8& val, const char* buffer, int& bufferSize ) const;
191 
192  virtual int getSize( const DtInt16& v ) const;
193  virtual char* encode( const DtInt16& val, char* buffer, int& bufferSize ) const;
194  virtual const char* decode( DtInt16& val, const char* buffer, int& bufferSize ) const;
195 
196  virtual int getSize( const DtInt32& v ) const;
197  virtual char* encode( const DtInt32& val, char* buffer, int& bufferSize ) const;
198  virtual const char* decode( DtInt32& val, const char* buffer, int& bufferSize ) const;
199 
200  virtual int getSize( const DtInt64& v ) const;
201  virtual char* encode( const DtInt64& val, char* buffer, int& bufferSize ) const;
202  virtual const char* decode( DtInt64& val, const char* buffer, int& bufferSize ) const;
203 
204  virtual int getSize( const DtFloat32& v ) const;
205  virtual char* encode( const DtFloat32& val, char* buffer, int& bufferSize ) const;
206  virtual const char* decode( DtFloat32& val, const char* buffer, int& bufferSize ) const;
207 
208  virtual int getSize( const DtFloat64& v ) const;
209  virtual char* encode( const DtFloat64& val, char* buffer, int& bufferSize ) const;
210  virtual const char* decode( DtFloat64& val, const char* buffer, int& bufferSize ) const;
211 
212  virtual int getSize( const DtVector32& v ) const;
213  virtual char* encode( const DtVector32& val, char* buffer, int& bufferSize ) const;
214  virtual const char* decode( DtVector32& val, const char* buffer, int& bufferSize ) const;
215 
216  virtual int getSize( const DtVector64& v ) const;
217  virtual char* encode( const DtVector64& val, char* buffer, int& bufferSize ) const;
218  virtual const char* decode( DtVector64& val, const char* buffer, int& bufferSize ) const;
219 
220  virtual int getSize( const DtTaitBryan& v ) const;
221  virtual char* encode( const DtTaitBryan& val, char* buffer, int& bufferSize ) const;
222  virtual const char* decode( DtTaitBryan& val, const char* buffer, int& bufferSize ) const;
223 
224  virtual int getSize( const DtString& val ) const;
225  virtual char* encode( const DtString& val, char* buffer, int& bufferSize ) const;
226  virtual const char* decode( DtString& val, const char* buffer, int& bufferSize ) const;
227 
228  virtual int getSize( const bool& v ) const;
229  virtual char* encode( const bool& val, char* buffer, int& bufferSize ) const;
230  virtual const char* decode( bool& val, const char* buffer, int& bufferSize ) const;
231 
233 
236 
237  virtual int getSize( const DtSilentEntity& v ) const;
238  virtual char* encode( const DtSilentEntity& val, char* buffer, int& bufferSize ) const;
239  virtual const char* decode( DtSilentEntity& val, const char* buffer, int& bufferSize ) const;
240 
241  virtual int getSize( const DtSilentAggregate& v ) const;
242  virtual char* encode( const DtSilentAggregate& val, char* buffer, int& bufferSize ) const;
243  virtual const char* decode( DtSilentAggregate& val, const char* buffer, int& bufferSize ) const;
244 
245  virtual int getSize( const DtVariableLengthData& v ) const;
246  virtual char* encode( const DtVariableLengthData& val, char* buffer, int& bufferSize ) const;
247  virtual const char* decode( DtVariableLengthData& val, const char* buffer, int& bufferSize ) const;
248 
249  virtual int getSize( const DtFixedLengthData& value ) const;
250  virtual char* encode( const DtFixedLengthData& value, char* buffer, int& bufferSize ) const;
251  virtual const char* decode( DtFixedLengthData& value, const char* buffer, int& bufferSize ) const;
252 
253  virtual int getSize( const DtAggregateVariableDatum& v ) const;
254  virtual char* encode( const DtAggregateVariableDatum& val, char* buffer, int& bufferSize ) const;
255  virtual const char* decode( DtAggregateVariableDatum& val, const char* buffer, int& bufferSize ) const;
256 
257  virtual int getSize( const DtEmitterBeamData& data ) const;
258  virtual char* encode( const DtEmitterBeamData& data, char* buffer, int& bufferSize ) const;
259  virtual const char* decode( DtEmitterBeamData& data, const char* buffer, int& bufferSize ) const;
260 
261  virtual int getSize( const DtLinearSegmentData& data ) const;
262  virtual char* encode( const DtLinearSegmentData& data, char* buffer, int& bufferSize ) const;
263  virtual const char* decode( DtLinearSegmentData& data, const char* buffer, int& bufferSize ) const;
264 
265  virtual int getSize( const DtActiveSonarBeamData& data ) const;
266  virtual char* encode( const DtActiveSonarBeamData& data, char* buffer, int& bufferSize ) const;
267  virtual const char* decode( DtActiveSonarBeamData& data, const char* buffer, int& bufferSize ) const;
268 
269  virtual int getSize( const DtEntityIdentifier& value ) const;
270  virtual char* encode( const DtEntityIdentifier& value, char* buffer, int& bufferSize ) const;
271  virtual const char* decode( DtEntityIdentifier& value, const char* buffer, int& bufferSize ) const;
272 
273  virtual int getSize( const DtEntityType& value ) const;
274  virtual char* encode( const DtEntityType& value, char* buffer, int& bufferSize ) const;
275  virtual const char* decode( DtEntityType& value, const char* buffer, int& bufferSize ) const;
276 
277  virtual int getSize( const DtSyntheticEnvironmentObjectType& value ) const;
278  virtual char* encode( const DtSyntheticEnvironmentObjectType& value, char* buffer, int& bufferSize ) const;
279  virtual const char* decode( DtSyntheticEnvironmentObjectType& value, const char* buffer, int& bufferSize ) const;
280 
281  virtual int getSize( const DtArticulatedPartCollection& value ) const;
282  virtual char* encode( const DtArticulatedPartCollection& value, char* buffer, int& bufferSize ) const;
283  virtual const char* decode( DtArticulatedPartCollection& value, const char* buffer, int& bufferSize ) const;
284 
285  virtual int getSize( const DtAttachedPartCollection& value ) const;
286  virtual char* encode( const DtAttachedPartCollection& value, char* buffer, int& bufferSize ) const;
287  virtual const char* decode( DtAttachedPartCollection& value, const char* buffer, int& bufferSize ) const;
288 
289  virtual int getSize( const DtIffAtcNavaidsAltParm4& value ) const;
290  virtual char* encode( const DtIffAtcNavaidsAltParm4& value, char* buffer, int& bufferSize ) const;
291  virtual const char* decode( DtIffAtcNavaidsAltParm4& value, const char* buffer, int& bufferSize ) const;
292 
293  virtual int getSize( const DtSimulationAddress& value ) const;
294  virtual char* encode( const DtSimulationAddress& value, char* buffer, int& bufferSize ) const;
295  virtual const char* decode( DtSimulationAddress& value, const char* buffer, int& bufferSize ) const;
296 
297  virtual int getSize( const DtShaftRateData& value ) const;
298  virtual char* encode( const DtShaftRateData& value, char* buffer, int& bufferSize ) const;
299  virtual const char* decode( DtShaftRateData& value, const char* buffer, int& bufferSize ) const;
300 
301  virtual int getSize( const DtRingSectorsRecord& value ) const;
302  virtual char* encode( const DtRingSectorsRecord& value, char* buffer, int& bufferSize ) const;
303  virtual const char* decode( DtRingSectorsRecord& value, const char* buffer, int& bufferSize ) const;
304 
305  virtual int getSize( const DtPostureTransitionRecord& value ) const;
306  virtual char* encode( const DtPostureTransitionRecord& value, char* buffer, int& bufferSize ) const;
307  virtual const char* decode( DtPostureTransitionRecord& value, const char* buffer, int& bufferSize ) const;
308 
309  virtual int getSize( const DtMoppLevelTransitionRecord& value ) const;
310  virtual char* encode( const DtMoppLevelTransitionRecord& value, char* buffer, int& bufferSize ) const;
311  virtual const char* decode( DtMoppLevelTransitionRecord& value, const char* buffer, int& bufferSize ) const;
312 
313  virtual int getSize( const DtIndirectFirePowerRecord& value ) const;
314  virtual char* encode( const DtIndirectFirePowerRecord& value, char* buffer, int& bufferSize ) const;
315  virtual const char* decode( DtIndirectFirePowerRecord& value, const char* buffer, int& bufferSize ) const;
316 
317  virtual int getSize( const DtRangedPowerRecord& value ) const;
318  virtual char* encode( const DtRangedPowerRecord& value, char* buffer, int& bufferSize ) const;
319  virtual const char* decode( DtRangedPowerRecord& value, const char* buffer, int& bufferSize ) const;
320 
321  virtual int getSize( const DtEffectModifierRecord& value ) const;
322  virtual char* encode( const DtEffectModifierRecord& value, char* buffer, int& bufferSize ) const;
323  virtual const char* decode( DtEffectModifierRecord& value, const char* buffer, int& bufferSize ) const;
324 
325  virtual int getSize( const DtTypedQuantityRecord& value ) const;
326  virtual char* encode( const DtTypedQuantityRecord& value, char* buffer, int& bufferSize ) const;
327  virtual const char* decode( DtTypedQuantityRecord& value, const char* buffer, int& bufferSize ) const;
328 
329  virtual int getSize( const DtCasualtyReportRecord& value ) const;
330  virtual char* encode( const DtCasualtyReportRecord& value, char* buffer, int& bufferSize ) const;
331  virtual const char* decode( DtCasualtyReportRecord& value, const char* buffer, int& bufferSize ) const;
332 
333  virtual int getSize( const DtTypedAmountRecord& value ) const;
334  virtual char* encode( const DtTypedAmountRecord& value, char* buffer, int& bufferSize ) const;
335  virtual const char* decode( DtTypedAmountRecord& value, const char* buffer, int& bufferSize ) const;
336 
337  virtual int getSize( const DtEWAttackRecord& value ) const;
338  virtual char* encode( const DtEWAttackRecord& value, char* buffer, int& bufferSize ) const;
339  virtual const char* decode( DtEWAttackRecord& value, const char* buffer, int& bufferSize ) const;
340 
341  virtual int getSize( const DtEWAttackDefendingRecord& value ) const;
342  virtual char* encode( const DtEWAttackDefendingRecord& value, char* buffer, int& bufferSize ) const;
343  virtual const char* decode( DtEWAttackDefendingRecord& value, const char* buffer, int& bufferSize ) const;
344 
345  virtual int getSize( const DtTypedRateRecord& value ) const;
346  virtual char* encode( const DtTypedRateRecord& value, char* buffer, int& bufferSize ) const;
347  virtual const char* decode( DtTypedRateRecord& value, const char* buffer, int& bufferSize ) const;
348 
349  virtual int getSize( const DtAmountRecord& value ) const;
350  virtual char* encode( const DtAmountRecord& value, char* buffer, int& bufferSize ) const;
351  virtual const char* decode( DtAmountRecord& value, const char* buffer, int& bufferSize ) const;
352 
353  virtual int getSize( const DtSensorContactInfo& value ) const;
354  virtual char* encode( const DtSensorContactInfo& value, char* buffer, int& bufferSize ) const;
355  virtual const char* decode( DtSensorContactInfo& value, const char* buffer, int& bufferSize ) const;
356 
357  virtual int getSize( const DtPropulsionSystemData& value ) const;
358  virtual char* encode( const DtPropulsionSystemData& value, char* buffer, int& bufferSize ) const;
359  virtual const char* decode( DtPropulsionSystemData& value, const char* buffer, int& bufferSize ) const;
360 
361  virtual int getSize( const DtNozzleSystemData& value ) const;
362  virtual char* encode( const DtNozzleSystemData& value, char* buffer, int& bufferSize ) const;
363  virtual const char* decode( DtNozzleSystemData& value, const char* buffer, int& bufferSize ) const;
364 
365  virtual int getSize( const DtVrxRecordSetList& value ) const;
366  virtual char* encode( const DtVrxRecordSetList& value, char* buffer, int& bufferSize ) const;
367  virtual const char* decode( DtVrxRecordSetList& value, const char* buffer, int& bufferSize ) const;
368 
370 
373 
374  template <typename T1, typename T2>
375  int getSize( const std::pair<T1,T2>& value ) const;
376 
377  template <typename T1, typename T2>
378  char* encode( const std::pair<T1,T2>& value, char* buffer, int& bufferSize ) const;
379 
380  template <typename T1, typename T2>
381  const char* decode( std::pair<T1,T2>& value, const char* buffer, int& bufferSize ) const;
382 
384 
387 
388  template <typename T>
389  int getSize( const std::list<T>& value ) const;
390 
391  template <typename T>
392  char* encode( const std::list<T>& value, char* buffer, int& bufferSize ) const;
393 
394  template <typename T>
395  const char* decode( std::list<T>& value, const char* buffer, int& bufferSize ) const;
396 
398 
401 
402  template <typename T>
403  int getSize( const std::vector<T>& value ) const;
404 
405  template <typename T>
406  char* encode( const std::vector<T>& value, char* buffer, int& bufferSize ) const;
407 
408  template <typename T>
409  const char* decode( std::vector<T>& value, const char* buffer, int& bufferSize ) const;
410 
412 
415 
416  template <typename T1, typename T2>
417  int getSize( const std::map<T1,T2>& value ) const;
418 
419  template <typename T1, typename T2>
420  char* encode( const std::map<T1,T2>& value, char* buffer, int& bufferSize ) const;
421 
422  template <typename T1, typename T2>
423  const char* decode( std::map<T1,T2>& value, const char* buffer, int& bufferSize ) const;
424 
426 
427  protected:
428 
431  mutable DtU32 myMutableSerialNumber;
432 
436 
439  mutable DtTime myMutableSentTimeStamp;
440 
444 
445  };
446 
447 
448  DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& str, const DtPortalMessage& msg );
449 
450 }
451 
452 DT_DLL_LIBPORTAL std::ostream& operator << ( std::ostream& str, const std::vector<DtString>& msg );
453 
454 
455 #define _pMessage_INL_
456 #include <portal/pMessage.inl>
457 #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:431
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:443
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:65
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:435
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:439
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 Wed Jun 21 15:05:44 EDT 2023 from SVN revision 256253
Copyright © 2005-2023 MAK Technologies. All Rights Reserved (www.mak.com)