![]() |
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 <omtReader/omtReader.h> 00010 #include <vlutil/vlString.h> 00011 #include <mtl/mtl.h> 00012 00013 class DtOMTTree; 00014 class DtComplexComponentNode; 00015 class DtEnumerationNode; 00016 class DtAttributeFedNode; 00017 class DtParameterFedNode; 00018 class DtExerciseConn; 00019 class DtObjectClassFedNode; 00020 class DtInteractionClassFedNode; 00021 00022 class DT_DLL_OMTREADER DtOMTFileReader 00023 { 00024 00025 public: 00026 00028 DtOMTFileReader(); 00029 00031 virtual ~DtOMTFileReader(); 00032 00036 virtual DtOMTTree* readFile(const DtString& str, DtExerciseConn* ex = 0); 00037 00038 virtual const DtString& getLastError(); 00039 virtual void clearLastError(); 00040 00041 protected: 00042 00043 virtual DtOMTTree* processObjectModel(DtlObjPtr& ptr); 00044 00045 virtual void processName(DtlObjPtr& ptr, DtOMTTree*); 00046 virtual void processVersionNo(DtlObjPtr& ptr, DtOMTTree*); 00047 virtual void processType(DtlObjPtr& ptr, DtOMTTree*); 00048 virtual void processPurpose(DtlObjPtr& ptr, DtOMTTree*); 00049 virtual void processApplicationDomain(DtlObjPtr& ptr, DtOMTTree*); 00050 virtual void processSponsorOrgName(DtlObjPtr& ptr, DtOMTTree*); 00051 virtual void processPOCHonorificName(DtlObjPtr& ptr, DtOMTTree*); 00052 virtual void processPOCFirstName(DtlObjPtr& ptr, DtOMTTree*); 00053 virtual void processPOCLastName(DtlObjPtr& ptr, DtOMTTree*); 00054 virtual void processPOCOrgName(DtlObjPtr& ptr, DtOMTTree*); 00055 virtual void processPOCPhone(DtlObjPtr& ptr, DtOMTTree*); 00056 virtual void processPOCEmail(DtlObjPtr& ptr, DtOMTTree*); 00057 virtual void processModificationDate(DtlObjPtr& ptr, DtOMTTree*); 00058 virtual void processMOMVersion(DtlObjPtr& ptr, DtOMTTree*); 00059 virtual void processComplexDataType(DtlObjPtr& ptr, DtOMTTree*); 00060 virtual void processEnumeratedDataType(DtlObjPtr& ptr, DtOMTTree*); 00061 virtual void processNote(DtlObjPtr& ptr, DtOMTTree*); 00062 virtual void processObjectClass(DtlObjPtr& ptr, DtOMTTree*); 00063 virtual void processInteractionClass(DtlObjPtr& ptr, DtOMTTree*); 00064 00065 DtComplexComponentNode* processComplexComponent(DtlObjPtr& ptr); 00066 DtEnumerationNode* processEnumeration(DtlObjPtr& ptr); 00067 DtAttributeFedNode* processAttribute(DtlObjPtr& ptr); 00068 DtParameterFedNode* processParameter(DtlObjPtr& ptr); 00069 00070 protected: 00071 00073 // get the object class and attribute handles and link the children nodes with their parents. 00074 virtual void buildObjectClassTree(DtOMTTree* omtTree); 00075 00077 // get the interaction class and parameter handles and link the children nodes with their parents. 00078 virtual void buildInteractionClassTree(DtOMTTree* omtTree); 00079 00080 //Helper function for build tree 00081 virtual void setAttributeHandles(DtObjectClassFedNode* objNode); 00082 virtual void setParameterHandles(DtInteractionClassFedNode* objNode); 00083 00084 protected: 00085 DtString myLastError; 00086 DtExerciseConn* myExConn; 00087 00088 private: 00089 00091 DtOMTFileReader(const DtOMTFileReader& orig); 00092 00094 DtOMTFileReader& operator=(const DtOMTFileReader& rhs); 00095 00096 00097 00098 00099 }; 00100 00101