9 #include "ActionMessage.hpp"
10 #include "CoreFederateInfo.hpp"
11 #include "TimeDependencies.hpp"
13 #include "json/forwards.h"
36 bool checkingExec{
false};
43 bool delayedTiming{
false};
44 bool disconnected{
false};
47 static constexpr std::int32_t TIME_COORDINATOR_VERSION{1};
48 BaseTimeCoordinator();
49 explicit BaseTimeCoordinator(std::function<
void(
const ActionMessage&)> userSendMessageFunction);
50 virtual ~BaseTimeCoordinator() =
default;
52 void setMessageSender(std::function<
void(
const ActionMessage&)> userSendMessageFunction);
82 std::int32_t responseCode)
const;
Definition: ActionMessage.hpp:30
Definition: BaseTimeCoordinator.hpp:25
const DependencyInfo * getDependencyInfo(GlobalFederateId ofed) const
Definition: BaseTimeCoordinator.cpp:237
bool executionMode
Definition: BaseTimeCoordinator.hpp:37
virtual void enteringExecMode(IterationRequest mode=IterationRequest::NO_ITERATIONS)
Definition: BaseTimeCoordinator.cpp:44
bool noParent
indicator that the coordinator does not have parents
Definition: BaseTimeCoordinator.hpp:34
virtual bool addDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:162
virtual void resetDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:232
virtual bool addDependent(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:176
bool hasActiveTimeDependencies() const
Definition: BaseTimeCoordinator.cpp:270
void sendTimingInfo()
Definition: BaseTimeCoordinator.cpp:285
virtual MessageProcessingResult checkExecEntry(GlobalFederateId triggerFed=GlobalFederateId{})=0
void processDependencyUpdateMessage(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:412
bool isDependency(GlobalFederateId ofed) const
Definition: BaseTimeCoordinator.cpp:157
TimeDependencies dependencies
Definition: BaseTimeCoordinator.hpp:27
virtual void generateDebuggingTimeInfo(Json::Value &base) const
Definition: BaseTimeCoordinator.cpp:124
Time getLastGrant(GlobalFederateId fedId) const
Definition: BaseTimeCoordinator.cpp:264
void disconnect()
Definition: BaseTimeCoordinator.cpp:79
bool empty() const
Definition: BaseTimeCoordinator.hpp:76
std::function< void(const ActionMessage &)> sendMessageFunction
callback used to send the messages
Definition: BaseTimeCoordinator.hpp:29
ActionMessage generateTimeRequest(const TimeData &dep, GlobalFederateId fed, std::int32_t responseCode) const
Definition: BaseTimeCoordinator.cpp:305
std::vector< GlobalFederateId > getDependents() const
Definition: BaseTimeCoordinator.cpp:253
bool restrictive_time_policy
flag indicating that a restrictive time policy should be used
Definition: BaseTimeCoordinator.hpp:39
GlobalFederateId mSourceId
the identifier for inserting into the source id field of any generated messages;
Definition: BaseTimeCoordinator.hpp:32
void setSourceId(GlobalFederateId sourceId)
Definition: BaseTimeCoordinator.hpp:62
GlobalFederateId getMinDependency() const
Definition: BaseTimeCoordinator.cpp:280
virtual TimeProcessingResult processTimeMessage(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:384
virtual bool updateTimeFactors()=0
virtual void removeDependent(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:227
std::int32_t sequenceCounter
storage for sequence counter
Definition: BaseTimeCoordinator.hpp:33
bool federatesOnly
indicator that the forwarder only operates with federates
Definition: BaseTimeCoordinator.hpp:35
virtual std::string printTimeStatus() const =0
virtual Time getNextTime() const =0
void setMessageSender(std::function< void(const ActionMessage &)> userSendMessageFunction)
Definition: BaseTimeCoordinator.cpp:35
std::vector< GlobalFederateId > getDependencies() const
Definition: BaseTimeCoordinator.cpp:242
virtual void removeDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:222
int dependencyCount() const
Definition: BaseTimeCoordinator.cpp:275
bool nonGranting
Definition: BaseTimeCoordinator.hpp:42
Json::Value grantTimeoutCheck(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:142
Definition: TimeDependencies.hpp:98
Definition: GlobalFederateId.hpp:75
Definition: TimeDependencies.hpp:62
Definition: TimeDependencies.hpp:129
bool empty() const
Definition: TimeDependencies.hpp:173
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
MessageProcessingResult
Definition: CoreTypes.hpp:74
IterationRequest
Definition: CoreTypes.hpp:102
@ NO_ITERATIONS
indicator that the iterations have completed
TimeProcessingResult
Definition: TimeDependencies.hpp:42
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27