OpenTREP Logo  0.07.20
C++ Open Travel Request Parsing Library
Loading...
Searching...
No Matches
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
10#include <opentrep/DBType.hpp>
12
13// Forward declarations
14namespace soci {
15 class session;
16 class statement;
17}
18
19namespace OPENTREP {
20
21 // Forward declarations
22 struct PlaceKey;
23
24
42 class DBManager {
43 public:
63 static bool createSQLDBUser (const DBType&, const SQLDBConnectionString_T&,
64 const DeploymentNumber_T&);
65
91 static soci::session* initSQLDBSession (const DBType&,
93
94
107 static void terminateSQLDBSession (const DBType&,
109 soci::session&);
110
118 static void createSQLDBTables (soci::session&);
119
125 static void createSQLDBIndexes (soci::session&);
126
133 static NbOfDBEntries_T displayCount (soci::session&);
134
141 static NbOfDBEntries_T displayAll (soci::session&);
142
159 static NbOfDBEntries_T getPORByIATACode (soci::session&, const IATACode_T&,
161 const bool iUniqueEntry);
162
173 static NbOfDBEntries_T getPORByICAOCode (soci::session&, const ICAOCode_T&,
175
186 static NbOfDBEntries_T getPORByFAACode (soci::session&, const FAACode_T&,
188
201 static NbOfDBEntries_T getPORByUNLOCode (soci::session&, const UNLOCode_T&,
203 const bool iUniqueEntry);
204
215 static NbOfDBEntries_T getPORByUICCode (soci::session&, const UICCode_T&,
217
229 static NbOfDBEntries_T getPORByGeonameID (soci::session&,
230 const GeonamesID_T&,
232
240 static void insertPlaceInDB (soci::session&, const Place&);
241
249 static void updatePlaceInDB (soci::session&, const Place&);
250
251
252 public:
260 static std::string prepareSelectAllBlobStatement (soci::session&,
261 soci::statement&);
262
271 static void prepareSelectFromCoordStatement (soci::session&,
272 soci::statement&,
273 const double& iLatitude,
274 const double& iLongitude);
275
286 static bool iterateOnStatement (soci::statement&, const std::string&);
287
288
289 private:
298 static void
299 prepareSelectBlobOnIataCodeStatement (soci::session&, soci::statement&,
300 const std::string& iIataCode,
301 std::string& ioSerialisedPlaceStr);
310 static void
311 prepareSelectBlobOnIcaoCodeStatement (soci::session&, soci::statement&,
312 const std::string& iIcaoCode,
313 std::string& ioSerialisedPlaceStr);
322 static void
323 prepareSelectBlobOnFaaCodeStatement (soci::session&, soci::statement&,
324 const std::string& iFaaCode,
325 std::string& ioSerialisedPlaceStr);
334 static void
335 prepareSelectBlobOnUNLOCodeStatement (soci::session&, soci::statement&,
336 const std::string& iUNLOCode,
337 std::string& ioSerialisedPlaceStr);
346 static void
347 prepareSelectBlobOnUICCodeStatement (soci::session&, soci::statement&,
348 const UICCode_T&,
349 std::string& ioSerialisedPlaceStr);
358 static void
359 prepareSelectBlobOnPlaceGeoIDStatement (soci::session&, soci::statement&,
360 const GeonamesID_T&,
361 std::string& ioSerialisedPlaceStr);
362
363
364 private:
368 DBManager() {}
372 DBManager (const DBManager&) {}
376 ~DBManager() {}
377 };
378
379}
380#endif // __OPENTREP_CMD_DBMANAGER_HPP
Class wrapping the access to an underlying SQL database.
Definition DBManager.hpp:42
static void terminateSQLDBSession(const DBType &, const SQLDBConnectionString_T &, soci::session &)
static void createSQLDBTables(soci::session &)
static std::string prepareSelectAllBlobStatement(soci::session &, soci::statement &)
static NbOfDBEntries_T getPORByUICCode(soci::session &, const UICCode_T &, LocationList_T &)
static NbOfDBEntries_T getPORByICAOCode(soci::session &, const ICAOCode_T &, LocationList_T &)
static soci::session * initSQLDBSession(const DBType &, const SQLDBConnectionString_T &)
static NbOfDBEntries_T getPORByFAACode(soci::session &, const FAACode_T &, LocationList_T &)
static void createSQLDBIndexes(soci::session &)
static void prepareSelectFromCoordStatement(soci::session &, soci::statement &, const double &iLatitude, const double &iLongitude)
static NbOfDBEntries_T displayCount(soci::session &)
static NbOfDBEntries_T displayAll(soci::session &)
static NbOfDBEntries_T getPORByUNLOCode(soci::session &, const UNLOCode_T &, LocationList_T &, const bool iUniqueEntry)
static NbOfDBEntries_T getPORByGeonameID(soci::session &, const GeonamesID_T &, LocationList_T &)
static NbOfDBEntries_T getPORByIATACode(soci::session &, const IATACode_T &, LocationList_T &, const bool iUniqueEntry)
static void updatePlaceInDB(soci::session &, const Place &)
static bool iterateOnStatement(soci::statement &, const std::string &)
static bool createSQLDBUser(const DBType &, const SQLDBConnectionString_T &, const DeploymentNumber_T &)
static void insertPlaceInDB(soci::session &, const Place &)
Class modelling a place/POR (point of reference).
Definition Place.hpp:29
unsigned int UICCode_T
unsigned int NbOfDBEntries_T
std::list< Location > LocationList_T
unsigned short DeploymentNumber_T
unsigned int GeonamesID_T
Enumeration of database types.
Definition DBType.hpp:17