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 VT MAK
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 
186  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 
197  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 
206  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 
217  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

Document ID: Generated on Tue Mar 1 02:56:17 EST 2016 from SVN revision 162687
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)