 |
helics
3.3.0
|
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};
36 std::string_view name,
37 std::string_view type = std::string_view{});
39 template<
class FedPtr>
40 Endpoint(FedPtr& mFed, std::string_view name, std::string_view type = std::string_view{}):
41 Endpoint(std::addressof(*mFed), name, type)
44 std::is_base_of<
MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
45 "first argument must be a pointer to a MessageFederate");
55 std::string_view name,
56 std::string_view type = std::string_view{});
63 template<
class FedPtr>
66 std::string_view name,
67 std::string_view type = std::string_view{}):
68 Endpoint(locality, std::addressof(*mFed), name, type)
71 std::is_base_of<
MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
72 "second argument must be a pointer to a MessageFederate");
74 const std::string& getType() {
return getExtractionType(); }
79 void send(
const char* data,
size_t data_size)
const;
82 void subscribe(std::string_view key);
89 void sendTo(
const char* data,
size_t data_size, std::string_view dest)
const;
95 void sendAt(
const char* data,
size_t data_size,
Time sendTime)
const;
105 sendTo(data.
data(), data.
size(), dest);
116 sendToAt(data.
data(), data.
size(), dest, sendTime);
124 void sendToAt(
const char* data,
size_t data_size, std::string_view dest,
Time sendTime)
const;
130 void send(
const void* data,
size_t data_size)
const;
146 sendAt(data.
data(), data.
size(), sendTime);
149 void send(std::unique_ptr<Message> mess)
const;
158 std::unique_ptr<Message> getMessage()
const;
160 bool hasMessage()
const;
162 std::uint64_t pendingMessageCount()
const;
169 void setCallback(
const std::function<
void(
const Endpoint&,
Time)>& callback);
172 void addSourceFilter(std::string_view filterName);
174 void addDestinationFilter(std::string_view filterName);
176 void setDefaultDestination(std::string_view target);
177 void addSourceEndpoint(std::string_view endpointName);
178 void addDestinationEndpoint(std::string_view endpointName);
181 const std::string& getDefaultDestination()
const;
Core * cr
pointer to the core object
Definition: application_api/Federate.hpp:769
const std::string & getDefaultDestination() const
Definition: Endpoints.cpp:128
InterfaceVisibility
Definition: helicsTypes.hpp:40
void subscribe(std::string_view key)
Definition: Endpoints.cpp:133
void sendAt(const char *data, size_t data_size, Time sendTime) const
Definition: Endpoints.cpp:63
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length)=0
virtual const std::string & getDisplayName() const override
Definition: Endpoints.hpp:182
Definition: LocalFederateId.hpp:65
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
void send(const Message &mess) const
Definition: Endpoints.hpp:155
virtual void addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint=InterfaceType::UNKNOWN)=0
Definition: Endpoints.hpp:21
virtual void sendToAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination, Time time)=0
void send(const char *data, size_t data_size) const
Definition: Endpoints.cpp:38
@ FILTER
handle to a filter
Definition: data_view.hpp:22
Definition: application_api/MessageFederate.hpp:22
void setCallback(const std::function< void(const Endpoint &, Time)> &callback)
Definition: Endpoints.cpp:155
std::unique_ptr< Message > getMessage(const Endpoint &ept)
Definition: MessageFederate.cpp:281
Definition: core-exceptions.hpp:67
uint64_t pendingMessageCount(const Endpoint &ept) const
Definition: MessageFederate.cpp:257
Definition: application_api/Federate.hpp:767
void addSourceFilter(std::string_view filterName)
Definition: Endpoints.cpp:163
bool hasMessage() const
Definition: MessageFederate.cpp:241
void setDefaultDestination(std::string_view target)
Definition: Endpoints.cpp:120
virtual const std::string & getDestinationTargets(InterfaceHandle handle) const =0
virtual void sendMessage(InterfaceHandle sourceHandle, std::unique_ptr< Message > message)=0
InterfaceHandle handle
the id as generated by the Federate
Definition: application_api/Federate.hpp:770
void setMessageNotificationCallback(const std::function< void(Endpoint &, Time)> &callback)
Endpoint & registerEndpoint(std::string_view eptName=std::string_view(), std::string_view type=std::string_view())
Definition: MessageFederate.cpp:109
void addDestinationTarget(std::string_view newTarget, InterfaceType hint=InterfaceType::UNKNOWN)
Definition: Federate.cpp:1595
std::unique_ptr< Message > getMessage() const
Definition: Endpoints.cpp:138
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time)=0
bool hasMessage() const
Definition: Endpoints.cpp:144
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint=InterfaceType::UNKNOWN)=0
Endpoint(InterfaceVisibility locality, FedPtr &mFed, std::string_view name, std::string_view type=std::string_view{})
Definition: Endpoints.hpp:64
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination)=0
void addDestinationFilter(std::string_view filterName)
Definition: Endpoints.cpp:168
const char * data() const noexcept
Definition: data_view.hpp:107
void sendAt(const data_view &data, Time sendTime) const
Definition: Endpoints.hpp:144
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
@ ENDPOINT
handle to an endpoint
void sendToAt(const data_view &data, std::string_view dest, Time sendTime) const
Definition: Endpoints.hpp:114
void sendTo(const data_view &data, std::string_view dest) const
Definition: Endpoints.hpp:103
size_t size() const noexcept
Definition: data_view.hpp:114
Modes getCurrentMode() const noexcept
Definition: application_api/Federate.hpp:703
std::uint64_t pendingMessageCount() const
Definition: Endpoints.cpp:150
void send(const data_view &data) const
Definition: Endpoints.hpp:137
void sendTo(const char *data, size_t data_size, std::string_view dest) const
Definition: Endpoints.cpp:49
Definition: MessageFederateManager.hpp:34
@ PUBLICATION
handle to output interface
Endpoint & registerGlobalEndpoint(std::string_view eptName, std::string_view type=std::string_view())
Definition: MessageFederate.cpp:119
Definition: core-data.hpp:29