9 #include "Federate.hpp"
10 #include "data_view.hpp"
14 #include <type_traits>
18 class MessageFederate;
24 int referenceIndex{-1};
25 void* dataReference{
nullptr};
26 bool disableAssign{
false};
27 bool receiveOnly{
false};
37 std::string_view name,
38 std::string_view type = std::string_view{});
40 template<
class FedPtr>
41 Endpoint(FedPtr& mFed, std::string_view name, std::string_view type = std::string_view{}):
42 Endpoint(std::addressof(*mFed), name, type)
45 std::is_base_of<MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
46 "first argument must be a pointer to a MessageFederate");
55 MessageFederate* mFed,
56 std::string_view name,
57 std::string_view type = std::string_view{});
64 template<
class FedPtr>
67 std::string_view name,
68 std::string_view type = std::string_view{}):
69 Endpoint(locality, std::addressof(*mFed), name, type)
72 std::is_base_of<
MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
73 "second argument must be a pointer to a MessageFederate");
75 const std::string& getType()
const {
return getExtractionType(); }
80 void send(
const char* data,
size_t data_size)
const;
83 void subscribe(std::string_view key);
90 void sendTo(
const char* data,
size_t data_size, std::string_view dest)
const;
96 void sendAt(
const char* data,
size_t data_size,
Time sendTime)
const;
106 sendTo(data.
data(), data.
size(), dest);
117 sendToAt(data.
data(), data.
size(), dest, sendTime);
125 void sendToAt(
const char* data,
size_t data_size, std::string_view dest,
Time sendTime)
const;
131 void send(
const void* data,
size_t data_size)
const;
147 sendAt(data.
data(), data.
size(), sendTime);
150 void send(std::unique_ptr<Message> mess)
const;
159 std::unique_ptr<Message> getMessage()
const;
161 bool hasMessage()
const;
163 std::uint64_t pendingMessageCount()
const;
170 void setCallback(
const std::function<
void(
const Endpoint&,
Time)>& callback);
173 void addSourceFilter(std::string_view filterName);
175 void addDestinationFilter(std::string_view filterName);
177 void setDefaultDestination(std::string_view target);
178 void addSourceEndpoint(std::string_view endpointName);
179 void addDestinationEndpoint(std::string_view endpointName);
182 const std::string& getDefaultDestination()
const;
Definition: Endpoints.hpp:21
void send(const data_view &data) const
Definition: Endpoints.hpp:138
void sendTo(const data_view &data, std::string_view dest) const
Definition: Endpoints.hpp:104
virtual const std::string & getDisplayName() const override
Definition: Endpoints.hpp:183
void sendAt(const data_view &data, Time sendTime) const
Definition: Endpoints.hpp:145
Endpoint(InterfaceVisibility locality, FedPtr &mFed, std::string_view name, std::string_view type=std::string_view{})
Definition: Endpoints.hpp:65
void sendToAt(const data_view &data, std::string_view dest, Time sendTime) const
Definition: Endpoints.hpp:115
void send(const Message &mess) const
Definition: Endpoints.hpp:156
Definition: LocalFederateId.hpp:65
Definition: application_api/Federate.hpp:875
Definition: MessageFederateManager.hpp:34
Definition: application_api/MessageFederate.hpp:24
Definition: core-data.hpp:29
Definition: data_view.hpp:22
size_t size() const noexcept
Definition: data_view.hpp:114
const char * data() const noexcept
Definition: data_view.hpp:107
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
InterfaceVisibility
Definition: helicsTypes.hpp:40
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27