OpenTREP Logo  0.07.18
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:
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&,
172
183 static NbOfDBEntries_T getPORByFAACode (soci::session&, const FAACode_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&,
214
225 static NbOfDBEntries_T getPORByGeonameID (soci::session&,
226 const GeonamesID_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
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 &)
Definition DBManager.cpp:35
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