 |
helics
2.8.1
|
9 #include "basic_core_types.hpp"
11 #include "json/forwards.h"
20 exec_requested_iterative = 1,
23 time_requested_iterative = 4,
28 enum class ConnectionType : uint8_t {
58 ConnectionType connection{ConnectionType::independent};
77 std::vector<DependencyInfo> dependencies;
100 auto size()
const {
return dependencies.size(); }
102 auto begin() {
return dependencies.begin(); }
104 auto end() {
return dependencies.end(); }
106 auto begin()
const {
return dependencies.cbegin(); }
108 auto end()
const {
return dependencies.cend(); }
110 auto cbegin()
const {
return dependencies.cbegin(); }
112 auto cend()
const {
return dependencies.cend(); }
115 bool empty()
const {
return dependencies.empty(); }
146 void setDependencyVector(
const std::vector<DependencyInfo>& deps) { dependencies = deps; }
149 TimeData generateMinTimeUpstream(
const TimeDependencies& dependencies,
151 global_federate_id
self,
152 global_federate_id ignore = global_federate_id());
154 TimeData generateMinTimeDownstream(
const TimeDependencies& dependencies,
156 global_federate_id
self,
157 global_federate_id ignore = global_federate_id());
159 TimeData generateMinTimeTotal(
const TimeDependencies& dependencies,
161 global_federate_id
self,
162 global_federate_id ignore = global_federate_id());
164 void generateJsonOutputTimeData(Json::Value& output,
166 bool includeAggregates =
true);
168 void generateJsonOutputDependency(Json::Value& output,
const DependencyInfo& dep);
constexpr Time timeZero
Definition: helics-time.hpp:31
global_federate_id source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:36
void removeDependency(global_federate_id id)
Definition: TimeDependencies.cpp:264
bool isDependency(global_federate_id ofed) const
Definition: TimeDependencies.cpp:201
void resetIteratingTimeRequests(Time requestTime)
Definition: TimeDependencies.cpp:421
constexpr uint16_t delayed_timing_flag
overload of extra_flag2 to indicate the request is from federate with delayed timing
Definition: flagOperations.hpp:55
bool cyclic
Definition: TimeDependencies.hpp:57
global_federate_id getMinDependency() const
Definition: TimeDependencies.cpp:362
auto end() const
Definition: TimeDependencies.hpp:108
bool addDependency(global_federate_id id)
Definition: TimeDependencies.cpp:239
Definition: TimeDependencies.hpp:75
Definition: global_federate_id.hpp:68
global_federate_id fedID
identifier for the dependency
Definition: TimeDependencies.hpp:55
void resetDependentEvents(Time grantTime)
Definition: TimeDependencies.cpp:434
DependencyInfo(global_federate_id id)
Definition: TimeDependencies.hpp:69
Definition: TimeDependencies.hpp:36
bool dependent
indicator the dependency is a dependent object
Definition: TimeDependencies.hpp:60
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
Time Te
the next currently scheduled event
Definition: TimeDependencies.hpp:39
Definition: ActionMessage.hpp:29
void resetIteratingExecRequests()
Definition: TimeDependencies.cpp:377
@ iteration_requested_flag
indicator that an iteration has been requested
Definition: flagOperations.hpp:16
bool checkIfReadyForTimeGrant(bool iterating, Time desiredGrantTime) const
Definition: TimeDependencies.cpp:386
auto begin() const
Definition: TimeDependencies.hpp:106
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:75
bool nonGranting
indicator that the dependency is a non granting time coordinator
Definition: TimeDependencies.hpp:63
auto size() const
Definition: TimeDependencies.hpp:100
bool isValid() const
Definition: global_federate_id.hpp:108
bool forwarding
indicator that the dependency is a forwarding time coordinator
Definition: TimeDependencies.hpp:62
global_federate_id minFedActual
the actual forwarded minimum federate object
Definition: TimeDependencies.hpp:43
constexpr Time negEpsilon
Definition: helics-time.hpp:35
Time next
next possible message or value
Definition: TimeDependencies.hpp:38
Time TeAlt
the second min event
Definition: TimeDependencies.hpp:41
int activeDependencyCount() const
Definition: TimeDependencies.cpp:355
bool updateTime(const ActionMessage &m)
Definition: TimeDependencies.cpp:325
auto begin()
Definition: TimeDependencies.hpp:102
constexpr uint16_t non_granting_flag
overload of extra_flag1 to indicate the request is from a non-granting federate
Definition: flagOperations.hpp:52
bool addDependent(global_federate_id id)
Definition: TimeDependencies.cpp:277
bool isBroker() const
Definition: global_federate_id.hpp:106
Definition: TimeDependencies.hpp:53
void removeInterdependence(global_federate_id id)
Definition: TimeDependencies.cpp:315
bool isDependent(global_federate_id ofed) const
Definition: TimeDependencies.cpp:210
time_state_t
Definition: TimeDependencies.hpp:18
bool checkIfReadyForExecEntry(bool iterating) const
Definition: TimeDependencies.cpp:336
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
@ error
only print errors
Definition: loggingHelper.hpp:22
bool hasActiveTimeDependencies() const
Definition: TimeDependencies.cpp:348
bool update(const TimeData &update)
Definition: TimeDependencies.cpp:95
bool delayedTiming
indicator that the dependency uses delayed timing
Definition: TimeDependencies.hpp:64
auto cend() const
Definition: TimeDependencies.hpp:112
auto cbegin() const
Definition: TimeDependencies.hpp:110
Time minDe
min dependency event time
Definition: TimeDependencies.hpp:40
bool dependency
indicator that the dependency is an actual dependency
Definition: TimeDependencies.hpp:61
auto end()
Definition: TimeDependencies.hpp:104
global_federate_id dest_id
20 fed_id for a targeted message
Definition: ActionMessage.hpp:38
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:89
TimeDependencies()=default
bool empty() const
Definition: TimeDependencies.hpp:115
@ other
Definition: helics_definitions.hpp:113
global_federate_id minFed
identifier for the min dependency
Definition: TimeDependencies.hpp:42
const DependencyInfo * getDependencyInfo(global_federate_id id) const
Definition: TimeDependencies.cpp:219
@ iterating
indicator that the iterations need to continue
void removeDependent(global_federate_id id)
Definition: TimeDependencies.cpp:302