CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/CondCore/ORA/src/TableRegister.h

Go to the documentation of this file.
00001 #ifndef INCLUDE_ORA_TABLEREGISTER_H
00002 #define INCLUDE_ORA_TABLEREGISTER_H
00003 
00004 //
00005 #include <string>
00006 #include <set>
00007 #include <map>
00008 #include <vector>
00009 
00010 namespace coral{
00011   class ISchema;
00012 }
00013 
00014 namespace ora {
00015 
00016   class TableRegister {
00017     
00018     public:
00019 
00020     explicit TableRegister( coral::ISchema& schema );
00021 
00022     virtual ~TableRegister();
00023 
00024     bool checkTable(const std::string& tableName);
00025 
00026     bool checkColumn(const std::string& tableName, const std::string& columnName);
00027 
00028     size_t numberOfColumns(const std::string& tableName);
00029 
00030     void insertTable(const std::string& tableName);
00031 
00032     bool insertColumn(const std::string& tableName, const std::string& columnName );
00033 
00034     bool insertColumns(const std::string& tableName, const std::vector<std::string>& columns );
00035 
00036     private:
00037 
00038     void init();
00039 
00040     private:
00041 
00042     coral::ISchema& m_schema;
00043 
00044     bool m_init;
00045 
00046     std::map<std::string,std::set<std::string> > m_register;
00047 
00048     const std::string* m_currentTable;
00049 
00050     std::set<std::string>* m_currentColumns;
00051 
00052   };
00053 
00054 }
00055 
00056 #endif