9 #include "../common/JsonBuilder.hpp"
11 #include "FederateIdExtra.hpp"
12 #include "TimeCoordinator.hpp"
13 #include "TranslatorInfo.hpp"
14 #include "gmlc/containers/AirLock.hpp"
15 #include "gmlc/containers/MappedPointerVector.hpp"
30 class BasicHandleInfo;
36 const std::string mName;
42 bool usingGlobalTime{
false};
51 std::function<void(
int, std::string_view, std::string_view)> mLogger;
52 std::function<gmlc::containers::AirLock<std::any>&(int)> mGetAirLock;
54 Time minReturnTime{Time::maxVal()};
57 gmlc::containers::MappedPointerVector<TranslatorInfo, GlobalHandle> translators;
67 std::string_view endpointType,
68 std::string_view units);
70 void setCallbacks(std::function<
void(
const ActionMessage&)> queueMessage,
75 mQueueMessage = std::move(queueMessage);
76 mQueueMessageMove = std::move(queueMessageMove);
77 mSendMessage = std::move(sendMessage);
78 mSendMessageMove = std::move(sendMessageMove);
81 void setLogger(std::function<
void(
int, std::string_view, std::string_view)> logger)
83 mLogger = std::move(logger);
86 void setDeliver(std::function<
void(
ActionMessage&)> deliverMessage)
88 mDeliverMessage = std::move(deliverMessage);
91 void setAirLockFunction(std::function<gmlc::containers::AirLock<std::any>&(
int)> getAirLock)
93 mGetAirLock = std::move(getAirLock);
98 void setHandleManager(
HandleManager* handles) { mHandles = handles; }
100 std::string query(std::string_view queryStr)
const;
104 void useGlobalTimeCoordinator(
bool value)
106 usingGlobalTime = value;
Definition: ActionMessage.hpp:30
Definition: core/Core.hpp:41
Definition: GlobalFederateId.hpp:30
Definition: GlobalFederateId.hpp:75
Definition: GlobalFederateId.hpp:147
Definition: HandleManager.hpp:25
Definition: LocalFederateId.hpp:65
Definition: TimeCoordinator.hpp:48
bool globalTime
true if using a global time manager parent
Definition: TimeCoordinator.hpp:94
Definition: TranslatorFederate.hpp:32
bool hasActiveTimeDependencies() const
Definition: TranslatorFederate.cpp:472
TranslatorInfo * createTranslator(GlobalBrokerId dest, InterfaceHandle handle, std::string_view key, std::string_view endpointType, std::string_view units)
Definition: TranslatorFederate.cpp:288
Definition: TranslatorInfo.hpp:32
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
FederateStates
Definition: CoreTypes.hpp:21
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27