 |
helics
3.3.0
|
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);
60 void setSourceId(GlobalFederateId sourceId) {
mSourceId = sourceId; }
61 GlobalFederateId sourceId()
const {
return mSourceId; }
80 std::int32_t responseCode)
const;
bool nonGranting
Definition: BaseTimeCoordinator.hpp:42
void setExtraDestData(int32_t data)
Definition: ActionMessage.hpp:161
constexpr BaseType baseValue() const
Definition: GlobalFederateId.hpp:84
TimeDependencies dependencies
Definition: BaseTimeCoordinator.hpp:27
std::function< void(const ActionMessage &)> sendMessageFunction
callback used to send the messages
Definition: BaseTimeCoordinator.hpp:29
std::int32_t responseSequenceCounter
Definition: TimeDependencies.hpp:74
void removeDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:409
const DependencyInfo * getDependencyInfo(GlobalFederateId ofed) const
Definition: BaseTimeCoordinator.cpp:226
GlobalFederateId mSourceId
the identifier for inserting into the source id field of any generated messages;
Definition: BaseTimeCoordinator.hpp:32
Definition: TimeDependencies.hpp:124
base helics enumerations for C++ API's, a namespace wrapper for the definitions defined in helics_enu...
GlobalFederateId getMinDependency() const
Definition: TimeDependencies.cpp:609
void setAction(action_message_def::action_t newAction)
Definition: ActionMessage.cpp:142
void removeDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:371
void disconnect()
Definition: BaseTimeCoordinator.cpp:79
Definition: TimeDependencies.hpp:57
std::vector< GlobalFederateId > getDependencies() const
Definition: BaseTimeCoordinator.cpp:231
bool interrupted
indicator that the federates next event is a timing interruption
Definition: TimeDependencies.hpp:67
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
Time Te
the next currently scheduled event
Definition: TimeDependencies.hpp:60
Definition: GlobalFederateId.hpp:72
Definition: ActionMessage.hpp:30
constexpr GlobalBrokerId parent_broker_id
Definition: GlobalFederateId.hpp:64
std::int32_t sequenceCounter
storage for sequence counter
Definition: BaseTimeCoordinator.hpp:33
bool processTimeMessage(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:367
bool isDependency(GlobalFederateId ofed) const
Definition: BaseTimeCoordinator.cpp:151
std::string version()
Definition: cpp98/helics.hpp:26
bool isDependency(GlobalFederateId ofed) const
Definition: TimeDependencies.cpp:308
virtual void removeDependent(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:221
int appendMessage(ActionMessage &m, const ActionMessage &newMessage)
Definition: ActionMessage.cpp:925
uint16_t counter
26 counter for filter tracking or message counter
Definition: ActionMessage.hpp:41
@ FORCE_ITERATION
force an iteration whether it is needed or not
auto size() const
Definition: TimeDependencies.hpp:151
virtual std::string printTimeStatus() const =0
bool empty() const
Definition: BaseTimeCoordinator.hpp:74
std::int8_t timingVersion
version indicator
Definition: TimeDependencies.hpp:69
Time next
next possible message or value
Definition: TimeDependencies.hpp:59
virtual MessageProcessingResult checkExecEntry(GlobalFederateId triggerFed=GlobalFederateId{})=0
int activeDependencyCount() const
Definition: TimeDependencies.cpp:602
bool executionMode
Definition: BaseTimeCoordinator.hpp:37
bool federatesOnly
indicator that the forwarder only operates with federates
Definition: BaseTimeCoordinator.hpp:35
bool hasActiveTimeDependencies() const
Definition: BaseTimeCoordinator.cpp:253
@ delayed_timing_flag
flag to indicate the request is from federate with delayed timing
Definition: flagOperations.hpp:30
bool restrictive_time_policy
flag indicating that a restrictive time policy should be used
Definition: BaseTimeCoordinator.hpp:39
IterationRequest
Definition: CoreTypes.hpp:92
const DependencyInfo * getDependencyInfo(GlobalFederateId id) const
Definition: TimeDependencies.cpp:326
int32_t messageID
8 – message ID for a variety of purposes
Definition: ActionMessage.hpp:36
void setExtraData(int32_t data)
Definition: ActionMessage.hpp:157
void setActionFlag(FlagContainer &M, FlagIndex flag)
Definition: flagOperations.hpp:130
auto begin()
Definition: TimeDependencies.hpp:153
void sendTimingInfo()
Definition: BaseTimeCoordinator.cpp:268
void processDependencyUpdateMessage(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:402
void setMessageSender(std::function< void(const ActionMessage &)> userSendMessageFunction)
Definition: BaseTimeCoordinator.cpp:35
Json::Value grantTimeoutCheck(const ActionMessage &cmd)
Definition: BaseTimeCoordinator.cpp:136
@ ITERATE_IF_NEEDED
indicator that the iterations need to continue
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
Time Te
48 event time
Definition: ActionMessage.hpp:45
bool addDependency(GlobalFederateId id)
Definition: TimeDependencies.cpp:346
bool noParent
indicator that the coordinator does not have parents
Definition: BaseTimeCoordinator.hpp:34
virtual void enteringExecMode(IterationRequest mode=IterationRequest::NO_ITERATIONS)
Definition: BaseTimeCoordinator.cpp:44
Definition: TimeDependencies.hpp:93
int dependencyCount() const
Definition: BaseTimeCoordinator.cpp:258
virtual bool addDependent(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:170
virtual bool updateTimeFactors()=0
DependencyProcessingResult updateTime(const ActionMessage &m)
Definition: TimeDependencies.cpp:432
MessageProcessingResult
Definition: CoreTypes.hpp:64
@ non_granting_flag
flag to indicate the request is from a non-granting federate
Definition: flagOperations.hpp:25
Time Tdemin
56 min dependent event time
Definition: ActionMessage.hpp:46
Time actionTime
40 the time an action took place or will take place //32
Definition: ActionMessage.hpp:44
@ parent_flag
flag indicating the message is from a parent object
Definition: flagOperations.hpp:32
bool addDependent(GlobalFederateId id)
Definition: TimeDependencies.cpp:384
@ interrupted_flag
flag to mark an interrupted event
Definition: flagOperations.hpp:28
Definition: BaseTimeCoordinator.hpp:25
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
virtual Time getNextTime() const =0
bool hasActiveTimeDependencies() const
Definition: TimeDependencies.cpp:589
bool checkActionFlag(uint16_t flags, FlagIndex flag)
Definition: flagOperations.hpp:138
ActionMessage generateTimeRequest(const TimeData &dep, GlobalFederateId fed, std::int32_t responseCode) const
Definition: BaseTimeCoordinator.cpp:288
virtual void generateDebuggingTimeInfo(Json::Value &base) const
Definition: BaseTimeCoordinator.cpp:118
Time minDe
min dependency event time
Definition: TimeDependencies.hpp:61
bool empty() const
Definition: TimeDependencies.hpp:166
GlobalFederateId minFed
identifier for the min dependency
Definition: TimeDependencies.hpp:63
virtual void removeDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:216
@ NO_ITERATIONS
indicator that the iterations have completed
std::vector< GlobalFederateId > getDependents() const
Definition: BaseTimeCoordinator.cpp:242
GlobalFederateId getMinDependency() const
Definition: BaseTimeCoordinator.cpp:263
GlobalFederateId source_id
12 – for federate_id or route_id
Definition: ActionMessage.hpp:37
std::pair< int, std::string > checkForIssues(bool waiting) const
Definition: TimeDependencies.cpp:661
virtual bool addDependency(GlobalFederateId fedID)
Definition: BaseTimeCoordinator.cpp:156
@ child_flag
flag indicating a message is from a child object
Definition: flagOperations.hpp:35
void setIterationFlags(ActionMessage &command, IterationRequest iterate)
Definition: ActionMessage.cpp:936