 |
helics
3.0.1
|
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 const std::string& name,
37 const std::string& type = std::string());
39 template<
class FedPtr>
40 Endpoint(FedPtr& mFed,
const std::string& name,
const std::string& type = std::string()):
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 const std::string& name,
56 const std::string& type = std::string());
63 template<
class FedPtr>
66 const std::string& name,
67 const std::string& type = std::string()):
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(
const std::string& 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(
const std::string& filterName);
174 void addDestinationFilter(
const std::string& filterName);
176 void setDefaultDestination(std::string_view target);
178 const std::string& getDefaultDestination()
const;
Core * cr
pointer to the core object
Definition: application_api/Federate.hpp:629
const std::string & getDefaultDestination() const
Definition: Endpoints.cpp:136
InterfaceVisibility
Definition: helicsTypes.hpp:39
Endpoint & registerEndpoint(const std::string &eptName=std::string(), const std::string &type=std::string())
Definition: MessageFederate.cpp:109
void sendAt(const char *data, size_t data_size, Time sendTime) const
Definition: Endpoints.cpp:65
void subscribe(const std::string &key)
Definition: Endpoints.cpp:142
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length)=0
void addDestinationTarget(std::string_view newTarget)
Definition: Federate.cpp:1375
Endpoint & registerGlobalEndpoint(const std::string &eptName, const std::string &type=std::string())
Definition: MessageFederate.cpp:126
virtual const std::string & getDisplayName() const override
Definition: Endpoints.hpp:179
Modes getCurrentMode() const
Definition: application_api/Federate.hpp:565
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
void addDestinationFilter(const std::string &filterName)
Definition: Endpoints.cpp:181
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:166
std::unique_ptr< Message > getMessage(const Endpoint &ept)
Definition: MessageFederate.cpp:289
Definition: core-exceptions.hpp:66
uint64_t pendingMessageCount(const Endpoint &ept) const
Definition: MessageFederate.cpp:265
Definition: application_api/Federate.hpp:627
bool hasMessage() const
Definition: MessageFederate.cpp:249
void setDefaultDestination(std::string_view target)
Definition: Endpoints.cpp:128
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:630
void setMessageNotificationCallback(const std::function< void(Endpoint &, Time)> &callback)
std::unique_ptr< Message > getMessage() const
Definition: Endpoints.cpp:149
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time)=0
bool hasMessage() const
Definition: Endpoints.cpp:155
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint=InterfaceType::UNKNOWN)=0
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination)=0
Endpoint(InterfaceVisibility locality, FedPtr &mFed, const std::string &name, const std::string &type=std::string())
Definition: Endpoints.hpp:64
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
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
void addSourceFilter(const std::string &filterName)
Definition: Endpoints.cpp:174
std::uint64_t pendingMessageCount() const
Definition: Endpoints.cpp:161
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:50
Definition: MessageFederateManager.hpp:34
@ PUBLICATION
handle to output interface
Definition: core-data.hpp:29