 |
helics
3.0.1
|
9 #include "basic_CoreTypes.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 GlobalFederateId
self,
152 GlobalFederateId ignore = GlobalFederateId{});
154 TimeData generateMinTimeDownstream(
const TimeDependencies& dependencies,
156 GlobalFederateId
self,
157 GlobalFederateId ignore = GlobalFederateId{});
159 TimeData generateMinTimeTotal(
const TimeDependencies& dependencies,
161 GlobalFederateId
self,
162 GlobalFederateId ignore = GlobalFederateId{});
164 void generateJsonOutputTimeData(Json::Value& output,
166 bool includeAggregates =
true);
168 void generateJsonOutputDependency(Json::Value& output,
const DependencyInfo& dep);
constexpr Time timeZero
Definition: helicsTime.hpp:31
bool isDependent(GlobalFederateId ofed) const
Definition: TimeDependencies.cpp:211
void resetIteratingTimeRequests(Time requestTime)
Definition: TimeDependencies.cpp:422
constexpr uint16_t delayed_timing_flag
overload of extra_flag2 to indicate the request is from federate with delayed timing
Definition: flagOperations.hpp:65
bool cyclic
Definition: TimeDependencies.hpp:57
void removeDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:303
auto end() const
Definition: TimeDependencies.hpp:108
bool isValid() const
Definition: GlobalFederateId.hpp:105
void removeInterdependence(GlobalFederateId id)
Definition: TimeDependencies.cpp:316
Definition: TimeDependencies.hpp:75
GlobalFederateId getMinDependency() const
Definition: TimeDependencies.cpp:363
void removeDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:265
void resetDependentEvents(Time grantTime)
Definition: TimeDependencies.cpp:435
Definition: TimeDependencies.hpp:36
bool dependent
indicator the dependency is a dependent object
Definition: TimeDependencies.hpp:60
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
Time Te
the next currently scheduled event
Definition: TimeDependencies.hpp:39
Definition: GlobalFederateId.hpp:68
Definition: ActionMessage.hpp:30
bool isDependency(GlobalFederateId ofed) const
Definition: TimeDependencies.cpp:202
void resetIteratingExecRequests()
Definition: TimeDependencies.cpp:378
@ iteration_requested_flag
indicator that an iteration has been requested
Definition: flagOperations.hpp:16
bool checkIfReadyForTimeGrant(bool iterating, Time desiredGrantTime) const
Definition: TimeDependencies.cpp:387
auto begin() const
Definition: TimeDependencies.hpp:106
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:85
bool nonGranting
indicator that the dependency is a non granting time coordinator
Definition: TimeDependencies.hpp:63
auto size() const
Definition: TimeDependencies.hpp:100
GlobalFederateId minFedActual
the actual forwarded minimum federate object
Definition: TimeDependencies.hpp:43
bool forwarding
indicator that the dependency is a forwarding time coordinator
Definition: TimeDependencies.hpp:62
constexpr Time negEpsilon
Definition: helicsTime.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:356
bool updateTime(const ActionMessage &m)
Definition: TimeDependencies.cpp:326
const DependencyInfo * getDependencyInfo(GlobalFederateId id) const
Definition: TimeDependencies.cpp:220
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:62
GlobalFederateId dest_id
20 fed_id for a targeted message
Definition: ActionMessage.hpp:39
bool addDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:240
Definition: TimeDependencies.hpp:53
time_state_t
Definition: TimeDependencies.hpp:18
bool addDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:278
bool checkIfReadyForExecEntry(bool iterating) const
Definition: TimeDependencies.cpp:337
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
bool hasActiveTimeDependencies() const
Definition: TimeDependencies.cpp:349
bool update(const TimeData &update)
Definition: TimeDependencies.cpp:96
bool delayedTiming
indicator that the dependency uses delayed timing
Definition: TimeDependencies.hpp:64
auto cend() const
Definition: TimeDependencies.hpp:112
GlobalFederateId fedID
identifier for the dependency
Definition: TimeDependencies.hpp:55
auto cbegin() const
Definition: TimeDependencies.hpp:110
bool isBroker() const
Definition: GlobalFederateId.hpp:103
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
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:88
TimeDependencies()=default
bool empty() const
Definition: TimeDependencies.hpp:115
GlobalFederateId minFed
identifier for the min dependency
Definition: TimeDependencies.hpp:42
DependencyInfo(GlobalFederateId id)
Definition: TimeDependencies.hpp:69
GlobalFederateId source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:37