![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00007 #pragma once 00008 00009 #include "complexDatatypeNode.h" 00010 #include "enumeratedDatatypeNode.h" 00011 #include "interactionClassFedNode.h" 00012 #include "objectClassFedNode.h" 00013 #include "simpleDatatypeNode.h" 00014 #include "arrayDatatypeNode.h" 00015 #include "fixedDatatypeNode.h" 00016 #include "variantDatatypeNode.h" 00017 #include "basicDataRepresentationNode.h" 00018 #include "noteNode.h" 00019 #include "boolAttrNode.h" 00020 #include "descriptionNode.h" 00021 #include "dimensionNode.h" 00022 #include "timeRepNode.h" 00023 #include "synchroNode.h" 00024 #include "tagNode.h" 00025 00026 class DtExerciseConn; 00027 00028 #include <vlutil/vlString.h> 00029 #include <vl/rtiNamespace.h> 00030 00031 #include <list> 00032 00033 class DtUpdateRateNode; 00034 00037 class DT_DLL_OMTREADER DtOMTTree 00038 { 00039 public: 00040 00042 DtOMTTree(); 00043 00045 virtual ~DtOMTTree(); 00046 00047 00048 virtual void setName(const DtString&); 00049 virtual const DtString& getName(); 00050 00051 virtual void setVersionNo(const DtString&); 00052 virtual const DtString& getVersionNo(); 00053 00054 virtual void setType(const DtString&); 00055 virtual const DtString& getType(); 00056 00057 virtual void setPurpose(const DtString&); 00058 virtual const DtString& getPurpose(); 00059 00060 virtual void setApplicationDomain(const DtString&); 00061 virtual const DtString& getApplicationDomain(); 00062 00063 virtual void setSponsorOrgName(const DtString&); 00064 virtual const DtString& getSponsorOrgName(); 00065 00066 virtual void setPOCHonorificName(const DtString&); 00067 virtual const DtString& getPOCHonorificName(); 00068 00069 virtual void setPOCFirstName(const DtString&); 00070 virtual const DtString& getPOCFirstName(); 00071 00072 virtual void setPOCLastName(const DtString&); 00073 virtual const DtString& getPOCLastName(); 00074 00075 virtual void setPOCOrgName(const DtString&); 00076 virtual const DtString& getPOCOrgName(); 00077 00078 virtual void setPOCPhone(const DtString&); 00079 virtual const DtString& getPOCPhone(); 00080 00081 virtual void setPOCEmail(const DtString&); 00082 virtual const DtString& getPOCEmail(); 00083 00084 virtual void setModificationDate(const DtString&); 00085 virtual const DtString& getModificationDate(); 00086 00087 virtual void setSecurityClassification(const DtString&); 00088 virtual const DtString& getSecurityClassification() const; 00089 00090 virtual void setReleaseRestriction(const DtString&); 00091 virtual const DtString& getReleaseRestriction() const; 00092 00093 virtual void setDescription(const DtString&); 00094 virtual const DtString& getDescription() const; 00095 00096 virtual void setMOMVersion(const DtString&); 00097 virtual const DtString& getMOMVersion(); 00098 00099 virtual void setReference(const DtString&); 00100 virtual const DtString& getReference(); 00101 00102 virtual void setOther(const DtString&); 00103 virtual const DtString& getOther(); 00104 00105 virtual void addBasicDataRepresentationNode(DtBasicDataRepresentationNode*); 00106 virtual DtBasicDataRepresentationNode* getBasicDataRepresentationNode(const DtString& name); 00107 virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationNodeList(); 00108 virtual std::list<DtBasicDataRepresentationNode*>::iterator getBasicDataRepresentationEndNode(); 00109 00110 virtual void addVariantDatatypeNode(DtVariantDatatypeNode*); 00111 virtual DtVariantDatatypeNode* getVariantDatatypeNode(const DtString& name); 00112 virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeNodeList(); 00113 virtual std::list<DtVariantDatatypeNode*>::iterator getVariantDatatypeEndNode(); 00114 00115 virtual void addFixedDatatypeNode(DtFixedDatatypeNode*); 00116 virtual DtFixedDatatypeNode* getFixedDatatypeNode(const DtString& name); 00117 virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeNodeList(); 00118 virtual std::list<DtFixedDatatypeNode*>::iterator getFixedDatatypeEndNode(); 00119 00120 virtual void addSimpleDatatypeNode(DtSimpleDatatypeNode*); 00121 virtual DtSimpleDatatypeNode* getSimpleDatatypeNode(const DtString& name); 00122 virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeNodeList(); 00123 virtual std::list<DtSimpleDatatypeNode*>::iterator getSimpleDatatypeEndNode(); 00124 00125 virtual void addComplexDatatypeNode(DtComplexDatatypeNode*); 00126 virtual DtComplexDatatypeNode* getComplexDatatypeNode(const DtString& name); 00127 virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeNodeList(); 00128 virtual std::list<DtComplexDatatypeNode*>::iterator getComplexDatatypeEndNode(); 00129 00130 virtual void addArrayDatatypeNode(DtArrayDatatypeNode*); 00131 virtual DtArrayDatatypeNode* getArrayDatatypeNode(const DtString& name); 00132 virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeNodeList(); 00133 virtual std::list<DtArrayDatatypeNode*>::iterator getArrayDatatypeEndNode(); 00134 00135 virtual void addEnumeratedDatatypeNode(DtEnumeratedDatatypeNode*); 00136 virtual DtEnumeratedDatatypeNode* getEnumeratedDatatypeNode(const DtString& name); 00137 virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeNodeList(); 00138 virtual std::list<DtEnumeratedDatatypeNode*>::iterator getEnumeratedDatatypeEndNode(); 00139 00140 virtual void addNoteNode(DtNoteNode*); 00141 virtual DtNoteNode* getNoteNode(int val); 00142 virtual std::list<DtNoteNode*>::iterator getNoteNodeList(); 00143 virtual std::list<DtNoteNode*>::iterator getNoteEndNode(); 00144 00145 virtual void addUpdateRateNode(DtUpdateRateNode* node); 00146 virtual DtUpdateRateNode* getUpdateRateNode(const DtString& name); 00147 virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateNodeList(); 00148 virtual std::list<DtUpdateRateNode*>::iterator getUpdateRateEndNode(); 00149 00150 00152 00153 virtual void setObjectClassRoot(DtObjectClassFedNode* node); 00154 virtual DtObjectClassFedNode* objectClassRoot(); 00156 00157 virtual void addObjectClassNode(DtObjectClassFedNode*); 00158 virtual DtObjectClassFedNode* getObjectClassNode(RTI::ObjectClassHandle value); 00160 virtual DtObjectClassFedNode* getObjectClassNode(const DtString& name = ""); 00161 virtual DtObjectClassFedNode* getObjectClassNodeByID(int id); 00162 virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeBegin(); 00163 virtual std::list<DtObjectClassFedNode*>::iterator getObjectClassNodeEnd(); 00164 virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeRBegin(); 00165 virtual std::list<DtObjectClassFedNode*>::reverse_iterator getObjectClassNodeREnd(); 00166 00168 00169 virtual void setInteractionClassRoot(DtInteractionClassFedNode* node); 00170 virtual DtInteractionClassFedNode* interactionClassRoot(); 00172 00173 virtual void addInteractionClassNode(DtInteractionClassFedNode*); 00174 virtual DtInteractionClassFedNode* getInteractionClassNode(RTI::InteractionClassHandle value); 00176 virtual DtInteractionClassFedNode* getInteractionClassNode(const DtString& name = ""); 00177 virtual DtInteractionClassFedNode* getInteractionClassNodeByID(int id); 00178 virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeBegin(); 00179 virtual std::list<DtInteractionClassFedNode*>::iterator getInteractionClassNodeEnd(); 00180 virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeRBegin(); 00181 virtual std::list<DtInteractionClassFedNode*>::reverse_iterator getInteractionClassNodeREnd(); 00182 00183 virtual void addSwitchNode(DtBoolAttrNode*); 00184 virtual DtBoolAttrNode* getSwitchNode(const DtString& name); 00185 virtual std::list<DtBoolAttrNode*>::iterator getSwitchNodeList(); 00186 virtual std::list<DtBoolAttrNode*>::iterator getSwitchEndNode(); 00187 00188 virtual void addTransportationNode(DtDescriptionNode*); 00189 virtual DtDescriptionNode* getTransportationNode(const DtString& name); 00190 virtual std::list<DtDescriptionNode*>::iterator getTransportationNodeList(); 00191 virtual std::list<DtDescriptionNode*>::iterator getTransportationEndNode(); 00192 00193 virtual void addDimensionNode(DtDimensionNode*); 00194 virtual DtDimensionNode* getDimensionNode(const DtString& name); 00195 virtual std::list<DtDimensionNode*>::iterator getDimensionNodeList(); 00196 virtual std::list<DtDimensionNode*>::iterator getDimensionEndNode(); 00197 00198 virtual void addSynchroNode(DtSynchroNode*); 00199 virtual DtSynchroNode* getSynchroNode(const DtString& name); 00200 virtual std::list<DtSynchroNode*>::iterator getSynchroNodeList(); 00201 virtual std::list<DtSynchroNode*>::iterator getSynchroEndNode(); 00202 00203 virtual void addTagNode(DtTagNode*); 00204 virtual DtTagNode* getTagNode(const DtString& name); 00205 virtual std::list<DtTagNode*>::iterator getTagNodeList(); 00206 virtual std::list<DtTagNode*>::iterator getTagEndNode(); 00207 00208 virtual DtTimeRepNode* getTimeRepNode(); 00209 00210 virtual void merge(DtOMTTree* mergeTree); 00211 00212 protected: 00217 virtual DtObjectClassFedNode* mergeObjectNode(const DtObjectClassFedNode& sourceNode); 00222 virtual DtInteractionClassFedNode* mergeInteractionNode(const DtInteractionClassFedNode& sourceNode); 00223 virtual void mergeObjects(DtOMTTree* mergeTree); 00224 virtual void mergeInteractions(DtOMTTree* mergeTree); 00225 virtual void mergeDatatypes(DtOMTTree* mergeTree); 00226 virtual void mergeDimensions(DtOMTTree* mergTree); 00227 virtual void mergeNotes(DtOMTTree* mergeTree); 00228 virtual void mergeSyncPoints(DtOMTTree* mergeTree); 00229 virtual void mergeTransportations(DtOMTTree* mergeTree); 00230 virtual void mergeUpdateRates(DtOMTTree* mergeTree); 00231 00232 protected: 00233 std::list<DtNoteNode*> myNoteNodes; 00234 std::list<DtObjectClassFedNode*> myObjectClassNodes; 00235 std::list<DtInteractionClassFedNode*> myInteractionClassNodes; 00236 std::list<DtComplexDatatypeNode*> myComplexDatatypeNodes; 00237 std::list<DtEnumeratedDatatypeNode*> myEnumeratedDatatypeNodes; 00238 00239 //1516 only tables 00240 std::list<DtBasicDataRepresentationNode*> myBasicDataRepresentationNodes; 00241 std::list<DtSimpleDatatypeNode*> mySimpleDatatypeNodes; 00242 std::list<DtArrayDatatypeNode*> myArrayDatatypeNodes; 00243 std::list<DtFixedDatatypeNode*> myFixedDatatypeNodes; 00244 std::list<DtVariantDatatypeNode*> myVariantDatatypeNodes; 00245 std::list<DtBoolAttrNode*> mySwitchNodes; 00246 std::list<DtDescriptionNode*> myTransportationNodes; 00247 std::list<DtDimensionNode*> myDimensionNodes; 00248 std::list<DtSynchroNode*> mySynchroNodes; 00249 std::list<DtTagNode*> myTagNodes; 00250 00252 std::list<DtUpdateRateNode*> myUpdateRateNodes; 00253 00254 DtTimeRepNode* myTimeRepNode; 00255 00256 DtObjectClassFedNode* myObjectClassRoot; 00257 DtInteractionClassFedNode* myInteractionClassRoot; 00258 00259 DtString myName; 00260 DtString myVersionNo; 00261 DtString myType; 00262 DtString myPurpose; 00263 DtString myApplicationDomain; 00264 DtString mySponsorOrgName; 00265 DtString myPOCHonorificName; 00266 DtString myPOCFirstName; 00267 DtString myPOCLastName; 00268 DtString myPOCOrgName; 00269 DtString myPOCPhone; 00270 DtString myPOCEmail; 00271 DtString myModificationDate; 00272 DtString mySecurityClassification; 00273 DtString myReleaseRestriction; 00274 DtString myDescription; 00275 DtString myMOMVersion; 00276 DtString myReference; 00277 DtString myOther; 00278 00279 }; 00280 00281