DISPLACE  1.0
A spatial model of fisheries to help sustainable fishing and maritime spatial planning
windfarmsstats.h
Go to the documentation of this file.
1 #ifndef WINDFARMSSTATS_H
2 #define WINDFARMSSTATS_H
3 
4 #include <QVector>
5 #include <mutex>
6 
8 {
9 public:
10  struct StatData {
11  double kWh = 0.0;
12  double kWproduction = 0.0;
13 
14  StatData() {}
15  void clear() {
16  kWh = 0.0;
17  kWproduction = 0.0;
18  }
19  };
20 
21 private:
22  bool mDirty = false;
23  QVector<QVector<StatData>> mDataPerWindFarmTypeAndWindFarmId;
24  mutable std::mutex mMutex;
25 
26  StatData &get(int windfarmid, int windfarmtype);
27  const StatData &get(int windfarmid, int windfarmtype) const;
28 
29 public:
31  ~WindfarmsStats() noexcept = default;
32 
35 
36  WindfarmsStats &operator = (const WindfarmsStats &b);
37  WindfarmsStats &operator = (WindfarmsStats &&b);
38 
39  bool dirty() const { return mDirty; }
40  void setDirty(bool dirty = true) { mDirty = dirty; }
41  void clear();
42 
43  void collectkWh(int step, int windfarmid, int windfarmtypeid, double kWh);
44  void collectkWproduction(int step, int windfarmid, int windfarmtypeid, double kWproduction);
45 
46  double kWhForWindfarmAndWindfarmGroup(int windfarmid, int windfarmtypeid) const;
47  double kWProductionForWindfarmAndWindfarmGroup(int windfarmid, int windfarmtypeid) const;
48 
49  const QVector<QVector<StatData>> data() const { return mDataPerWindFarmTypeAndWindFarmId; }
50 
52 };
53 
54 #endif // WINDFARMSSTATS_H
double kWh
Definition: windfarmsstats.h:11
~WindfarmsStats() noexcept=default
StatData()
Definition: windfarmsstats.h:14
void collectkWh(int step, int windfarmid, int windfarmtypeid, double kWh)
Definition: windfarmsstats.cpp:93
void clear()
Definition: windfarmsstats.cpp:81
void collectkWproduction(int step, int windfarmid, int windfarmtypeid, double kWproduction)
Definition: windfarmsstats.cpp:101
double kWproduction
Definition: windfarmsstats.h:12
static const WindfarmsStats::StatData NoData
Definition: windfarmsstats.h:51
const QVector< QVector< StatData > > data() const
Definition: windfarmsstats.h:49
Definition: windfarmsstats.h:7
bool dirty() const
Definition: windfarmsstats.h:39
void setDirty(bool dirty=true)
Definition: windfarmsstats.h:40
void clear()
Definition: windfarmsstats.h:15
double kWhForWindfarmAndWindfarmGroup(int windfarmid, int windfarmtypeid) const
Definition: windfarmsstats.cpp:109
Definition: windfarmsstats.h:10
double kWProductionForWindfarmAndWindfarmGroup(int windfarmid, int windfarmtypeid) const
Definition: windfarmsstats.cpp:114
WindfarmsStats()
Definition: windfarmsstats.cpp:7