OpenTREP Logo  0.07.4
C++ Open Travel Request Parsing Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
197  static NbOfDBEntries_T getPORByUNLOCode (soci::session&, const UNLOCode_T&,
198  LocationList_T&);
199 
210  static NbOfDBEntries_T getPORByUICCode (soci::session&, const UICCode_T&,
211  LocationList_T&);
212 
223  static NbOfDBEntries_T getPORByGeonameID (soci::session&,
224  const GeonamesID_T&,
225  LocationList_T&);
226 
234  static void insertPlaceInDB (soci::session&, const Place&);
235 
243  static void updatePlaceInDB (soci::session&, const Place&);
244 
245 
246  public:
254  static std::string prepareSelectAllBlobStatement (soci::session&,
255  soci::statement&);
256 
265  static void prepareSelectFromCoordStatement (soci::session&,
266  soci::statement&,
267  const double& iLatitude,
268  const double& iLongitude);
269 
280  static bool iterateOnStatement (soci::statement&, const std::string&);
281 
282 
283  private:
292  static void
293  prepareSelectBlobOnIataCodeStatement (soci::session&, soci::statement&,
294  const IATACode_T&,
295  std::string& ioSerialisedPlaceStr);
304  static void
305  prepareSelectBlobOnIcaoCodeStatement (soci::session&, soci::statement&,
306  const ICAOCode_T&,
307  std::string& ioSerialisedPlaceStr);
316  static void
317  prepareSelectBlobOnFaaCodeStatement (soci::session&, soci::statement&,
318  const FAACode_T&,
319  std::string& ioSerialisedPlaceStr);
328  static void
329  prepareSelectBlobOnUNLOCodeStatement (soci::session&, soci::statement&,
330  const UNLOCode_T&,
331  std::string& ioSerialisedPlaceStr);
340  static void
341  prepareSelectBlobOnUICCodeStatement (soci::session&, soci::statement&,
342  const UICCode_T&,
343  std::string& ioSerialisedPlaceStr);
352  static void
353  prepareSelectBlobOnPlaceGeoIDStatement (soci::session&, soci::statement&,
354  const GeonamesID_T&,
355  std::string& ioSerialisedPlaceStr);
356 
357 
358  private:
362  DBManager() {}
366  DBManager (const DBManager&) {}
370  ~DBManager() {}
371  };
372 
373 }
374 #endif // __OPENTREP_CMD_DBMANAGER_HPP
unsigned int GeonamesID_T
static void updatePlaceInDB(soci::session &, const Place &)
Definition: DBManager.cpp:1085
static NbOfDBEntries_T getPORByFAACode(soci::session &, const FAACode_T &, LocationList_T &)
Definition: DBManager.cpp:1345
unsigned int NbOfDBEntries_T
static bool createSQLDBUser(const DBType &, const SQLDBConnectionString_T &, const DeploymentNumber_T &)
Definition: DBManager.cpp:35
static std::string prepareSelectAllBlobStatement(soci::session &, soci::statement &)
Definition: DBManager.cpp:707
static void createSQLDBTables(soci::session &)
Definition: DBManager.cpp:460
static void terminateSQLDBSession(const DBType &, const SQLDBConnectionString_T &, soci::session &)
Definition: DBManager.cpp:406
static NbOfDBEntries_T getPORByUICCode(soci::session &, const UICCode_T &, LocationList_T &)
Definition: DBManager.cpp:1466
Enumeration of database types.
Definition: DBType.hpp:17
unsigned int UICCode_T
static NbOfDBEntries_T getPORByIATACode(soci::session &, const IATACode_T &, LocationList_T &, const bool iUniqueEntry)
Definition: DBManager.cpp:1190
static NbOfDBEntries_T displayCount(soci::session &)
Definition: DBManager.cpp:1124
Class modelling a place/POR (point of reference).
Definition: Place.hpp:29
std::list< Location > LocationList_T
static NbOfDBEntries_T getPORByUNLOCode(soci::session &, const UNLOCode_T &, LocationList_T &)
Definition: DBManager.cpp:1405
static bool iterateOnStatement(soci::statement &, const std::string &)
Definition: DBManager.cpp:951
static NbOfDBEntries_T displayAll(soci::session &)
Definition: DBManager.cpp:1150
static NbOfDBEntries_T getPORByGeonameID(soci::session &, const GeonamesID_T &, LocationList_T &)
Definition: DBManager.cpp:1529
static void prepareSelectFromCoordStatement(soci::session &, soci::statement &, const double &iLatitude, const double &iLongitude)
static NbOfDBEntries_T getPORByICAOCode(soci::session &, const ICAOCode_T &, LocationList_T &)
Definition: DBManager.cpp:1285
static void createSQLDBIndexes(soci::session &)
Definition: DBManager.cpp:595
static soci::session * initSQLDBSession(const DBType &, const SQLDBConnectionString_T &)
Definition: DBManager.cpp:318
unsigned short DeploymentNumber_T
static void insertPlaceInDB(soci::session &, const Place &)
Definition: DBManager.cpp:972
Class wrapping the access to an underlying SQL database.
Definition: DBManager.hpp:42