OpenTREP Logo  0.07.7
C++ Open Travel Request Parsing Library
DBManager.hpp
Go to the documentation of this file.
1 #ifndef __OPENTREP_CMD_DBMANAGER_HPP
2 #define __OPENTREP_CMD_DBMANAGER_HPP
3 
4 // //////////////////////////////////////////////////////////////////////
5 // Import section
6 // //////////////////////////////////////////////////////////////////////
7 // OpenTrep
9 #include <opentrep/Location.hpp>
10 #include <opentrep/DBType.hpp>
12 
13 // Forward declarations
14 namespace soci {
15  class session;
16  class statement;
17 }
18 
19 namespace OPENTREP {
20 
21  // Forward declarations
22  struct PlaceKey;
23 
24 
42  class DBManager {
43  public:
62  static bool createSQLDBUser (const DBType&, const SQLDBConnectionString_T&,
63  const DeploymentNumber_T&);
64 
90  static soci::session* initSQLDBSession (const DBType&,
92 
93 
106  static void terminateSQLDBSession (const DBType&,
108  soci::session&);
109 
117  static void createSQLDBTables (soci::session&);
118 
124  static void createSQLDBIndexes (soci::session&);
125 
131  static NbOfDBEntries_T displayCount (soci::session&);
132 
138  static NbOfDBEntries_T displayAll (soci::session&);
139 
156  static NbOfDBEntries_T getPORByIATACode (soci::session&, const IATACode_T&,
158  const bool iUniqueEntry);
159 
170  static NbOfDBEntries_T getPORByICAOCode (soci::session&, const ICAOCode_T&,
171  LocationList_T&);
172 
183  static NbOfDBEntries_T getPORByFAACode (soci::session&, const FAACode_T&,
184  LocationList_T&);
185 
198  static NbOfDBEntries_T getPORByUNLOCode (soci::session&, const UNLOCode_T&,
200  const bool iUniqueEntry);
201 
212  static NbOfDBEntries_T getPORByUICCode (soci::session&, const UICCode_T&,
213  LocationList_T&);
214 
225  static NbOfDBEntries_T getPORByGeonameID (soci::session&,
226  const GeonamesID_T&,
227  LocationList_T&);
228 
236  static void insertPlaceInDB (soci::session&, const Place&);
237 
245  static void updatePlaceInDB (soci::session&, const Place&);
246 
247 
248  public:
256  static std::string prepareSelectAllBlobStatement (soci::session&,
257  soci::statement&);
258 
267  static void prepareSelectFromCoordStatement (soci::session&,
268  soci::statement&,
269  const double& iLatitude,
270  const double& iLongitude);
271 
282  static bool iterateOnStatement (soci::statement&, const std::string&);
283 
284 
285  private:
294  static void
295  prepareSelectBlobOnIataCodeStatement (soci::session&, soci::statement&,
296  const std::string& iIataCode,
297  std::string& ioSerialisedPlaceStr);
306  static void
307  prepareSelectBlobOnIcaoCodeStatement (soci::session&, soci::statement&,
308  const std::string& iIcaoCode,
309  std::string& ioSerialisedPlaceStr);
318  static void
319  prepareSelectBlobOnFaaCodeStatement (soci::session&, soci::statement&,
320  const std::string& iFaaCode,
321  std::string& ioSerialisedPlaceStr);
330  static void
331  prepareSelectBlobOnUNLOCodeStatement (soci::session&, soci::statement&,
332  const std::string& iUNLOCode,
333  std::string& ioSerialisedPlaceStr);
342  static void
343  prepareSelectBlobOnUICCodeStatement (soci::session&, soci::statement&,
344  const UICCode_T&,
345  std::string& ioSerialisedPlaceStr);
354  static void
355  prepareSelectBlobOnPlaceGeoIDStatement (soci::session&, soci::statement&,
356  const GeonamesID_T&,
357  std::string& ioSerialisedPlaceStr);
358 
359 
360  private:
364  DBManager() {}
368  DBManager (const DBManager&) {}
372  ~DBManager() {}
373  };
374 
375 }
376 #endif // __OPENTREP_CMD_DBMANAGER_HPP
OPENTREP::DBManager::terminateSQLDBSession
static void terminateSQLDBSession(const DBType &, const SQLDBConnectionString_T &, soci::session &)
Definition: DBManager.cpp:406
OPENTREP::DBManager::prepareSelectFromCoordStatement
static void prepareSelectFromCoordStatement(soci::session &, soci::statement &, const double &iLatitude, const double &iLongitude)
OPENTREP::DBManager::getPORByUICCode
static NbOfDBEntries_T getPORByUICCode(soci::session &, const UICCode_T &, LocationList_T &)
Definition: DBManager.cpp:1525
OPENTREP::NbOfDBEntries_T
unsigned int NbOfDBEntries_T
Definition: OPENTREP_Types.hpp:680
OPENTREP::DBManager
Class wrapping the access to an underlying SQL database.
Definition: DBManager.hpp:42
OPENTREP::DBManager::createSQLDBUser
static bool createSQLDBUser(const DBType &, const SQLDBConnectionString_T &, const DeploymentNumber_T &)
Definition: DBManager.cpp:35
OPENTREP::DBManager::getPORByIATACode
static NbOfDBEntries_T getPORByIATACode(soci::session &, const IATACode_T &, LocationList_T &, const bool iUniqueEntry)
Definition: DBManager.cpp:1172
OPENTREP::DBManager::initSQLDBSession
static soci::session * initSQLDBSession(const DBType &, const SQLDBConnectionString_T &)
Definition: DBManager.cpp:318
OPENTREP::UNLOCode_T
Definition: OPENTREP_Types.hpp:225
OPENTREP::ICAOCode_T
Definition: OPENTREP_Types.hpp:170
OPENTREP::UICCode_T
unsigned int UICCode_T
Definition: OPENTREP_Types.hpp:238
OPENTREP::IATACode_T
Definition: OPENTREP_Types.hpp:154
OPENTREP::SQLDBConnectionString_T
Definition: OPENTREP_Types.hpp:56
OPENTREP::DBManager::getPORByICAOCode
static NbOfDBEntries_T getPORByICAOCode(soci::session &, const ICAOCode_T &, LocationList_T &)
Definition: DBManager.cpp:1286
OPENTREP::DBManager::displayCount
static NbOfDBEntries_T displayCount(soci::session &)
Definition: DBManager.cpp:1106
soci
Definition: DBManager.hpp:14
OPENTREP::LocationList_T
std::list< Location > LocationList_T
Definition: LocationList.hpp:13
OPENTREP::DBManager::getPORByGeonameID
static NbOfDBEntries_T getPORByGeonameID(soci::session &, const GeonamesID_T &, LocationList_T &)
Definition: DBManager.cpp:1588
OPENTREP
Definition: BasChronometer.cpp:10
PlaceList.hpp
OPENTREP::DBManager::displayAll
static NbOfDBEntries_T displayAll(soci::session &)
Definition: DBManager.cpp:1132
Location.hpp
OPENTREP::DBManager::getPORByUNLOCode
static NbOfDBEntries_T getPORByUNLOCode(soci::session &, const UNLOCode_T &, LocationList_T &, const bool iUniqueEntry)
Definition: DBManager.cpp:1418
OPENTREP::DBManager::updatePlaceInDB
static void updatePlaceInDB(soci::session &, const Place &)
Definition: DBManager.cpp:1067
OPENTREP::DBManager::insertPlaceInDB
static void insertPlaceInDB(soci::session &, const Place &)
Definition: DBManager.cpp:954
DBType.hpp
OPENTREP::DeploymentNumber_T
unsigned short DeploymentNumber_T
Definition: OPENTREP_Types.hpp:108
OPENTREP::Place
Class modelling a place/POR (point of reference).
Definition: Place.hpp:29
OPENTREP::DBManager::iterateOnStatement
static bool iterateOnStatement(soci::statement &, const std::string &)
Definition: DBManager.cpp:933
OPENTREP::DBType
Enumeration of database types.
Definition: DBType.hpp:17
OPENTREP::DBManager::prepareSelectAllBlobStatement
static std::string prepareSelectAllBlobStatement(soci::session &, soci::statement &)
Definition: DBManager.cpp:709
OPENTREP_Types.hpp
OPENTREP::GeonamesID_T
unsigned int GeonamesID_T
Definition: OPENTREP_Types.hpp:182
OPENTREP::DBManager::createSQLDBTables
static void createSQLDBTables(soci::session &)
Definition: DBManager.cpp:460
OPENTREP::DBManager::getPORByFAACode
static NbOfDBEntries_T getPORByFAACode(soci::session &, const FAACode_T &, LocationList_T &)
Definition: DBManager.cpp:1352
OPENTREP::DBManager::createSQLDBIndexes
static void createSQLDBIndexes(soci::session &)
Definition: DBManager.cpp:595
OPENTREP::FAACode_T
Definition: OPENTREP_Types.hpp:199