Go to the documentation of this file.00001 #ifndef INCLUDE_ORA_MULTIINDEXDATATRIE_H
00002 #define INCLUDE_ORA_MULTIINDEXDATATRIE_H
00003
00004 #include <string>
00005 #include <vector>
00006
00007 #include "CondCore/ORA/interface/Record.h"
00008
00009
00010 namespace ora {
00011
00012
00013
00014 class MultiIndexDataTrie {
00015 public:
00016 MultiIndexDataTrie();
00017 virtual ~MultiIndexDataTrie();
00018
00019 size_t push( const std::vector<int>& indexes, Record & data );
00020
00021 void lookupAndClear( const std::vector<int>& indexes, Record & rec );
00022
00023 void clear();
00024 size_t size() const;
00025 size_t branchSize( const std::vector<int>& indexes, size_t depth = 0) const;
00026
00027 size_t totalSize() const;
00028
00029
00030
00031
00032
00033
00034 private:
00035
00036 std::vector<MultiIndexDataTrie*> m_children;
00037 Record m_data;
00038
00039 };
00040
00041 }
00042
00043 #endif
00044