MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hlaPacket.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef hlaPacket_H_
11 #define hlaPacket_H_
12 
13 #if DtHLA
14 
15 #include <lgrSim/lgrSim.h>
16 #include "hlaMessageFactory.h"
17 #include <lgrSim/lgrHlaAttribute.h>
18 
19 #include <vl/rtiNamespace.h>
20 #include <vlutil/vlString.h>
21 #include <vector>
22 
24 class DtInteraction;
25 class DtInteractionFactory;
26 
27 namespace MAKLogger
28 {
29 
30  class DtPacket;
31  class DtLgrOnlineFomDesc;
32  class DtBaseFomDesc;
33 
36  class DT_DLL_LGRSIM DtLgrStateMsg
37  {
38  public:
39 
41 #if DtHLA_1516
42  DtLgrStateMsg(RTI::ObjectHandle classHandle, RTI::AttributeHandleValueMap* rtiAttrs);
43 #else
44  DtLgrStateMsg(RTI::ObjectHandle classHandle, RTI::AttributeHandleValuePairSet* rtiAttrs);
45 #endif
46 
48  virtual ~DtLgrStateMsg();
49 
51  virtual DtStateMsg* stateMsg();
52 
53  protected:
54 
56  DtLgrStateMsg(const DtLgrStateMsg& orig);
57 
59  const DtLgrStateMsg& operator=(const DtLgrStateMsg& orig);
60 
61  protected:
62 
64  DtStateMsg* myStateMsg;
65 
66 #if DtHLA_1516
67  RTI::AttributeHandleValueMap* myRtiAttrs;
68 #else
69  RTI::AttributeHandleValuePairSet* myRtiAttrs;
70 #endif
71 
72  };
73 
74 
75  class DT_DLL_LGRSIM DtConstLgrHlaMessage
76  {
77 
78  public:
79 
81  DtConstLgrHlaMessage(const DtPacket* packet);
82 
84  DtConstLgrHlaMessage(const DtPacket& packet);
85 
87  virtual ~DtConstLgrHlaMessage();
88 
90  bool isUpdate() const;
91 
93  bool isMultiUpdate() const;
94 
96  bool isDDMUpdate() const;
97 
99  bool isRemoval() const;
100 
102  bool isInteraction() const;
103 
105  DtLgrHlaHandle objectHandle() const;
106 
108  const DtString& objectName() const;
109 
112  const DtString& asciiTag() const;
113 
115  const DtLgrVariableLengthData& binaryTag() const;
116 
118  DtTime tagAsTimestamp() const;
119 
121  DtLgrHlaHandle objectClassHandle() const;
122 
124  DtLgrHlaHandle interactionClassHandle() const;
125 
128  bool getInteractionRegionID( DtRegionID& regionID, unsigned int index = 0) const;
129 
132  bool getObjectRegionID( DtRegionID& regionID, unsigned int index = 0 ) const;
133 
136  unsigned int getObjectRegionIdSet( DtRegionIDSet& regionIDSet );
137 
140  unsigned int getInteractionRegionIdSet( DtRegionIDSet& regionIDSet );
141 
144  std::auto_ptr<DtLgrHandleValueMap> createAttrs() const;
145 
147  std::auto_ptr<DtLgrHandleValueMap> createParams() const;
148 
152  std::auto_ptr<DtLgrHandleValueReferenceMap> referenceAttrs() const;
153 
157  std::auto_ptr<DtLgrHandleValueReferenceMap> referenceParams() const;
158 
163  DtDDMRegionSP interactionDDMRegion(const DtExerciseConn *exerciseConn,
164  unsigned int index=0, DtIDRegionMap* regionCache=0, bool updateRegion=false ) const;
165 
170  DtDDMRegionSP objectDDMRegion(const DtExerciseConn *exerciseConn,
171  unsigned int index=0, DtIDRegionMap* regionCache=0, bool updateRegion=false ) const;
172 
178  unsigned int getInteractionDDMRegionSet(const DtExerciseConn *exerciseConn,
179  DtDDMRegionSet& regionSet, DtIDRegionMap* regionCache=0, bool updateRegions=false ) const;
180 
186  unsigned int getObjectDDMRegionSet(const DtExerciseConn *exerciseConn,
187  DtDDMRegionSet& regionSet, DtIDRegionMap* regionCache=0, bool updateRegions=false ) const;
188 
192  unsigned int getInteractionDDMRegionDescSet(DtRegionDescSet& regionSet) const;
193 
197  unsigned int getObjectDDMRegionDescSet(DtRegionDescSet& regionSet) const;
198 
199  DtInteraction* createInteraction(DtInteractionFactory* factory,
200  const DtLgrOnlineFomDesc& fom) const;
201 
204  DtLgrStateMsg* createStateMsg(const DtLgrOnlineFomDesc& fom) const;
205 
206 
209  DtLgrStateMsg** createMultiStateMsgs(const DtLgrOnlineFomDesc& fom,int& count) const;
210 
212  void paramHandles(std::vector<DtLgrHlaHandle>&) const;
213 
215  void attrHandles(std::vector<DtLgrHlaHandle>& handles) const;
216 
217  const DtPacket* packet() const;
218 
219  protected:
220  const DtPacket* myConstPacket;
221  mutable DtString* myObjectName;
222  mutable DtString* myAsciiTag;
223  mutable DtLgrVariableLengthData* myBinaryTag;
224  mutable bool myGotTagTime;
225  mutable DtTime myTagTime;
226 
227  };
228 
229  class DT_DLL_LGRSIM DtLgrHlaMessage : public DtConstLgrHlaMessage
230  {
231 
232  public:
233 
235  DtLgrHlaMessage(DtPacket* packet);
236 
238  virtual ~DtLgrHlaMessage();
239 
242  void setObjectHandle(DtLgrHlaHandle handle);
243 
246  void setObjectClassHandle(DtLgrHlaHandle handle);
247 
250  void setInteractionClassHandle(DtLgrHlaHandle handle);
251 
255  std::auto_ptr<DtLgrHandleValueReferenceMap> referenceAttrs();
256 
260  std::auto_ptr<DtLgrHandleValueReferenceMap> referenceParams();
261 
263  void setParamHandles(const std::vector<DtLgrHlaHandle>&);
264 
266  void setAttrHandles(const std::vector<DtLgrHlaHandle>& handles);
267 
268  protected:
269  DtPacket* myPacket;
270  };
271 
272 }
273 
274 #endif
275 #endif
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
Contains MAKLogger::DtLgrHlaMessageFactory class.

Document ID: Generated on Thu Jul 14 15:45:33 EDT 2022 from SVN revision 244827
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)