VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
omtTree.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 MAK Technologies, Inc
3 ** All rights reserved.
4 *******************************************************************************/
7 #pragma once
8 
9 
10 
11 #include "complexDatatypeNode.h"
12 #include "enumeratedDatatypeNode.h"
14 #include "objectClassFedNode.h"
15 #include "simpleDatatypeNode.h"
16 #include "arrayDatatypeNode.h"
17 #include "fixedDatatypeNode.h"
18 #include "variantDatatypeNode.h"
20 #include "noteNode.h"
21 #include "boolAttrNode.h"
22 #include "descriptionNode.h"
23 #include "dimensionNode.h"
24 #include "timeRepNode.h"
25 #include "synchroNode.h"
26 #include "tagNode.h"
27 
28 class DtExerciseConn;
29 
30 #include <vlutil/vlString.h>
31 #ifdef DtHLA
32 #ifndef DtUSE_UTILITIES_NAMESPACE
33 #include <vl/rtiNamespace.h>
34 #endif
35 #endif
36 #include <list>
37 #ifdef DtUSE_UTILITIES_NAMESPACE
38 namespace DtUSE_UTILITIES_NAMESPACE
39 {
40 #endif
42 
44 {
52 };
53 
55 {
58 };
59 
60 class DtUpdateRateNode;
61 
65 {
66 public:
67 
69  DtOMTTree();
70 
72  virtual ~DtOMTTree();
73 
74 
75  virtual void setHlaVersion(DtHLAProtocolVersion version);
76  virtual DtHLAProtocolVersion hlaVersion() const;
77 
78  virtual void setName(const DtString&);
79  virtual const DtString& getName();
80 
81  virtual void setVersionNo(const DtString&);
82  virtual const DtString& getVersionNo();
83 
84  virtual void setType(const DtString&);
85  virtual const DtString& getType();
86 
87  virtual void setPurpose(const DtString&);
88  virtual const DtString& getPurpose();
89 
90  virtual void setApplicationDomain(const DtString&);
91  virtual const DtString& getApplicationDomain();
92 
93  virtual void setSponsorOrgName(const DtString&);
94  virtual const DtString& getSponsorOrgName();
95 
96  virtual void setModificationDate(const DtString&);
97  virtual const DtString& getModificationDate();
98 
99  virtual void setSecurityClassification(const DtString&);
100  virtual const DtString& getSecurityClassification() const;
101 
102  virtual void setReleaseRestriction(const DtString&);
103  virtual const DtString& getReleaseRestriction() const;
104 
105  virtual void setDescription(const DtString&);
106  virtual const DtString& getDescription() const;
107 
108  virtual void setMOMVersion(const DtString&);
109  virtual const DtString& getMOMVersion();
110 
112  virtual void setReference(const DtString&);
113  virtual const DtString& getReference();
114 
116  virtual const std::vector<DtOMTTreeReference>& getReferences() const;
117  virtual void setReferences(const std::vector<DtOMTTreeReference> & s);
118  virtual void addReference(const DtOMTTreeReference & s);
119 
120  virtual void setOther(const DtString&);
121  virtual const DtString& getOther();
122 
123  virtual void setUseLimitation(const DtString&);
124  virtual const DtString& getUseLimitation();
125 
126  virtual void setUseHistory(const DtString&);
127  virtual const DtString& getUseHistory();
128 
129  virtual void addPOC(const DtOMTTreePOC& poc);
130  virtual void addPOC(const DtString& honorificName,
131  const DtString& firstName, const DtString& LastName,
132  const DtString& orgName, const DtString& phone,
133  const DtString& email, const DtString& poctype);
134  virtual std::list<DtOMTTreePOC>::iterator getPOCList();
135  virtual std::list<DtOMTTreePOC>::iterator getPOCEndNode();
136 
137  virtual void addBasicDataRepresentationNode(DtBasicDataRepresentationNode*);
138  virtual DtBasicDataRepresentationNode* getBasicDataRepresentationNode(const DtString& name);
139  virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationNodeList();
140  virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationEndNode();
141 
142  virtual void addVariantDatatypeNode(DtVariantDatatypeNode*);
143  virtual DtVariantDatatypeNode* getVariantDatatypeNode(const DtString& name);
144  virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeNodeList();
145  virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeEndNode();
146 
147  virtual void addFixedDatatypeNode(DtFixedDatatypeNode*);
148  virtual DtFixedDatatypeNode* getFixedDatatypeNode(const DtString& name);
149  virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeNodeList();
150  virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeEndNode();
151 
152  virtual void addSimpleDatatypeNode(DtSimpleDatatypeNode*);
153  virtual DtSimpleDatatypeNode* getSimpleDatatypeNode(const DtString& name);
154  virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeNodeList();
155  virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeEndNode();
156 
157  virtual void addComplexDatatypeNode(DtComplexDatatypeNode*);
158  virtual DtComplexDatatypeNode* getComplexDatatypeNode(const DtString& name);
159  virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeNodeList();
160  virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeEndNode();
161 
162  virtual void addArrayDatatypeNode(DtArrayDatatypeNode*);
163  virtual DtArrayDatatypeNode* getArrayDatatypeNode(const DtString& name);
164  virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeNodeList();
165  virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeEndNode();
166 
167  virtual void addEnumeratedDatatypeNode(DtEnumeratedDatatypeNode*);
168  virtual DtEnumeratedDatatypeNode* getEnumeratedDatatypeNode(const DtString& name);
169  virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeNodeList();
170  virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeEndNode();
171 
172  virtual void addNoteNode(DtNoteNode*);
173  virtual DtNoteNode* getNoteNode(int val);
174  virtual DtNoteNode* getNoteNode(DtString val);
175  virtual std::list<DtNoteNode*>::iterator getNoteNodeList();
176  virtual std::list<DtNoteNode*>::iterator getNoteEndNode();
177 
178  virtual void addUpdateRateNode(DtUpdateRateNode* node);
179  virtual DtUpdateRateNode* getUpdateRateNode(const DtString& name);
180  virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateNodeList();
181  virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateEndNode();
182 
183 
185  virtual void setObjectClassRoot(DtObjectClassFedNode* node);
187  virtual DtObjectClassFedNode* objectClassRoot();
189 
190  virtual void addObjectClassNode(DtObjectClassFedNode*);
191 #ifdef DtHLA
192 #ifndef DtUSE_UTILITIES_NAMESPACE
193  virtual DtObjectClassFedNode* getObjectClassNode(RTI::ObjectClassHandle value);
194 #endif
195 #endif
196  virtual DtObjectClassFedNode* getObjectClassNode(const DtString& name = "");
198  virtual DtObjectClassFedNode* getObjectClassNodeByID(int id);
199  virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeBegin();
200  virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeEnd();
201  virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeRBegin();
202  virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeREnd();
203 
205  virtual void setInteractionClassRoot(DtInteractionClassFedNode* node);
207  virtual DtInteractionClassFedNode* interactionClassRoot();
209 
210  virtual void addInteractionClassNode(DtInteractionClassFedNode*);
211 #ifdef DtHLA
212 #ifndef DtUSE_UTILITIES_NAMESPACE
213  virtual DtInteractionClassFedNode* getInteractionClassNode(RTI::InteractionClassHandle value);
214 #endif
215 #endif
216  virtual DtInteractionClassFedNode* getInteractionClassNode(const DtString& name = "");
218  virtual DtInteractionClassFedNode* getInteractionClassNodeByID(int id);
219  virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeBegin();
220  virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeEnd();
221  virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeRBegin();
222  virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeREnd();
223 
224  virtual void addSwitchNode(DtBoolAttrNode*);
225  virtual DtBoolAttrNode* getSwitchNode(const DtString& name);
226  virtual std::list<DtBoolAttrNode*>::iterator getSwitchNodeList();
227  virtual std::list<DtBoolAttrNode*>::iterator getSwitchEndNode();
228 
229  virtual void addTransportationNode(DtDescriptionNode*);
230  virtual DtDescriptionNode* getTransportationNode(const DtString& name);
231  virtual std::list<DtDescriptionNode*>::iterator getTransportationNodeList();
232  virtual std::list<DtDescriptionNode*>::iterator getTransportationEndNode();
233 
234  virtual void addDimensionNode(DtDimensionNode*);
235  virtual DtDimensionNode* getDimensionNode(const DtString& name);
236  virtual std::list<DtDimensionNode*>::iterator getDimensionNodeList();
237  virtual std::list<DtDimensionNode*>::iterator getDimensionEndNode();
238 
239  virtual void addSynchroNode(DtSynchroNode*);
240  virtual DtSynchroNode* getSynchroNode(const DtString& name);
241  virtual std::list<DtSynchroNode*>::iterator getSynchroNodeList();
242  virtual std::list<DtSynchroNode*>::iterator getSynchroEndNode();
243 
244  virtual void addTagNode(DtTagNode*);
245  virtual DtTagNode* getTagNode(const DtString& name);
246  virtual std::list<DtTagNode*>::iterator getTagNodeList();
247  virtual std::list<DtTagNode*>::iterator getTagEndNode();
248 
249  virtual DtTimeRepNode* getTimeRepNode();
250 
251  virtual void merge(DtOMTTree* mergeTree);
252 
253 protected:
258  virtual DtObjectClassFedNode* mergeObjectNode(const DtObjectClassFedNode& sourceNode);
263  virtual DtInteractionClassFedNode* mergeInteractionNode(const DtInteractionClassFedNode& sourceNode);
264  virtual void mergeModelIdentification(DtOMTTree* mergeTree);
265  virtual void mergeObjects(DtOMTTree* mergeTree);
266  virtual void mergeInteractions(DtOMTTree* mergeTree);
267  virtual void mergeDatatypes(DtOMTTree* mergeTree);
268  virtual void mergeDimensions(DtOMTTree* mergTree);
269  virtual void mergeNotes(DtOMTTree* mergeTree);
270  virtual void mergeSyncPoints(DtOMTTree* mergeTree);
271  virtual void mergeTransportations(DtOMTTree* mergeTree);
272  virtual void mergeUpdateRates(DtOMTTree* mergeTree);
273  virtual void mergeTags(DtOMTTree* mergeTree);
274  virtual void mergeSwitches(DtOMTTree* mergeTree);
275 
276 protected:
277  std::list<DtNoteNode*> myNoteNodes;
278  std::list<DtObjectClassFedNode*> myObjectClassNodes;
279  std::list<DtInteractionClassFedNode*> myInteractionClassNodes;
280  std::list<DtComplexDatatypeNode*> myComplexDatatypeNodes;
281  std::list<DtEnumeratedDatatypeNode*> myEnumeratedDatatypeNodes;
282 
283  //1516 only tables
284  std::list<DtBasicDataRepresentationNode*> myBasicDataRepresentationNodes;
285  std::list<DtSimpleDatatypeNode*> mySimpleDatatypeNodes;
286  std::list<DtArrayDatatypeNode*> myArrayDatatypeNodes;
287  std::list<DtFixedDatatypeNode*> myFixedDatatypeNodes;
288  std::list<DtVariantDatatypeNode*> myVariantDatatypeNodes;
289  std::list<DtBoolAttrNode*> mySwitchNodes;
290  std::list<DtDescriptionNode*> myTransportationNodes;
291  std::list<DtDimensionNode*> myDimensionNodes;
292  std::list<DtSynchroNode*> mySynchroNodes;
293  std::list<DtTagNode*> myTagNodes;
294 
296  std::list<DtUpdateRateNode*> myUpdateRateNodes;
297 
299 
302 
318 
319  std::list<DtOMTTreePOC> myPOC;
320  std::vector<DtOMTTreeReference> myReferences;
322 
323 };
324 
325 
326 #ifdef DtUSE_UTILITIES_NAMESPACE
327 } // end of namespace DtUSE_UTILITIES_NAMESPACE
328 #endif
std::list< DtSynchroNode * > mySynchroNodes
Definition: omtTree.h:292
Definition: dimensionNode.h:18
Definition: managedInterface.h:44
DtString myPOCLastName
Definition: omtTree.h:47
DtString myMOMVersion
Definition: omtTree.h:313
std::list< DtDescriptionNode * > myTransportationNodes
Definition: omtTree.h:290
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
Definition: omtTree.h:54
DtHLAProtocolVersion
Definition: omtTree.h:41
DtString myPOCPhone
Definition: omtTree.h:49
DtString myPOCFirstName
Definition: omtTree.h:46
Definition: tagNode.h:18
Contains the DtString class declaration.
std::list< DtSimpleDatatypeNode * > mySimpleDatatypeNodes
Definition: omtTree.h:285
Definition: timeRepNode.h:17
Definition: enumeratedDatatypeNode.h:25
std::list< DtDimensionNode * > myDimensionNodes
Definition: omtTree.h:291
Definition: synchroNode.h:17
Definition: descriptionNode.h:18
DtString myName
Definition: omtTree.h:303
std::list< DtInteractionClassFedNode * > myInteractionClassNodes
Definition: omtTree.h:279
Definition: omtTree.h:43
Definition: managedInterface.h:43
#define DT_DLL_OMTREADER
Definition: omtReader.h:27
DtString myPOCHonorificName
Definition: omtTree.h:45
std::list< DtTagNode * > myTagNodes
Definition: omtTree.h:293
std::list< DtFixedDatatypeNode * > myFixedDatatypeNodes
Definition: omtTree.h:287
static const xmlChar * poc
Definition: xmlFedTags.h:218
DtString myDescription
Definition: omtTree.h:312
std::list< DtArrayDatatypeNode * > myArrayDatatypeNodes
Definition: omtTree.h:286
std::list< DtBasicDataRepresentationNode * > myBasicDataRepresentationNodes
Definition: omtTree.h:284
DtString myReference
Definition: omtTree.h:314
std::list< DtVariantDatatypeNode * > myVariantDatatypeNodes
Definition: omtTree.h:288
Definition: basicDataRepresentationNode.h:22
Definition: updateRateNode.h:18
DtString myVersionNo
Definition: omtTree.h:304
DtString myPOCOrgName
Definition: omtTree.h:48
defines an object class inside our Fed Tree
Definition: interactionClassFedNode.h:31
DtString myApplicationDomain
Definition: omtTree.h:307
std::vector< DtOMTTreeReference > myReferences
Definition: omtTree.h:320
DtString myPurpose
Definition: omtTree.h:306
DtString myReleaseRestriction
Definition: omtTree.h:311
DtString mySponsorOrgName
Definition: omtTree.h:308
DtInteractionClassFedNode * myInteractionClassRoot
Definition: omtTree.h:301
Definition: managedInterface.h:45
DtString myReferenceType
Definition: omtTree.h:56
DtString myModificationDate
Definition: omtTree.h:309
defines an object class inside our Fed Tree
Definition: objectClassFedNode.h:36
DtString myPOCEmail
Definition: omtTree.h:50
DtString myUseLimitation
Definition: omtTree.h:316
DtString myType
Definition: omtTree.h:305
DtHLAProtocolVersion myHlaVersion
Definition: omtTree.h:321
DtString myUseHistory
Definition: omtTree.h:317
std::list< DtNoteNode * > myNoteNodes
Definition: omtTree.h:277
This is a generic switch with an enabled disabled category.
Definition: boolAttrNode.h:21
DtTimeRepNode * myTimeRepNode
Definition: omtTree.h:298
DtString myOther
Definition: omtTree.h:315
std::list< DtEnumeratedDatatypeNode * > myEnumeratedDatatypeNodes
Definition: omtTree.h:281
Definition: arrayDatatypeNode.h:19
Definition: omtTree.h:41
Complex datatypes are a OMT 1.3 construct that merges arrays, variants, and fixed into one monstrous ...
Definition: complexDatatypeNode.h:27
A tree using the an OMT File information.
Definition: omtTree.h:64
std::list< DtComplexDatatypeNode * > myComplexDatatypeNodes
Definition: omtTree.h:280
Definition: variantDatatypeNode.h:20
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Definition: fixedDatatypeNode.h:23
std::list< DtObjectClassFedNode * > myObjectClassNodes
Definition: omtTree.h:278
std::list< DtBoolAttrNode * > mySwitchNodes
Definition: omtTree.h:289
DtString mySecurityClassification
Definition: omtTree.h:310
Definition: simpleDatatypeNode.h:18
Definition: noteNode.h:17
std::list< DtOMTTreePOC > myPOC
Definition: omtTree.h:319
DtString myPOCType
Definition: omtTree.h:51
std::list< DtUpdateRateNode * > myUpdateRateNodes
Evolved only tables.
Definition: omtTree.h:296
DtString myReferenceIdentification
Definition: omtTree.h:57
DtObjectClassFedNode * myObjectClassRoot
Definition: omtTree.h:300

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)