00001 #ifndef MYFRAME_H 00002 #define MYFRAME_H 00003 00004 // STL 00005 #include <string> 00006 #include <vector> 00007 #include <list> 00008 #include <utility> 00009 00010 #include <xercesc/util/PlatformUtils.hpp> 00011 #include <xercesc/parsers/AbstractDOMParser.hpp> 00012 #include <xercesc/dom/DOMImplementation.hpp> 00013 #include <xercesc/dom/DOMImplementationLS.hpp> 00014 #include <xercesc/dom/DOMImplementationRegistry.hpp> 00015 //#include <xercesc/dom/DOMBuilder.hpp> 00016 #include <xercesc/dom/DOMException.hpp> 00017 #include <xercesc/dom/DOMDocument.hpp> 00018 #include <xercesc/dom/DOMNodeList.hpp> 00019 #include <xercesc/dom/DOMError.hpp> 00020 #include <xercesc/dom/DOMLocator.hpp> 00021 // XERCES4C DOM API 00022 #include <xercesc/dom/DOM.hpp> 00023 00024 #include "HltTools/MessageSvcProvider.h" 00025 #include "HltSteerData/HltCriteria.h" 00026 00027 XERCES_CPP_NAMESPACE_USE 00028 00029 namespace HltProcessor 00030 { 00031 class Signature; 00032 class Sequence; 00033 00034 class MyFrame 00035 { 00036 public: 00037 /* The instance method for the singleton pattern */ 00038 static MyFrame* instance(); 00039 static void destruct(); 00040 00041 /* The init method in which beasically everything is calculated and done. 00042 Ti delegates work to the XMLTE and XMLSIgnature classes. */ 00043 void init(const std::string,const std::string); 00044 00045 void makeTableVector(); 00046 00047 /* XML finalisation and some printout and cleanup */ 00048 void final(); 00049 00050 /* Methods returning the configuration vector for the L2 and EF. */ 00051 const std::vector<std::pair<Signature*, Sequence*> >& getTablesVector() const; 00052 00053 /* Needed for some of the algortihmic methods */ 00054 //inline int getNumSequenceTables() const {return m_FrameNumSequenceTables;} 00055 00056 const double DOMToDouble(const XMLCh * thisDOMString) const; 00057 00058 protected: 00059 /* constructor and desctructor protected in singleton pattern. */ 00060 MyFrame(); 00061 ~MyFrame(); 00062 00063 private: 00064 /* private method tp build the list of sequences from the XML file */ 00065 void buildSequenceList(const DOMNode *, bool); 00066 00067 /* Method to check the sequence list for consistency and completeness */ 00068 // bool checkSequenceList(); 00069 00070 /* Builds the signature list from the XML file */ 00071 void buildSignatureList(const DOMNode *, bool); 00072 00073 private: 00074 /* needed for singleton pattern */ 00075 static MyFrame* s_FrameInstance; 00076 00077 /* XML file names */ 00078 char* m_FrameSequenceListFile; 00079 char* m_FrameSignatureListFile; 00080 00081 /* Members for getting the sizes of the trees */ 00082 int m_FrameNumSequenceTables; 00083 int m_FrameNumTables; 00084 int m_FrameAbsolutMaxStep; 00085 00086 /* These are needed for the MessageSvc */ 00087 MessageSvcProvider* m_msgSvcProvider; 00088 std::string m_thisName; 00089 00090 /* DOM node pointers */ 00091 DOMNode *m_Signature_DocNode; 00092 DOMNode *m_Sequence_DocNode; 00093 00094 std::vector<Signature*> m_SignatureVec; 00095 std::vector<Sequence*> m_SequenceVec; 00096 00097 std::vector<std::pair<Signature*, Sequence*> > m_TableVector; 00098 00099 int m_idSequence; 00100 int m_idSignature; 00101 int m_idCriteria; 00102 int m_idItem; 00103 00104 bool m_first; 00105 }; // End of MyFrame class bracket 00106 00107 } // End of namespace bracket 00108 00109 #endif // #ifndef MYFRAME_H