CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/CondFormats/DTObjects/interface/DTBufferTree.h

Go to the documentation of this file.
00001 #ifndef DTBufferTree_H
00002 #define DTBufferTree_H
00003 
00014 //----------------------
00015 // Base Class Headers --
00016 //----------------------
00017 
00018 
00019 //------------------------------------
00020 // Collaborating Class Declarations --
00021 //------------------------------------
00022 
00023 
00024 //---------------
00025 // C++ Headers --
00026 //---------------
00027 #include <map>
00028 #include <vector>
00029 
00030 //              ---------------------
00031 //              -- Class Interface --
00032 //              ---------------------
00033 
00034 template <class Key, class Content>
00035 class DTBufferTree {
00036 
00037 public:
00038 
00039   typedef typename std::vector<Key>               CompositeKey;
00040   typedef typename std::vector<Key>::const_iterator ElementKey;
00041 
00044   DTBufferTree();
00045 
00048   virtual ~DTBufferTree();
00049 
00052 
00053   int insert( ElementKey fKey, ElementKey lKey, const Content& cont );
00054   int insert(  const Key& k,                    const Content& cont );
00055   int find(   ElementKey fKey, ElementKey lKey,       Content& cont );
00056   int find(    const Key& k,                          Content& cont );
00057   std::vector<Content> contList();
00058   static void setDefault( const Content& def );
00059 
00060  private:
00061 
00062   typedef DTBufferTree<Key,Content> map_node;
00063   typedef typename std::map<Key,DTBufferTree<Key,Content>*>           map_cont;
00064   typedef typename std::map<Key,DTBufferTree<Key,Content>*>::iterator map_iter;
00065 
00066   Content bufferContent;
00067   map_cont bufferMap;
00068 
00069   static Content defaultContent;
00070 
00071   void treeCont( std::vector<Content>& contentList );
00072   void leafCont( std::vector<Content>& contentList );
00073 
00074 };
00075 
00076 #include "CondFormats/DTObjects/interface/DTBufferTree.icc"
00077 
00078 #endif // DTBufferTree_H
00079