Go to the documentation of this file.00001
00002
00003
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
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