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