15 void SubtractAmountFromDynamicContentChange(
double change);
17 void AddAmountToDynamicContentChange(
double change);
19 void AddAmountToStaticContentChange(
double change);
21 virtual void ApplyConstraints(
double timeSte);
23 void SetOutgoingRatesToZero();
29 void SaveAsInitialState();
31 vecDoublePt GetDynamicContentChanges();
33 bool HasMaximumCapacity()
const {
34 return m_capacity !=
nullptr;
37 double GetMaximumCapacity() {
42 void SetMaximumCapacity(
float* value) {
43 if (m_infiniteStorage) {
44 throw ConceptionIssue(_(
"Trying to set the maximum capacity of an infinite storage."));
50 void SetAsInfiniteStorage() {
51 m_infiniteStorage =
true;
60 if (m_infiniteStorage) {
64 return m_content + m_contentChangeDynamic + m_contentChangeStatic;
67 double GetContentWithDynamicChanges()
const {
68 if (m_infiniteStorage) {
72 return m_content + m_contentChangeDynamic;
75 double GetContentWithoutChanges()
const {
76 if (m_infiniteStorage) {
83 double* GetContentPointer() {
87 void UpdateContent(
double value) {
88 if (m_infiniteStorage) {
89 throw ConceptionIssue(_(
"Trying to set the content of an infinite storage."));
95 double GetTargetFillingRatio();
99 return content > EPSILON_F && content > PRECISION;
103 return m_overflow !=
nullptr;
106 void LinkOverflow(
Process* overflow) {
107 m_overflow = overflow;
117 m_inputs.push_back(flux);
127 virtual bool ContentAccessible()
const;
129 Brick* GetParentBrick() {
136 double m_contentChangeDynamic;
137 double m_contentChangeStatic;
138 double m_initialState;
140 bool m_infiniteStorage;
143 vector<Flux*> m_inputs;