/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventFilter/HltProcessor/HltConfig/HltConfig-01-01-05/HltConfig/MyFrame.h

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

Generated on Tue Nov 29 23:12:05 2016 for BOSS_7.0.2 by  doxygen 1.4.7