1#ifndef HYDROBRICKS_SPLITTER_H
2#define HYDROBRICKS_SPLITTER_H
9#include "SettingsModel.h"
32 [[nodiscard]]
virtual bool IsValid()
const = 0;
76 throw ShouldNotHappen(
"Splitter::AttachForcing - Should not be called (virtual)");
94 _inputs.push_back(flux);
104 _outputs.push_back(std::move(flux));
140 vector<Flux*> _inputs;
141 std::vector<std::unique_ptr<Flux>> _outputs;
142 const float _unitValue = 1.0f;
Definition HydroUnit.h:18
Exception for code paths that should never be reached.
Definition Exceptions.h:133
static std::unique_ptr< Splitter > Factory(const SplitterSettings &splitterSettings)
Definition Splitter.cpp:69
virtual void AttachForcing(Forcing *)
Definition Splitter.h:75
virtual void SetHydroUnitProperties(HydroUnit *)
Definition Splitter.h:85
virtual double * GetValuePointer(const string &name)=0
virtual void SetParameters(const SplitterSettings &splitterSettings)=0
virtual bool IsValid() const =0
virtual void Validate() const
Definition Splitter.cpp:101
void AttachFluxIn(Flux *flux)
Definition Splitter.h:92
const string & GetName() const
Definition Splitter.h:125
void AttachFluxOut(std::unique_ptr< Flux > flux)
Definition Splitter.h:102
void SetName(const string &name)
Definition Splitter.h:134
const float * GetParameterValuePointerOrUnit(const SplitterSettings &splitterSettings, const string &name)
Definition Splitter.cpp:90
const float * GetParameterValuePointer(const SplitterSettings &splitterSettings, const string &name)
Definition Splitter.cpp:79
Definition SettingsModel.h:39