hydrobricks
Loading...
Searching...
No Matches
ActionsManager.h
1#ifndef HYDROBRICKS_ACTION_UPDATER_H
2#define HYDROBRICKS_ACTION_UPDATER_H
3
4#include "HydroUnit.h"
5#include "Includes.h"
6
7class Subbasin;
8class ModelHydro;
9class Action;
10
12 public:
14
15 virtual ~ActionsManager() = default;
16
20 void Reset();
21
28 return _model;
29 }
30
36 void SetModel(ModelHydro* model);
37
44 bool AddAction(Action* action);
45
51 [[nodiscard]] int GetActionCount() const;
52
58 [[nodiscard]] int GetSporadicActionItemCount() const;
59
65 void DateUpdate(double date);
66
72 [[nodiscard]] Subbasin* GetSubbasin() const;
73
80 [[nodiscard]] HydroUnit* GetHydroUnitById(int id) const;
81
87 [[nodiscard]] std::vector<HydroUnit*> GetHydroUnits() const;
88
94 const vecDouble& GetSporadicActionDates() const {
95 return _sporadicActionDates;
96 }
97
104 [[nodiscard]] bool IsValid() const;
105
112 void Validate() const;
113
114 protected:
115 ModelHydro* _model; // non-owning reference
116 int _cursorManager;
117 vector<Action*> _actions;
118 vecDouble _sporadicActionDates;
119 vecInt _sporadicActionIndices;
120 vecInt _recursiveActionIndices;
121
122 private:
123};
124
125#endif // HYDROBRICKS_ACTION_UPDATER_H
Definition Action.h:7
Definition ActionsManager.h:11
void SetModel(ModelHydro *model)
Definition ActionsManager.cpp:12
bool AddAction(Action *action)
Definition ActionsManager.cpp:24
void DateUpdate(double date)
Definition ActionsManager.cpp:80
void Reset()
Definition ActionsManager.cpp:16
void Validate() const
Definition ActionsManager.cpp:128
const vecDouble & GetSporadicActionDates() const
Definition ActionsManager.h:94
Subbasin * GetSubbasin() const
Definition ActionsManager.cpp:106
int GetActionCount() const
Definition ActionsManager.cpp:68
HydroUnit * GetHydroUnitById(int id) const
Definition ActionsManager.cpp:110
std::vector< HydroUnit * > GetHydroUnits() const
Definition ActionsManager.cpp:114
ModelHydro * GetModel() const
Definition ActionsManager.h:27
int GetSporadicActionItemCount() const
Definition ActionsManager.cpp:72
bool IsValid() const
Definition ActionsManager.cpp:118
Definition HydroUnit.h:18
Definition ModelHydro.h:16
Definition Subbasin.h:17