VR-Link API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
metocPdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 1992-2025 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vl/netMetocPdu.h>
15 #include <vl/geoReferenceVariant.h>
16 #include <vl/stateMsg.h>
17 #include <vl/exerciseConn.h>
18 #include <vlutil/vlUuid.h>
19 #include <vl/windStruct.h>
20 #include <vl/precipitationStruct.h>
21 #include <vl/hazeStruct.h>
22 #include <vlutil/vlMachineTypes.h>
23 
24 
25 class DtMetocPdu;
26 class DtMetocLayerRecord;
28 
29 
32 typedef void (*metocRootCb)(DtMetocPdu* pdu, void* usr);
33 
37 class DT_DLL_VL DtMetocPdu : public DtStateMsg
38 {
39 public:
41  DtMetocPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
42  DtMetocPdu(const DtNetPacket* initial,
43  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
44 
45 
47  virtual ~DtMetocPdu();
48 
49 private:
51  DtMetocPdu(const DtMetocPdu& orig);
52 
54  DtMetocPdu& operator=(const DtMetocPdu& orig);
55 
56 public:
58  virtual void setVersion(DtU16 val);
60  virtual DtU16 version() const;
61 
63  virtual void setEntityId(const DtEntityIdentifier& val);
65  virtual DtEntityIdentifier entityId() const;
66 
68  virtual void setUniqueId(const DtVrlUuid& val);
70  DtVrlUuid uniqueId() const;
71 
73  virtual void setName(const DtString& val);
75  DtString name() const;
76 
78  virtual void setGeoReference(const DtGeoReferenceVariant& val);
80  DtGeoReferenceVariant geoReference() const;
81 
83  virtual void setTemperature(DtFloat32 val);
85  virtual DtFloat32 temperature() const;
86 
88  virtual void setWind(const DtWindStruct& val);
90  virtual DtWindStruct wind() const;
91 
93  virtual void setPrecipitation(const DtPrecipitationStruct& val);
95  virtual DtPrecipitationStruct precipitation() const;
96 
98  virtual void setHaze(const DtHazeStruct& val);
100  virtual DtHazeStruct haze() const;
101 
103  virtual void setHumidity(DtFloat32 val);
105  virtual DtFloat32 humidity() const;
106 
108  virtual void setBarometricPressure(DtFloat32 val);
110  virtual DtFloat32 barometricPressure() const;
111 
113  virtual void setVisibilityRange(DtFloat32 val);
115  virtual DtFloat32 visibilityRange() const;
116 
118  virtual void setMetocLayerRecord(DtMetocLayerRecord* rec);
120  virtual DtStandardVariableRecord* metocLayerRecord(DtStandardVariableRecordFactory* varRecFac) const;
121 
123  virtual unsigned int metocLayerRecordType() const;
124 
126  void printData() const;
127  void printDataToStream(std::ostream& stream) const;
128 
129  // Returns a unique Key for this PDU class to be used with
130  // reflected objects and reflected lists. Because the Entity ID
131  // may not be unique, this should be a combination of the minimal
132  // number of attributes required for uniqueness.
133  DtString uniqueKey() const;
134 
135 public:
138  static DtPdu* create(const DtNetPduHeader *initial,
139  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
140 
143  static void addCallback(DtExerciseConn* conn,
144  metocRootCb cb, void* usr);
145  static void removeCallback(DtExerciseConn* conn,
146  metocRootCb cb, void* usr);
147 
148 protected:
149  // Returns the number of bytes in the fixed length portion of this PDU
150  // This is the initial size of the PDU before any variable datums are added
151  virtual unsigned int fixedBytesSize() const;
152  // A pointer to the first byte of variable datums. If there are no variable
153  // datums this points to the first byte out-of-bounds. This address should
154  // only be used if you know the PDU has been resized correctly.
155  virtual char *firstVarDatumStart() const;
156  static DtPduKind internalGetPduKindImpl() {return DtMetocPduKind;}
157  DtPduKind internalGetPduKind() const {return internalGetPduKindImpl();}
158 
159 protected:
160  // Cached DtStrings to ensure proper buffering
161  mutable DtString myName;
162  mutable DtGeoReferenceVariant myGeoRef;
163 
164 };
165 
166 
167 #endif
Definition: disEnums.h:321
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Definition: metocLayerRecord.h:12
Definition: geoReferenceVariant.h:29
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
Definition: hazeStruct.h:23
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
A Universally Unique Identifier DtVrlUuid stores a 16byte encoded UUID string.
Definition: vlUuid.h:28
Definition: windStruct.h:23
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
Definition: standardVariableRecord.h:23
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:36
class DtStateMsg:
Definition: stateMsgHLA.h:32
Contains the DtVrlUuid class declaration/definition.
This file contains typedefs for machine dependant types.
Definition: precipitationStruct.h:23

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)