VR-Link API Documentation for HLA Evolved
 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 #include "complexDatatypeNode.h"
10 #include "enumeratedDatatypeNode.h"
12 #include "objectClassFedNode.h"
13 #include "simpleDatatypeNode.h"
14 #include "arrayDatatypeNode.h"
15 #include "fixedDatatypeNode.h"
16 #include "variantDatatypeNode.h"
18 #include "noteNode.h"
19 #include "boolAttrNode.h"
20 #include "descriptionNode.h"
21 #include "dimensionNode.h"
22 #include "timeRepNode.h"
23 #include "synchroNode.h"
24 #include "tagNode.h"
25 
26 class DtExerciseConn;
27 
28 #include <vlutil/vlString.h>
29 #include <vl/rtiNamespace.h>
30 
31 #include <list>
32 
34 
35 class DtUpdateRateNode;
36 
40 {
41 public:
42 
44  DtOMTTree();
45 
47  virtual ~DtOMTTree();
48 
49 
50  virtual void setHlaVersion(DtHLAProtocolVersion version);
51  virtual DtHLAProtocolVersion hlaVersion() const;
52 
53  virtual void setName(const DtString&);
54  virtual const DtString& getName();
55 
56  virtual void setVersionNo(const DtString&);
57  virtual const DtString& getVersionNo();
58 
59  virtual void setType(const DtString&);
60  virtual const DtString& getType();
61 
62  virtual void setPurpose(const DtString&);
63  virtual const DtString& getPurpose();
64 
65  virtual void setApplicationDomain(const DtString&);
66  virtual const DtString& getApplicationDomain();
67 
68  virtual void setSponsorOrgName(const DtString&);
69  virtual const DtString& getSponsorOrgName();
70 
71  virtual void setPOCHonorificName(const DtString&);
72  virtual const DtString& getPOCHonorificName();
73 
74  virtual void setPOCFirstName(const DtString&);
75  virtual const DtString& getPOCFirstName();
76 
77  virtual void setPOCLastName(const DtString&);
78  virtual const DtString& getPOCLastName();
79 
80  virtual void setPOCOrgName(const DtString&);
81  virtual const DtString& getPOCOrgName();
82 
83  virtual void setPOCPhone(const DtString&);
84  virtual const DtString& getPOCPhone();
85 
86  virtual void setPOCEmail(const DtString&);
87  virtual const DtString& getPOCEmail();
88 
89  virtual void setModificationDate(const DtString&);
90  virtual const DtString& getModificationDate();
91 
92  virtual void setSecurityClassification(const DtString&);
93  virtual const DtString& getSecurityClassification() const;
94 
95  virtual void setReleaseRestriction(const DtString&);
96  virtual const DtString& getReleaseRestriction() const;
97 
98  virtual void setDescription(const DtString&);
99  virtual const DtString& getDescription() const;
100 
101  virtual void setMOMVersion(const DtString&);
102  virtual const DtString& getMOMVersion();
103 
104  virtual void setReference(const DtString&);
105  virtual const DtString& getReference();
106 
107  virtual void setOther(const DtString&);
108  virtual const DtString& getOther();
109 
110  virtual void addBasicDataRepresentationNode(DtBasicDataRepresentationNode*);
111  virtual DtBasicDataRepresentationNode* getBasicDataRepresentationNode(const DtString& name);
112  virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationNodeList();
113  virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationEndNode();
114 
115  virtual void addVariantDatatypeNode(DtVariantDatatypeNode*);
116  virtual DtVariantDatatypeNode* getVariantDatatypeNode(const DtString& name);
117  virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeNodeList();
118  virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeEndNode();
119 
120  virtual void addFixedDatatypeNode(DtFixedDatatypeNode*);
121  virtual DtFixedDatatypeNode* getFixedDatatypeNode(const DtString& name);
122  virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeNodeList();
123  virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeEndNode();
124 
125  virtual void addSimpleDatatypeNode(DtSimpleDatatypeNode*);
126  virtual DtSimpleDatatypeNode* getSimpleDatatypeNode(const DtString& name);
127  virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeNodeList();
128  virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeEndNode();
129 
130  virtual void addComplexDatatypeNode(DtComplexDatatypeNode*);
131  virtual DtComplexDatatypeNode* getComplexDatatypeNode(const DtString& name);
132  virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeNodeList();
133  virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeEndNode();
134 
135  virtual void addArrayDatatypeNode(DtArrayDatatypeNode*);
136  virtual DtArrayDatatypeNode* getArrayDatatypeNode(const DtString& name);
137  virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeNodeList();
138  virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeEndNode();
139 
140  virtual void addEnumeratedDatatypeNode(DtEnumeratedDatatypeNode*);
141  virtual DtEnumeratedDatatypeNode* getEnumeratedDatatypeNode(const DtString& name);
142  virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeNodeList();
143  virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeEndNode();
144 
145  virtual void addNoteNode(DtNoteNode*);
146  virtual DtNoteNode* getNoteNode(int val);
147  virtual std::list<DtNoteNode*>::iterator getNoteNodeList();
148  virtual std::list<DtNoteNode*>::iterator getNoteEndNode();
149 
150  virtual void addUpdateRateNode(DtUpdateRateNode* node);
151  virtual DtUpdateRateNode* getUpdateRateNode(const DtString& name);
152  virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateNodeList();
153  virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateEndNode();
154 
155 
157 
158  virtual void setObjectClassRoot(DtObjectClassFedNode* node);
159  virtual DtObjectClassFedNode* objectClassRoot();
161 
162  virtual void addObjectClassNode(DtObjectClassFedNode*);
163 #ifdef DtHLA
164  virtual DtObjectClassFedNode* getObjectClassNode(RTI::ObjectClassHandle value);
165 #endif
166 
167  virtual DtObjectClassFedNode* getObjectClassNode(const DtString& name = "");
168  virtual DtObjectClassFedNode* getObjectClassNodeByID(int id);
169  virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeBegin();
170  virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeEnd();
171  virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeRBegin();
172  virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeREnd();
173 
175 
176  virtual void setInteractionClassRoot(DtInteractionClassFedNode* node);
177  virtual DtInteractionClassFedNode* interactionClassRoot();
179 
180  virtual void addInteractionClassNode(DtInteractionClassFedNode*);
181 #ifdef DtHLA
182  virtual DtInteractionClassFedNode* getInteractionClassNode(RTI::InteractionClassHandle value);
183 #endif
184 
185  virtual DtInteractionClassFedNode* getInteractionClassNode(const DtString& name = "");
186  virtual DtInteractionClassFedNode* getInteractionClassNodeByID(int id);
187  virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeBegin();
188  virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeEnd();
189  virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeRBegin();
190  virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeREnd();
191 
192  virtual void addSwitchNode(DtBoolAttrNode*);
193  virtual DtBoolAttrNode* getSwitchNode(const DtString& name);
194  virtual std::list<DtBoolAttrNode*>::iterator getSwitchNodeList();
195  virtual std::list<DtBoolAttrNode*>::iterator getSwitchEndNode();
196 
197  virtual void addTransportationNode(DtDescriptionNode*);
198  virtual DtDescriptionNode* getTransportationNode(const DtString& name);
199  virtual std::list<DtDescriptionNode*>::iterator getTransportationNodeList();
200  virtual std::list<DtDescriptionNode*>::iterator getTransportationEndNode();
201 
202  virtual void addDimensionNode(DtDimensionNode*);
203  virtual DtDimensionNode* getDimensionNode(const DtString& name);
204  virtual std::list<DtDimensionNode*>::iterator getDimensionNodeList();
205  virtual std::list<DtDimensionNode*>::iterator getDimensionEndNode();
206 
207  virtual void addSynchroNode(DtSynchroNode*);
208  virtual DtSynchroNode* getSynchroNode(const DtString& name);
209  virtual std::list<DtSynchroNode*>::iterator getSynchroNodeList();
210  virtual std::list<DtSynchroNode*>::iterator getSynchroEndNode();
211 
212  virtual void addTagNode(DtTagNode*);
213  virtual DtTagNode* getTagNode(const DtString& name);
214  virtual std::list<DtTagNode*>::iterator getTagNodeList();
215  virtual std::list<DtTagNode*>::iterator getTagEndNode();
216 
217  virtual DtTimeRepNode* getTimeRepNode();
218 
219  virtual void merge(DtOMTTree* mergeTree);
220 
221 protected:
226  virtual DtObjectClassFedNode* mergeObjectNode(const DtObjectClassFedNode& sourceNode);
231  virtual DtInteractionClassFedNode* mergeInteractionNode(const DtInteractionClassFedNode& sourceNode);
232  virtual void mergeObjects(DtOMTTree* mergeTree);
233  virtual void mergeInteractions(DtOMTTree* mergeTree);
234  virtual void mergeDatatypes(DtOMTTree* mergeTree);
235  virtual void mergeDimensions(DtOMTTree* mergTree);
236  virtual void mergeNotes(DtOMTTree* mergeTree);
237  virtual void mergeSyncPoints(DtOMTTree* mergeTree);
238  virtual void mergeTransportations(DtOMTTree* mergeTree);
239  virtual void mergeUpdateRates(DtOMTTree* mergeTree);
240 
241 protected:
242  std::list<DtNoteNode*> myNoteNodes;
243  std::list<DtObjectClassFedNode*> myObjectClassNodes;
244  std::list<DtInteractionClassFedNode*> myInteractionClassNodes;
245  std::list<DtComplexDatatypeNode*> myComplexDatatypeNodes;
246  std::list<DtEnumeratedDatatypeNode*> myEnumeratedDatatypeNodes;
247 
248  //1516 only tables
249  std::list<DtBasicDataRepresentationNode*> myBasicDataRepresentationNodes;
250  std::list<DtSimpleDatatypeNode*> mySimpleDatatypeNodes;
251  std::list<DtArrayDatatypeNode*> myArrayDatatypeNodes;
252  std::list<DtFixedDatatypeNode*> myFixedDatatypeNodes;
253  std::list<DtVariantDatatypeNode*> myVariantDatatypeNodes;
254  std::list<DtBoolAttrNode*> mySwitchNodes;
255  std::list<DtDescriptionNode*> myTransportationNodes;
256  std::list<DtDimensionNode*> myDimensionNodes;
257  std::list<DtSynchroNode*> mySynchroNodes;
258  std::list<DtTagNode*> myTagNodes;
259 
261  std::list<DtUpdateRateNode*> myUpdateRateNodes;
262 
264 
267 
288 
289 };
290 
291 

Document ID: Generated on Wed Jan 7 13:31:29 EST 2015 from SVN revision 149162
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)