 |
helics
2.8.1
|
9 #include "../common/GuardedTypes.hpp"
10 #include "../core/Core.hpp"
11 #include "../core/federate_id_extra.hpp"
12 #include "Endpoints.hpp"
13 #include "data_view.hpp"
14 #include "gmlc/containers/DualMappedVector.hpp"
15 #include "gmlc/containers/SimpleQueue.hpp"
23 #include <unordered_map>
24 #include <unordered_set>
29 class MessageFederate;
53 const std::string& remoteEndpoint);
77 std::unique_ptr<Message> getMessage();
80 void sendMessage(
const Endpoint& source,
const std::string& dest,
const data_view& message);
82 void sendMessage(
const Endpoint& source,
83 const std::string& dest,
87 void sendMessage(
const Endpoint& source, std::unique_ptr<Message> message);
99 std::string
localQuery(
const std::string& queryStr)
const;
136 gmlc::containers::SimpleQueue<std::unique_ptr<Message>> messages;
137 atomic_guarded<std::function<void(
Endpoint&,
Time)>> callback;
141 DualMappedVector<Endpoint, std::string, interface_handle, reference_stability::stable>>
143 atomic_guarded<std::function<void(
Endpoint&,
Time)>> allCallback;
144 Time CurrentTime = Time::minVal();
150 guarded<std::vector<unsigned int>>
153 void removeOrderedMessage(
unsigned int index);
constexpr Time timeZero
Definition: helics-time.hpp:31
virtual uint64_t receiveCountAny(local_federate_id federateID)=0
constexpr Time initializationTime
Definition: helics-time.hpp:38
Endpoint & getEndpoint(const std::string &name)
Definition: MessageFederateManager.cpp:234
void initializeToExecuteStateTransition(iteration_result result)
Definition: MessageFederateManager.cpp:213
Endpoint & registerEndpoint(const std::string &name, const std::string &type)
Definition: MessageFederateManager.cpp:32
virtual void send(interface_handle sourceHandle, const std::string &destination, const char *data, uint64_t length)=0
void startupToInitializeStateTransition()
Definition: MessageFederateManager.cpp:211
void registerKnownCommunicationPath(const Endpoint &localEndpoint, const std::string &remoteEndpoint)
give the core a hint for known communication paths Specifying a path that is not present will cause t...
Definition: MessageFederateManager.cpp:62
virtual void addDestinationTarget(interface_handle handle, const std::string &dest)=0
Definition: federate_id.hpp:22
iteration_result
Definition: core-types.hpp:81
virtual void addSourceTarget(interface_handle handle, const std::string &name)=0
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
std::string localQuery(const std::string &queryStr) const
Definition: MessageFederateManager.cpp:219
Common functions for the HELICS C api.
Definition: Endpoints.hpp:18
virtual void sendMessage(interface_handle sourceHandle, std::unique_ptr< Message > message)=0
const std::string & getName() const
Definition: Endpoints.hpp:202
int getEndpointCount() const
Definition: MessageFederateManager.cpp:264
Definition: data_view.hpp:22
Definition: application_api/MessageFederate.hpp:20
virtual void sendEvent(Time time, interface_handle sourceHandle, const std::string &destination, const char *data, uint64_t length)=0
Definition: core/Core.hpp:42
void subscribe(const Endpoint &ept, const std::string &pubName)
Definition: MessageFederateManager.cpp:68
Definition: core-exceptions.hpp:85
Functions related to message federates for the C api.
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
void addSourceFilter(const Endpoint &ept, const std::string &filterName)
Definition: MessageFederateManager.cpp:269
Definition: federate_id.hpp:65
static std::unique_ptr< Message > getMessage(const Endpoint &ept)
Definition: MessageFederateManager.cpp:119
virtual std::unique_ptr< Message > receiveAny(local_federate_id federateID, interface_handle &endpoint_id)=0
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
void setEndpointNotificationCallback(const std::function< void(Endpoint &, Time)> &callback)
Definition: MessageFederateManager.cpp:281
void updateTime(Time newTime, Time oldTime)
Definition: MessageFederateManager.cpp:166
virtual interface_handle registerEndpoint(local_federate_id federateID, const std::string &name, const std::string &type)=0
uint64_t pendingMessages() const
Definition: MessageFederateManager.cpp:109
Definition: application_api/Federate.hpp:26
void addDestinationFilter(const Endpoint &ept, const std::string &filterName)
Definition: MessageFederateManager.cpp:275
MessageFederateManager(Core *coreOb, MessageFederate *mFed, local_federate_id id)
Definition: MessageFederateManager.cpp:17
void disconnect()
Definition: MessageFederateManager.cpp:26
virtual void registerFrequentCommunicationsPair(const std::string &source, const std::string &dest)=0
bool hasMessage() const
Definition: MessageFederateManager.cpp:73
Definition: MessageFederateManager.hpp:34
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:249