DISPLACE  1.0
A spatial model of fisheries to help sustainable fishing and maritime spatial planning
vesselvmsliketable.h
Go to the documentation of this file.
1 #ifndef VESSELVMSLIKETABLE_H
2 #define VESSELVMSLIKETABLE_H
3 
4 #include "commons_global.h"
5 #include "idtypes.h"
6 
7 #include <functional>
8 
9 #include "sqlitefielddef.h"
10 #include "sqlitetable.h"
11 
12 #include <vector>
13 #include <string>
14 
15 using namespace sqlite;
16 
17 class COMMONSSHARED_EXPORT VesselVmsLikeTable : public sqlite::SQLiteTable
18 {
19 private:
20  struct Impl;
21  std::unique_ptr<Impl> p;
22 
23  void init();
24 public:
25  FieldDef<FieldType::Integer> fldId = makeFieldDef("Id", FieldType::Integer()).notNull();
26  FieldDef<FieldType::Integer> fldTStep = makeFieldDef("TStep",FieldType::Integer()).notNull();
27  FieldDef<FieldType::Integer> fldTStepDep = makeFieldDef("TStepDep",FieldType::Integer()).notNull();
28  FieldDef<FieldType::Real> fldPosLong = makeFieldDef("Long", FieldType::Real()).notNull();
29  FieldDef<FieldType::Real> fldPosLat = makeFieldDef("Lat", FieldType::Real()).notNull();
30  FieldDef<FieldType::Real> fldCourse = makeFieldDef("Course", FieldType::Real()).notNull();
31  FieldDef<FieldType::Real> fldCumFuel = makeFieldDef("CumFuel", FieldType::Real()).notNull();
32  FieldDef<FieldType::Integer> fldState = makeFieldDef("State", FieldType::Integer()).notNull();
33 
34 public:
35  VesselVmsLikeTable(std::shared_ptr<sqlite::SQLiteStorage> db, std::string name);
36  ~VesselVmsLikeTable() noexcept;
37 
38  void dropAndCreate();
39 
40  struct Log {
41  int id;
43  double p_long, p_lat, p_course, cum_fuel;
44  int state;
45  };
46 
47  void insertLog (const Log &log);
48  void queryAllVesselsAtStep (int tstep, std::function<bool(const Log &)>);
49 };
50 
51 #endif // VESSELVMSLIKETABLE_H
double p_long
Definition: vesselvmsliketable.h:43
int id
Definition: vesselvmsliketable.h:41
Definition: sqliteoutputstorage.h:33
Definition: vesselvmsliketable.h:40
int tstep_dep
Definition: vesselvmsliketable.h:42
int tstep
Definition: main.cpp:205
Definition: vesselvmsliketable.cpp:9
Definition: vesselvmsliketable.h:17
int state
Definition: vesselvmsliketable.h:44
#define COMMONSSHARED_EXPORT
Definition: commons_global.h:23