CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MultiIndexDataTrie.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_MULTIINDEXDATATRIE_H
2 #define INCLUDE_ORA_MULTIINDEXDATATRIE_H
3 
4 #include <string>
5 #include <vector>
6 //#include <memory>
8 
9 
10 namespace ora {
11 
12 
13  // class describing an elementary part of data to be stored
15  public:
17  virtual ~MultiIndexDataTrie();
18 
19  size_t push( const std::vector<int>& indexes, Record & data );
20  //const Record& lookup( const std::vector<int>& indexes ) const;
21  void lookupAndClear( const std::vector<int>& indexes, Record & rec );
22 
23  void clear();
24  size_t size() const;
25  size_t branchSize( const std::vector<int>& indexes, size_t depth = 0) const;
26 
27  size_t totalSize() const;
28 
29  //void print() const;
30 
31  //private:
32  //void recursivePrint( const std::string& prev ) const;
33 
34  private:
35 
36  std::vector<MultiIndexDataTrie*> m_children;
38 
39  };
40 
41 }
42 
43 #endif
44 
size_t push(const std::vector< int > &indexes, Record &data)
void lookupAndClear(const std::vector< int > &indexes, Record &rec)
std::vector< MultiIndexDataTrie * > m_children
size_t branchSize(const std::vector< int > &indexes, size_t depth=0) const