DISPLACE  1.0
A spatial model of fisheries to help sustainable fishing and maritime spatial planning
nodesstattable.h
Go to the documentation of this file.
1 #ifndef POPSTATTABLE_H
2 #define POPSTATTABLE_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 using namespace sqlite;
12 
13 #include <vector>
14 #include <string>
15 #include <map>
16 
17 class Node;
18 
19 class COMMONSSHARED_EXPORT NodesStatTable : public SQLiteTable
20 {
21 private:
22  struct Impl;
23 
24  std::unique_ptr<Impl> p;
25 
26  FieldDef<FieldType::Integer> fldTStep = makeFieldDef("TStep",FieldType::Integer()).notNull();
27  FieldDef<FieldType::Integer> fldNodeId = makeFieldDef("NodeId",FieldType::Integer()).notNull();
28 
29  FieldDef<FieldType::Real> cumFTime = makeFieldDef("CumFTime",FieldType::Real()).notNull();
30  FieldDef<FieldType::Real> cumSwA = makeFieldDef("CumSwA",FieldType::Real()).notNull();
31  FieldDef<FieldType::Real> cumSubSurfSwA = makeFieldDef("CumSubSurfSwA",FieldType::Real()).notNull();
32  FieldDef<FieldType::Real> cumCatches = makeFieldDef("CumCatches",FieldType::Real()).notNull();
33  FieldDef<FieldType::Real> cumCatchesThrshld = makeFieldDef("CumCatchesThrshld",FieldType::Real()).notNull();
34  FieldDef<FieldType::Real> cumDisc = makeFieldDef("CumDiscards",FieldType::Real()).notNull();
35  FieldDef<FieldType::Real> cumDiscRatio = makeFieldDef("CumDiscardsRatio",FieldType::Real()).notNull();
36  FieldDef<FieldType::Real> nbChoked = makeFieldDef("NbChokedStks",FieldType::Real()).notNull();
37 
38  inline void init();
39 public:
40  NodesStatTable(std::shared_ptr<sqlite::SQLiteStorage> db, std::string name);
41  ~NodesStatTable() noexcept;
42  void dropAndCreate();
43 
44  bool insert (int tstep, Node *node);
45 
46  struct NodeStat {
48  int tstep;
49  double cumftime;
50  double cumswa;
51  double cumsubsurfswa;
52  double cumcatches;
54  double cumdisc;
55  double cumdiscratio;
56  double nbchoked;
57  };
58  void queryAllNodesAtStep(int tstep, std::function<bool(NodeStat stat)>);
59 };
60 
61 #endif // POPSTATTABLE_H
double cumdiscratio
Definition: nodesstattable.h:55
double cumftime
Definition: nodesstattable.h:49
Definition: Node.h:39
Definition: sqliteoutputstorage.h:33
Definition: nodesstattable.h:19
Definition: idtypes.h:52
int tstep
Definition: main.cpp:205
double cumcatches
Definition: nodesstattable.h:52
int tstep
Definition: nodesstattable.h:48
double cumcatchesthrshld
Definition: nodesstattable.h:53
Definition: nodesstattable.cpp:9
double nbchoked
Definition: nodesstattable.h:56
double cumsubsurfswa
Definition: nodesstattable.h:51
double cumdisc
Definition: nodesstattable.h:54
types::NodeId nodeId
Definition: nodesstattable.h:47
double cumswa
Definition: nodesstattable.h:50
Definition: nodesstattable.h:46
#define COMMONSSHARED_EXPORT
Definition: commons_global.h:23