00001 /* 00002 * OsmDatabase.h 00003 * 00004 * Created on: Nov 5, 2011 00005 * Author: martin 00006 */ 00007 00008 #ifndef OSMDATABASE_H_ 00009 #define OSMDATABASE_H_ 00010 00011 #include "../psql/psql.h" 00012 #include "../elements/osmelements.h" 00013 00014 namespace osmdb 00015 { 00016 00021 class OsmDatabase 00022 { 00023 public: 00028 OsmDatabase(psql::Database& db); 00029 virtual ~OsmDatabase(); 00030 00035 psql::Database& get_db(); 00040 void create_indexes_and_keys(); 00041 00042 void create_indexes(); 00043 00044 void create_foreign_keys(); 00045 00046 void create_primary_keys(); 00047 00051 void drop_indexes_and_keys(); 00052 00053 void drop_indexes(); 00054 00055 void drop_foreign_keys(); 00056 00057 void drop_primary_keys(); 00058 00062 void create_tables(); 00063 00064 void create_edge_tables(); 00065 00066 void create_edge_primary_keys(); 00067 00068 void create_edge_foreign_keys(); 00069 00070 void create_edge_indexes(); 00071 00072 void create_edge_keys_and_indexes(); 00073 00074 void drop_edge_primary_keys(); 00075 00076 void drop_edge_foreign_keys(); 00077 00078 void drop_edge_indexes(); 00079 00080 void drop_edge_keys_and_indexes(); 00081 00082 private: 00083 psql::Database& db; 00084 }; 00085 00086 } /* namespace osmdb */ 00087 #endif /* OSMDATABASE_H_ */