 |
helics
3.0.1
|
9 #include "ActionMessage.hpp"
10 #include "CoreFederateInfo.hpp"
11 #include "TimeDependencies.hpp"
13 #include "json/forwards.h"
35 std::function<void(
const ActionMessage&)> sendMessageFunction;
52 bool federatesOnly{
false};
54 ForwardingTimeCoordinator() =
default;
59 sendMessageFunction = std::move(userSendMessageFunction);
82 void transmitTimingMessagesUpstream(
ActionMessage& msg)
const;
86 ActionMessage generateTimeRequest(
const DependencyInfo& dep, GlobalFederateId fed)
const;
111 void setAsChild(GlobalFederateId fedID);
112 void setAsParent(GlobalFederateId fedID);
constexpr Time timeZero
Definition: helicsTime.hpp:31
Time getNextTime() const
Definition: ForwardingTimeCoordinator.hpp:131
bool restrictive_time_policy
flag indicating that a restrictive time policy should be used
Definition: ForwardingTimeCoordinator.hpp:48
constexpr BaseType baseValue() const
Definition: GlobalFederateId.hpp:80
void removeDependent(GlobalFederateId fedID)
Definition: ForwardingTimeCoordinator.cpp:199
void removeDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:303
bool addDependent(GlobalFederateId fedID)
Definition: ForwardingTimeCoordinator.cpp:173
void updateTimeFactors()
Definition: ForwardingTimeCoordinator.cpp:83
bool addDependency(GlobalFederateId fedID)
Definition: ForwardingTimeCoordinator.cpp:168
const DependencyInfo * getDependencyInfo(GlobalFederateId ofed) const
Definition: ForwardingTimeCoordinator.cpp:204
void removeDependency(GlobalFederateId fedID)
Definition: ForwardingTimeCoordinator.cpp:194
void generateDebuggingTimeInfo(Json::Value &base) const
Definition: ForwardingTimeCoordinator.cpp:130
Definition: TimeDependencies.hpp:75
base helics enumerations for C++ API's, a namespace wrapper for the definitions defined in helics_enu...
GlobalFederateId getMinDependency() const
Definition: TimeDependencies.cpp:363
GlobalFederateId source_id
the identifier for inserting into the source id field of any generated messages;
Definition: ForwardingTimeCoordinator.hpp:40
void removeDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:265
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
constexpr GlobalBrokerId parent_broker_id
Definition: GlobalFederateId.hpp:60
bool ignoreMinFed
Definition: ForwardingTimeCoordinator.hpp:46
bool isDependency(GlobalFederateId ofed) const
Definition: TimeDependencies.cpp:202
@ iteration_requested_flag
indicator that an iteration has been requested
Definition: flagOperations.hpp:16
Definition: ForwardingTimeCoordinator.hpp:26
bool processTimeMessage(const ActionMessage &cmd)
Definition: ForwardingTimeCoordinator.cpp:364
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:919
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:85
auto size() const
Definition: TimeDependencies.hpp:100
MessageProcessingResult checkExecEntry()
Definition: ForwardingTimeCoordinator.cpp:246
bool executionMode
flag that the coordinator has entered the execution Mode
Definition: ForwardingTimeCoordinator.hpp:44
void processDependencyUpdateMessage(const ActionMessage &cmd)
Definition: ForwardingTimeCoordinator.cpp:380
constexpr uint16_t child_flag
overload of extra_flag4 indicating a message is from a child object
Definition: flagOperations.hpp:49
Time next
next possible message or value
Definition: TimeDependencies.hpp:38
int activeDependencyCount() const
Definition: TimeDependencies.cpp:356
bool empty() const
Definition: ForwardingTimeCoordinator.hpp:79
const DependencyInfo * getDependencyInfo(GlobalFederateId id) const
Definition: TimeDependencies.cpp:220
int32_t messageID
8 – message ID for a variety of purposes
Definition: ActionMessage.hpp:36
void setMessageSender(std::function< void(const ActionMessage &)> userSendMessageFunction)
Definition: ForwardingTimeCoordinator.hpp:57
auto begin()
Definition: TimeDependencies.hpp:102
void enteringExecMode()
Definition: ForwardingTimeCoordinator.cpp:22
bool hasActiveTimeDependencies() const
Definition: ForwardingTimeCoordinator.cpp:231
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:77
SmallBuffer payload
buffer to contain the data payload
Definition: ActionMessage.hpp:48
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
@ ERROR_RESULT
indicator that an error has occurred
constexpr uint16_t parent_flag
overload of extra_flag3 indicating the message is from a parent object
Definition: flagOperations.hpp:46
void disconnect()
Definition: ForwardingTimeCoordinator.cpp:47
bool hasDelayedTimingFederate
indicator that federate is using delayed timing
Definition: ForwardingTimeCoordinator.hpp:50
bool addDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:278
bool noParent
indicator that the coordinator does not have parents
Definition: ForwardingTimeCoordinator.hpp:49
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 checkingExec
flag indicating that the coordinator is trying to enter the exec mode
Definition: ForwardingTimeCoordinator.hpp:43
bool hasActiveTimeDependencies() const
Definition: TimeDependencies.cpp:349
std::vector< GlobalFederateId > getDependencies() const
Definition: ForwardingTimeCoordinator.cpp:209
bool iterating
flag indicating that the min dependency is iterating
Definition: ForwardingTimeCoordinator.hpp:45
bool update(const TimeData &update)
Definition: TimeDependencies.cpp:96
GlobalFederateId fedID
identifier for the dependency
Definition: TimeDependencies.hpp:55
Time minDe
min dependency event time
Definition: TimeDependencies.hpp:40
bool dependency
indicator that the dependency is an actual dependency
Definition: TimeDependencies.hpp:61
int dependencyCount() const
Definition: ForwardingTimeCoordinator.cpp:236
std::vector< GlobalFederateId > getDependents() const
Definition: ForwardingTimeCoordinator.cpp:220
@ CONTINUE_PROCESSING
the current loop should continue
bool empty() const
Definition: TimeDependencies.hpp:115
GlobalFederateId minFed
identifier for the min dependency
Definition: TimeDependencies.hpp:42
bool isDependency(GlobalFederateId ofed) const
Definition: ForwardingTimeCoordinator.cpp:163
MessageProcessingResult
Definition: CoreTypes.hpp:64
std::string printTimeStatus() const
Definition: ForwardingTimeCoordinator.cpp:155
@ NEXT_STEP
indicator that the iterations have completed
GlobalFederateId getMinDependency() const
Definition: ForwardingTimeCoordinator.cpp:241
GlobalFederateId source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:37