/home/martin/workspace/OpenStreetNav/src/osmdb/OsmDatabase.h
Go to the documentation of this file.
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_ */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines