helics  3.3.0
TimeCoordinator.hpp
1 /*
2 Copyright (c) 2017-2022,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
9 #include "../common/GuardedTypes.hpp"
10 #include "ActionMessage.hpp"
11 #include "BaseTimeCoordinator.hpp"
12 
13 #include "json/forwards.h"
14 #include <atomic>
15 #include <functional>
16 #include <string>
17 #include <utility>
18 #include <vector>
19 
20 namespace helics {
21 
24  no_effect = 0,
25  processed,
27 };
28 
30 class tcoptions {
31  public:
32  Time timeDelta = Time::epsilon();
33  Time inputDelay = timeZero;
34  Time outputDelay = timeZero;
35  Time offset = timeZero;
36  Time period = timeZero;
37  // Time rtLag = timeZero;
38  // Time rtLead = timeZero;
39  // bool observer = false;
40  // bool realtime = false;
41  // bool source_only = false;
42  bool wait_for_current_time_updates = false;
43  bool uninterruptible = false;
44  bool restrictive_time_policy = false;
47  bool event_triggered = false;
48  int maxIterations = 50;
49 };
50 
56  protected:
59  TimeData total;
60  mutable TimeData lastSend;
61  // the variables for time coordination
62  Time time_granted{Time::minVal()};
63  Time time_requested{Time::maxVal()};
67  Time time_allow{Time::minVal()};
68  Time time_exec{Time::maxVal()};
69  Time time_message{Time::maxVal()};
70  Time time_value{Time::maxVal()};
71 
73  Time time_grantBase{Time::minVal()};
75  Time time_block{Time::maxVal()};
76  Time maxTime{Time::maxVal()};
82  std::vector<std::pair<Time, int32_t>> timeBlocks;
85  std::uint8_t currentRestrictionLevel{0};
86 
87  public:
90 
92  bool hasInitUpdates{false};
94  bool hasIterationData{false};
97  bool needSendAll{false};
99  mutable bool triggered{false};
101  bool globalTime{false};
102 
103  protected:
105  bool dynamicJoining{false};
106 
107  std::atomic<int32_t> iteration{0};
108 
109  public:
111  TimeCoordinator() = default;
113  explicit TimeCoordinator(std::function<void(const ActionMessage&)> userSendMessageFunction):
114  BaseTimeCoordinator(std::move(userSendMessageFunction))
115  {
116  }
117 
119  void setProperty(int timeProperty, Time propertyVal);
121  void setProperty(int intProperty, int propertyVal);
123  void setOptionFlag(int optionFlag, bool value);
126 
128  Time getTimeProperty(int timeProperty) const;
130  bool getOptionFlag(int optionFlag) const;
132  int getIntegerProperty(int intProperty) const;
133 
135  Time getGrantedTime() const { return time_granted; }
139  Time allowedSendTime() const { return time_granted + info.outputDelay; }
141  std::vector<GlobalFederateId> getDependencies() const;
143  std::vector<GlobalFederateId> getDependents() const
144  {
145  return *dependent_federates.lock_shared();
146  }
150  int32_t getCurrentIteration() const { return iteration.load(); }
154  virtual bool updateTimeFactors() override;
158  void updateValueTime(Time valueUpdateTime, bool allowRequestSend);
162  void updateMessageTime(Time messageUpdateTime, bool allowRequestSend);
163 
164  void specifyNonGranting(bool value = true) { nonGranting = value; }
165 
166  private:
168  bool updateNextExecutionTime();
171  void updateNextPossibleEventTime();
173  Time getNextPossibleTime() const;
174  Time generateAllowedTime(Time testTime) const;
175  /* return true,true if the message was sent and skip federate was detected
176  true,false if the message was sent and skip federate was not detected
177  false,false, if the message was not sent
178  */
179  std::pair<bool, bool> checkAndSendTimeRequest(ActionMessage& upd, GlobalFederateId skip) const;
180 
181  void sendTimeRequest(GlobalFederateId triggerFed) const;
182  void updateTimeGrant();
184  bool transmitTimingMessages(ActionMessage& msg,
185  GlobalFederateId skipFed = GlobalFederateId{}) const;
186 
187  message_process_result processTimeBlockMessage(const ActionMessage& cmd);
188 
189  Time updateTimeBlocks(int32_t blockId, Time newTime);
190 
191  public:
195  message_process_result processTimeMessage(const ActionMessage& cmd);
196 
200  void processConfigUpdateMessage(const ActionMessage& cmd);
204  virtual bool addDependency(GlobalFederateId fedID) override;
208  virtual bool addDependent(GlobalFederateId fedID) override;
211  virtual void removeDependency(GlobalFederateId fedID) override;
214  virtual void removeDependent(GlobalFederateId fedID) override;
215 
218  checkExecEntry(GlobalFederateId triggerFed = GlobalFederateId{}) override;
219 
221  void sendUpdatedExecRequest(GlobalFederateId target = GlobalFederateId{},
222  GlobalFederateId minFed = GlobalFederateId{},
223  std::int32_t responseSequenceCounter = 0);
230  void timeRequest(Time nextTime,
231  IterationRequest iterate,
232  Time newValueTime,
233  Time newMessageTime);
234 
235  virtual void enteringExecMode(IterationRequest mode) override;
237  MessageProcessingResult checkTimeGrant(GlobalFederateId triggerFed = GlobalFederateId{});
239  void localError();
241  virtual std::string printTimeStatus() const override;
243  void generateConfig(Json::Value& base) const;
244 
246  virtual void generateDebuggingTimeInfo(Json::Value& base) const override;
247 
249  std::pair<GlobalFederateId, Time> getMinGrantedDependency() const;
251  void enterInitialization();
253  void requestTimeCheck();
254 
255  virtual Time getNextTime() const override;
256 };
257 
258 } // namespace helics
helics::timeZero
constexpr Time timeZero
Definition: helicsTime.hpp:31
helics::destination_target
@ destination_target
indicator that the target is a destination target
Definition: flagOperations.hpp:43
helics::TimeCoordinator::processConfigUpdateMessage
void processConfigUpdateMessage(const ActionMessage &cmd)
Definition: TimeCoordinator.cpp:1473
helics::TimeCoordinator::printTimeStatus
virtual std::string printTimeStatus() const override
Definition: TimeCoordinator.cpp:879
helics::TimeCoordinator::enterInitialization
void enterInitialization()
Definition: TimeCoordinator.cpp:305
helics::BaseTimeCoordinator::nonGranting
bool nonGranting
Definition: BaseTimeCoordinator.hpp:42
helics::ActionMessage::setExtraDestData
void setExtraDestData(int32_t data)
Definition: ActionMessage.hpp:161
helics::message_process_result::processed
@ processed
the message was used to update the current state
helics::TimeCoordinator::checkTimeGrant
MessageProcessingResult checkTimeGrant(GlobalFederateId triggerFed=GlobalFederateId{})
Definition: TimeCoordinator.cpp:480
helics::TimeDependencies::resetIteratingTimeRequests
void resetIteratingTimeRequests(Time requestTime)
Definition: TimeDependencies.cpp:638
helics::indicator_flag
@ indicator_flag
flag used for setting values
Definition: flagOperations.hpp:18
helics::GlobalFederateId::baseValue
constexpr BaseType baseValue() const
Definition: GlobalFederateId.hpp:84
helics::TimeCoordinator::getGrantedTime
Time getGrantedTime() const
Definition: TimeCoordinator.hpp:135
helics::BaseTimeCoordinator::dependencies
TimeDependencies dependencies
Definition: BaseTimeCoordinator.hpp:27
helics::TimeCoordinator::hasInitUpdates
bool hasInitUpdates
flag indicating that a value or message was received during initialization stage
Definition: TimeCoordinator.hpp:92
helics::TimeCoordinator::requestTimeCheck
void requestTimeCheck()
Definition: TimeCoordinator.cpp:328
helics::BaseTimeCoordinator::sendMessageFunction
std::function< void(const ActionMessage &)> sendMessageFunction
callback used to send the messages
Definition: BaseTimeCoordinator.hpp:29
helics::TimeData::responseSequenceCounter
std::int32_t responseSequenceCounter
Definition: TimeDependencies.hpp:74
helics::message_process_result::delay_processing
@ delay_processing
the message should be delayed and reprocessed later
helics::TimeDependencies::removeDependent
void removeDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:409
helics::TimeCoordinator::timeRequest
void timeRequest(Time nextTime, IterationRequest iterate, Time newValueTime, Time newMessageTime)
Definition: TimeCoordinator.cpp:103
helics::BaseTimeCoordinator::mSourceId
GlobalFederateId mSourceId
the identifier for inserting into the source id field of any generated messages;
Definition: BaseTimeCoordinator.hpp:32
helics::TimeCoordinator::dependent_federates
shared_guarded_m< std::vector< GlobalFederateId > > dependent_federates
these are to maintain an accessible record of dependent federates
Definition: TimeCoordinator.hpp:78
helics::TimeDependencies::checkAllPastExec
bool checkAllPastExec(bool iterating) const
Definition: TimeDependencies.cpp:443
helics_definitions.hpp
base helics enumerations for C++ API's, a namespace wrapper for the definitions defined in helics_enu...
helics::TimeDependencies::removeDependency
void removeDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:371
helics::TimeDependencies::resetDependentEvents
void resetDependentEvents(Time grantTime)
Definition: TimeDependencies.cpp:651
helics::TimeCoordinator::timeBlocks
std::vector< std::pair< Time, int32_t > > timeBlocks
blocks for a particular timeblocking link
Definition: TimeCoordinator.hpp:82
helics::BaseTimeCoordinator::disconnect
void disconnect()
Definition: BaseTimeCoordinator.cpp:79
helics::TimeData
Definition: TimeDependencies.hpp:57
helics::TimeData::interrupted
bool interrupted
indicator that the federates next event is a timing interruption
Definition: TimeDependencies.hpp:67
helics::TimeCoordinator::time_minminDe
Time time_minminDe
the minimum of the minimum dependency event Time
Definition: TimeCoordinator.hpp:65
helics::Time
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
helics::cBigTime
constexpr Time cBigTime
Definition: helicsTime.hpp:37
helics::TimeCoordinator::time_next
Time time_next
the next possible internal event time
Definition: TimeCoordinator.hpp:64
helics::TimeData::Te
Time Te
the next currently scheduled event
Definition: TimeDependencies.hpp:60
helics::TimeCoordinator::time_block
Time time_block
a blocking time to not grant time >= the specified time
Definition: TimeCoordinator.hpp:75
helics::GlobalFederateId
Definition: GlobalFederateId.hpp:72
helics::ActionMessage
Definition: ActionMessage.hpp:30
helics::parent_broker_id
constexpr GlobalBrokerId parent_broker_id
Definition: GlobalFederateId.hpp:64
helics::BaseTimeCoordinator::sequenceCounter
std::int32_t sequenceCounter
storage for sequence counter
Definition: BaseTimeCoordinator.hpp:33
helics::message_process_result
message_process_result
Definition: TimeCoordinator.hpp:23
helics::TimeCoordinator::processTimeMessage
message_process_result processTimeMessage(const ActionMessage &cmd)
Definition: TimeCoordinator.cpp:1217
helics::TimeDependencies::resetIteratingExecRequests
void resetIteratingExecRequests()
Definition: TimeDependencies.cpp:624
helics::TimeCoordinator::hasIterationData
bool hasIterationData
flag indicating that a value or message was received during iteration
Definition: TimeCoordinator.hpp:94
helics::appendMessage
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:925
helics::ActionMessage::counter
uint16_t counter
26 counter for filter tracking or message counter
Definition: ActionMessage.hpp:41
helics::IterationRequest::FORCE_ITERATION
@ FORCE_ITERATION
force an iteration whether it is needed or not
helics::TimeCoordinator::time_granted
Time time_granted
the most recent time granted
Definition: TimeCoordinator.hpp:62
helics::TimeCoordinator::globalTime
bool globalTime
true if using a global time manager parent
Definition: TimeCoordinator.hpp:101
helics::TimeDependencies::size
auto size() const
Definition: TimeDependencies.hpp:151
helics::TimeCoordinator::time_value
Time time_value
the time of the earliest value event
Definition: TimeCoordinator.hpp:70
helics::MessageProcessingResult::HALTED
@ HALTED
indicator that the simulation has been halted
helics::TimeCoordinator::dynamicJoining
bool dynamicJoining
if set to true the time coordinator is joining an ongoing co-simulation
Definition: TimeCoordinator.hpp:105
helics::TimeCoordinator::getOptionFlag
bool getOptionFlag(int optionFlag) const
Definition: TimeCoordinator.cpp:1455
helics::TimeData::sequenceCounter
std::int32_t sequenceCounter
the sequence Counter of the request
Definition: TimeDependencies.hpp:73
helics::gRootBrokerID
constexpr GlobalBrokerId gRootBrokerID
Definition: GlobalFederateId.hpp:66
helics::TimeData::next
Time next
next possible message or value
Definition: TimeDependencies.hpp:59
helics::TimeData::TeAlt
Time TeAlt
the second min event
Definition: TimeDependencies.hpp:62
helics::BaseTimeCoordinator::executionMode
bool executionMode
Definition: BaseTimeCoordinator.hpp:37
helics::TimeCoordinator::needSendAll
bool needSendAll
Definition: TimeCoordinator.hpp:97
helics::tcoptions::event_triggered
bool event_triggered
Definition: TimeCoordinator.hpp:47
helics::tcoptions
Definition: TimeCoordinator.hpp:30
helics::TimeCoordinator::updateMessageTime
void updateMessageTime(Time messageUpdateTime, bool allowRequestSend)
Definition: TimeCoordinator.cpp:396
helics::TimeCoordinator::setOptionFlag
void setOptionFlag(int optionFlag, bool value)
Definition: TimeCoordinator.cpp:1405
helics::delayed_timing_flag
@ delayed_timing_flag
flag to indicate the request is from federate with delayed timing
Definition: flagOperations.hpp:30
helics::IterationRequest
IterationRequest
Definition: CoreTypes.hpp:92
helics::TimeCoordinator::time_allow
Time time_allow
the current allowable time
Definition: TimeCoordinator.hpp:67
helics::TimeDependencies::getDependencyInfo
const DependencyInfo * getDependencyInfo(GlobalFederateId id) const
Definition: TimeDependencies.cpp:326
helics::ActionMessage::messageID
int32_t messageID
8 – message ID for a variety of purposes
Definition: ActionMessage.hpp:36
helics::TimeCoordinator::iteration
std::atomic< int32_t > iteration
current number of iterations
Definition: TimeCoordinator.hpp:107
helics::MessageProcessingResult::ITERATING
@ ITERATING
indicator that the iterations need to continue
helics::TimeCoordinator::getMinGrantedDependency
std::pair< GlobalFederateId, Time > getMinGrantedDependency() const
Definition: TimeCoordinator.cpp:1199
helics::TimeCoordinator::removeDependency
virtual void removeDependency(GlobalFederateId fedID) override
Definition: TimeCoordinator.cpp:911
helics::ActionMessage::setExtraData
void setExtraData(int32_t data)
Definition: ActionMessage.hpp:157
helics::setActionFlag
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:130
helics::TimeCoordinator::sendUpdatedExecRequest
void sendUpdatedExecRequest(GlobalFederateId target=GlobalFederateId{}, GlobalFederateId minFed=GlobalFederateId{}, std::int32_t responseSequenceCounter=0)
Definition: TimeCoordinator.cpp:957
helics::TimeDependencies::begin
auto begin()
Definition: TimeDependencies.hpp:153
helics::BaseTimeCoordinator::sendTimingInfo
void sendTimingInfo()
Definition: BaseTimeCoordinator.cpp:268
helics::IterationRequest::ITERATE_IF_NEEDED
@ ITERATE_IF_NEEDED
indicator that the iterations need to continue
helics::TimeCoordinator::time_minDe
Time time_minDe
the minimum event time of the dependencies
Definition: TimeCoordinator.hpp:66
helics::ActionMessage::payload
SmallBuffer payload
buffer to contain the data payload
Definition: ActionMessage.hpp:48
helics::TimeCoordinator::removeDependent
virtual void removeDependent(GlobalFederateId fedID) override
Definition: TimeCoordinator.cpp:922
helics::ActionMessage::dest_id
GlobalFederateId dest_id
20 fed_id for a targeted message
Definition: ActionMessage.hpp:39
helics::TimeCoordinator::updateValueTime
void updateValueTime(Time valueUpdateTime, bool allowRequestSend)
Definition: TimeCoordinator.cpp:210
helics::ActionMessage::Te
Time Te
48 event time
Definition: ActionMessage.hpp:45
helics::TimeCoordinator::checkExecEntry
virtual MessageProcessingResult checkExecEntry(GlobalFederateId triggerFed=GlobalFederateId{}) override
Definition: TimeCoordinator.cpp:992
helics::BaseTimeCoordinator::dependencyCount
int dependencyCount() const
Definition: BaseTimeCoordinator.cpp:258
helics::TimeCoordinator
Definition: TimeCoordinator.hpp:55
helics::BaseTimeCoordinator::addDependent
virtual bool addDependent(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:170
helics::TimeCoordinator::time_exec
Time time_exec
the time of the next targeted execution
Definition: TimeCoordinator.hpp:68
helics::TimeCoordinator::TimeCoordinator
TimeCoordinator(std::function< void(const ActionMessage &)> userSendMessageFunction)
Definition: TimeCoordinator.hpp:113
helics::TimeCoordinator::getTimeProperty
Time getTimeProperty(int timeProperty) const
Definition: TimeCoordinator.cpp:1425
helics::MessageProcessingResult::CONTINUE_PROCESSING
@ CONTINUE_PROCESSING
the current loop should continue
helics::TimeDependencies::updateTime
DependencyProcessingResult updateTime(const ActionMessage &m)
Definition: TimeDependencies.cpp:432
helics::MessageProcessingResult
MessageProcessingResult
Definition: CoreTypes.hpp:64
helics::non_granting_flag
@ non_granting_flag
flag to indicate the request is from a non-granting federate
Definition: flagOperations.hpp:25
helics::ActionMessage::getExtraData
int32_t getExtraData() const
Definition: ActionMessage.hpp:159
helics::TimeCoordinator::time_message
Time time_message
the time of the earliest message event
Definition: TimeCoordinator.hpp:69
helics::TimeCoordinator::setProperty
void setProperty(int timeProperty, Time propertyVal)
Definition: TimeCoordinator.cpp:1368
helics::TimeCoordinator::time_grantBase
Time time_grantBase
Definition: TimeCoordinator.hpp:73
helics::ActionMessage::Tdemin
Time Tdemin
56 min dependent event time
Definition: ActionMessage.hpp:46
helics::ActionMessage::actionTime
Time actionTime
40 the time an action took place or will take place //32
Definition: ActionMessage.hpp:44
helics::GlobalFederateId::isValid
constexpr bool isValid() const
Definition: GlobalFederateId.hpp:109
helics::interrupted_flag
@ interrupted_flag
flag to mark an interrupted event
Definition: flagOperations.hpp:28
helics::TimeCoordinator::updateTimeFactors
virtual bool updateTimeFactors() override
Definition: TimeCoordinator.cpp:430
helics::TimeCoordinator::setDynamicJoining
void setDynamicJoining()
Definition: TimeCoordinator.hpp:125
helics::BaseTimeCoordinator
Definition: BaseTimeCoordinator.hpp:25
helics::message_process_result::no_effect
@ no_effect
the message did not result in an update
helics
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
helics::TimeCoordinator::getRequestedTime
Time getRequestedTime() const
Definition: TimeCoordinator.hpp:137
helics::TimeCoordinator::getIntegerProperty
int getIntegerProperty(int intProperty) const
Definition: TimeCoordinator.cpp:1444
helics::TimeCoordinator::getDependencies
std::vector< GlobalFederateId > getDependencies() const
Definition: TimeCoordinator.cpp:933
helics::TimeCoordinator::getNextTime
virtual Time getNextTime() const override
Definition: TimeCoordinator.cpp:323
helics::TimeCoordinator::addDependent
virtual bool addDependent(GlobalFederateId fedID) override
Definition: TimeCoordinator.cpp:902
helics::iteration_requested_flag
@ iteration_requested_flag
Definition: flagOperations.hpp:23
helics::checkActionFlag
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:138
helics::MessageProcessingResult::NEXT_STEP
@ NEXT_STEP
indicator that the iterations have completed
helics::BaseTimeCoordinator::generateTimeRequest
ActionMessage generateTimeRequest(const TimeData &dep, GlobalFederateId fed, std::int32_t responseCode) const
Definition: BaseTimeCoordinator.cpp:288
helics::BaseTimeCoordinator::generateDebuggingTimeInfo
virtual void generateDebuggingTimeInfo(Json::Value &base) const
Definition: BaseTimeCoordinator.cpp:118
helics::TimeData::minDe
Time minDe
min dependency event time
Definition: TimeDependencies.hpp:61
helics::TimeCoordinator::dependency_federates
shared_guarded_m< std::vector< GlobalFederateId > > dependency_federates
these are to maintain an accessible record of dependency federates
Definition: TimeCoordinator.hpp:80
helics::TimeCoordinator::TimeCoordinator
TimeCoordinator()=default
helics::TimeCoordinator::time_requested
Time time_requested
the most recent time requested
Definition: TimeCoordinator.hpp:63
helics::TimeCoordinator::upstream
TimeData upstream
the variables for time coordination
Definition: TimeCoordinator.hpp:58
helics::TimeCoordinator::getDependents
std::vector< GlobalFederateId > getDependents() const
Definition: TimeCoordinator.hpp:143
gmlc::libguarded::shared_guarded
Definition: application_api/Federate.hpp:28
helics::timeEpsilon
constexpr Time timeEpsilon
Definition: helicsTime.hpp:33
helics::TimeCoordinator::iterating
IterationRequest iterating
indicator that the coordinator should be iteratingif need be
Definition: TimeCoordinator.hpp:89
helics::ActionMessage::action
action_message_def::action_t action() const noexcept
Definition: ActionMessage.hpp:88
helics::TimeCoordinator::info
tcoptions info
basic time control information
Definition: TimeCoordinator.hpp:84
helics::TimeDependencies::empty
bool empty() const
Definition: TimeDependencies.hpp:166
helics::TimeCoordinator::generateDebuggingTimeInfo
virtual void generateDebuggingTimeInfo(Json::Value &base) const override
Definition: TimeCoordinator.cpp:269
helics::TimeCoordinator::getCurrentIteration
int32_t getCurrentIteration() const
Definition: TimeCoordinator.hpp:150
helics::TimeData::minFed
GlobalFederateId minFed
identifier for the min dependency
Definition: TimeDependencies.hpp:63
flagOperations.hpp
helics::TimeDependencies::checkIfReadyForExecEntry
bool checkIfReadyForExecEntry(bool iterating, bool waiting) const
Definition: TimeDependencies.cpp:454
helics::IterationRequest::NO_ITERATIONS
@ NO_ITERATIONS
indicator that the iterations have completed
helics::TimeCoordinator::enteringExecMode
virtual void enteringExecMode(IterationRequest mode) override
Definition: TimeCoordinator.cpp:24
helics::TimeDependencies::checkIfReadyForTimeGrant
bool checkIfReadyForTimeGrant(bool iterating, Time desiredGrantTime, GrantDelayMode delayMode) const
Definition: TimeDependencies.cpp:494
helics::TimeCoordinator::generateConfig
void generateConfig(Json::Value &base) const
Definition: TimeCoordinator.cpp:244
helics::TimeCoordinator::localError
void localError()
Definition: TimeCoordinator.cpp:60
HELICS_INVALID_PROPERTY_VALUE
const int HELICS_INVALID_PROPERTY_VALUE
Definition: helics_enums.h:293
helics::TimeCoordinator::allowedSendTime
Time allowedSendTime() const
Definition: TimeCoordinator.hpp:139
helics::ActionMessage::source_id
GlobalFederateId source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:37
helics::TimeCoordinator::triggered
bool triggered
indicator the federate was triggered recently
Definition: TimeCoordinator.hpp:99
helics::TimeDependencies::checkForIssues
std::pair< int, std::string > checkForIssues(bool waiting) const
Definition: TimeDependencies.cpp:661
helics::TimeCoordinator::addDependency
virtual bool addDependency(GlobalFederateId fedID) override
Definition: TimeCoordinator.cpp:893
helics::BaseTimeCoordinator::addDependency
virtual bool addDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:156
helics::setIterationFlags
void setIterationFlags(ActionMessage &command, IterationRequest iterate)
Definition: ActionMessage.cpp:936