hydrobricks
Loading...
Searching...
No Matches
TimeSeriesDistributed.h
1#ifndef HYDROBRICKS_TIME_SERIES_DISTRIBUTED_H
2#define HYDROBRICKS_TIME_SERIES_DISTRIBUTED_H
3
4#include <memory>
5
6#include "Includes.h"
7#include "TimeSeries.h"
8
10 public:
11 TimeSeriesDistributed(VariableType type);
12
13 ~TimeSeriesDistributed() override;
14
21 void AddData(std::unique_ptr<TimeSeriesData> data, int unitId);
22
26 [[nodiscard]] bool SetCursorToDate(double date) override;
27
31 [[nodiscard]] bool AdvanceOneTimeStep() override;
32
36 bool IsDistributed() const override {
37 return true;
38 }
39
43 double GetStart() const override;
44
48 double GetEnd() const override;
49
53 double GetTotal(const SettingsBasin* basinSettings) override;
54
58 TimeSeriesData* GetDataPointer(int unitId) override;
59
63 [[nodiscard]] bool IsValid() const override;
64
68 void Validate() const override;
69
70 protected:
71 vecInt _unitIds;
72 std::vector<std::unique_ptr<TimeSeriesData>> _data; // owning
73};
74
75#endif // HYDROBRICKS_TIME_SERIES_DISTRIBUTED_H
Definition SettingsBasin.h:47
Definition TimeSeriesData.h:6
Definition TimeSeriesDistributed.h:9
double GetTotal(const SettingsBasin *basinSettings) override
Definition TimeSeriesDistributed.cpp:44
bool SetCursorToDate(double date) override
Definition TimeSeriesDistributed.cpp:14
void Validate() const override
Definition TimeSeriesDistributed.cpp:114
double GetEnd() const override
Definition TimeSeriesDistributed.cpp:39
bool AdvanceOneTimeStep() override
Definition TimeSeriesDistributed.cpp:24
double GetStart() const override
Definition TimeSeriesDistributed.cpp:34
void AddData(std::unique_ptr< TimeSeriesData > data, int unitId)
Definition TimeSeriesDistributed.cpp:8
TimeSeriesData * GetDataPointer(int unitId) override
Definition TimeSeriesDistributed.cpp:57
bool IsDistributed() const override
Definition TimeSeriesDistributed.h:36
bool IsValid() const override
Definition TimeSeriesDistributed.cpp:69
Definition TimeSeries.h:8