VR-Link API Documentation for HLA 1.3
xmlFedReader.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 #ifndef xmlFedReader_H_
00007 #define xmlFedReader_H_
00008 
00012 
00013 #include <stdio.h>
00014 #include <string>
00015 
00016 #include <vlutil/vlFedTarget.h>
00017 #include "fedReader.h"
00018 #include <vlutil/vlString.h>
00019 
00020 
00021 
00023 struct _xmlNode;
00024 struct _xmlDoc;
00025 typedef unsigned char xmlChar;
00026 typedef struct _xmlNode xmlNode;
00027 typedef struct _xmlDoc xmlDoc;
00028 
00029 #ifdef DtUSE_UTILITIES_NAMESPACE
00030 namespace DtUSE_UTILITIES_NAMESPACE
00031 {
00032 #endif
00033 
00038 class DT_DLL_MTL DtXmlFedReader : public DtFedReader
00039 {
00040 public:
00041 
00043    DtXmlFedReader();
00044 
00046    virtual ~DtXmlFedReader();
00047 
00048 private:
00049 
00051    DtXmlFedReader( const DtXmlFedReader& );
00052    DtXmlFedReader& operator=( const DtXmlFedReader& );
00053 
00054 public:
00055 
00058    virtual DtFedReadStatus readFedFilePtr(FILE* filePointer, DtFedTarget *fedTarget, 
00059       DtFilename fileName, bool strictCheckingEnabled=false, bool useDTD=false, bool dontParseSwitches=false );
00060 
00061    
00062 
00063 
00064 protected:
00065 
00067    virtual bool dtdValidate(xmlDoc* pDoc, const char * dtdFile);
00068 
00070    virtual DtFedReadStatus openFile(const char *fedFileName,
00071                                     xmlDoc  **newXmlDocTree);
00072 
00074    virtual xmlNode* getNodeByName( xmlNode* currentNode,
00075                                    const xmlChar* nodeName );
00077    virtual DtFedReadStatus processFed( xmlNode* fedObj );
00078    
00080    virtual DtFedReadStatus parseTransportationsList( xmlNode* currentNode );
00081 
00083    virtual DtFedReadStatus processObjects( xmlNode* currentNode );
00084 
00086    virtual DtFedReadStatus processInteractions( xmlNode* currentNode );
00087 
00089    virtual DtFedReadStatus parseObjectTree( xmlNode* currentNode,
00090                                             const DtString& parentName );
00091 
00093    virtual DtFedReadStatus parseAttribute( xmlNode* currentNode,
00094                                            const DtString& parentName );
00095 
00097    virtual DtFedReadStatus parseAttributeDimensions( xmlNode* currentNode,
00098       DtString const& objectClass, DtString const& attribute);
00099 
00101    virtual DtFedReadStatus parseInteractionTree( xmlNode* currentNode,
00102                                                  const DtString& parentName );
00103 
00105    virtual DtFedReadStatus parseInteractionDimensions( xmlNode *currentNode,
00106       DtString const& interactionClass );
00107 
00109    virtual DtFedReadStatus parseDimensionList( xmlNode* currentNode );
00110 
00112    virtual DtFedReadStatus parseDimension( xmlNode* currentNode );
00113 
00115    virtual DtFedReadStatus parseSwitches( xmlNode* currentNode );
00116 
00118    virtual DtFedReadStatus parseParameter( xmlNode* currentNode,
00119                                            const DtString& parentName );
00120 
00122    virtual DtFedReadStatus parseTransportationTree( xmlNode* currentNode );
00123 
00125    virtual DtFedReadStatus parseDataTypeTree( xmlNode* currentNode );
00126 
00128    virtual DtFedReadStatus parseNotesTree( xmlNode* currentNode );
00129 
00131    virtual DtFedReadStatus parseTagsTree( xmlNode* currentNode );
00132 
00134    virtual DtFedReadStatus parseBasicDataTypesTree( xmlNode* currentNode );
00135 
00137    virtual DtFedReadStatus parseSimpleDataTypesTree( xmlNode* currentNode );
00138 
00140    virtual DtFedReadStatus parseArrayDataTypesTree( xmlNode* currentNode );
00141 
00143    virtual DtFedReadStatus parseEnumeratedDataTypesTree( xmlNode* currentNode );
00144 
00146    virtual DtFedReadStatus parseFixedRecordDataTypesTree( xmlNode* currentNode );
00147 
00149    virtual DtFedReadStatus parseVariantRecordDataTypesTree( xmlNode* currentNode );
00150 
00152    virtual void appendNodeProperties(xmlNode*  currentNode, DtString& output) const;
00153 
00155    virtual void appendNodeContent(xmlNode*  node, DtString& output) const;
00156 
00158    virtual bool isBlankText(xmlNode*  node) const;
00159 
00161    virtual const xmlChar* propertyByName( xmlNode* node, const xmlChar *name);
00162 
00166    virtual bool getPropertyByName( xmlNode* node, const xmlChar *name,
00167       DtString& propertyContent);
00168 
00170    virtual DtFedReadStatus getTransportType( xmlNode* currentNode,
00171                                              DtTransportType& transportType );
00172 
00174    virtual DtFedReadStatus getOrderType( xmlNode* currentNode,
00175                                          DtOrderType& orderType );
00176 
00177    bool convertStringToULong(std::string numericString,
00178       unsigned long& value);
00179 #ifdef __sgi__
00180    void clipPrefix(std::string& valueSpec, char c);
00181 #else
00182    template<typename operandType> void clipPrefix(std::string& valueSpec,
00183       operandType c);
00184 #endif
00185 
00186 protected:
00187 
00188    DtFedTarget* myFedTarget;
00189 
00190 };
00191 
00192 #ifdef DtUSE_UTILITIES_NAMESPACE
00193 } 
00194 #endif
00195 
00196 #endif  //! xmlFedReader_H_
00197 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)