 |
helics
2.8.1
|
9 #include "MessageFederate.hpp"
13 #include <type_traits>
22 int referenceIndex{-1};
23 void* dataReference{
nullptr};
24 std::string targetDest;
25 std::string actualName;
26 bool disableAssign{
false};
33 fed(mfed), handle(
id), dataReference(
data), actualName(name)
38 const std::string& name,
39 const std::string& type = std::string()):
44 template<
class FedPtr>
45 Endpoint(FedPtr& mFed,
const std::string& name,
const std::string& type = std::string()):
46 Endpoint(mFed->registerEndpoint(name, type))
49 std::is_base_of<
MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
50 "first argument must be a pointer to a MessageFederate");
60 const std::string& name,
61 const std::string& type = std::string());
68 template<
class FedPtr>
71 const std::string& name,
72 const std::string& type = std::string()):
73 Endpoint(locality, std::addressof(*mFed), name, type)
76 std::is_base_of<
MessageFederate, std::remove_reference_t<decltype(*mFed)>>::value,
77 "second argument must be a pointer to a MessageFederate");
80 bool isValid()
const {
return handle.isValid(); }
81 bool operator==(
const Endpoint& ept)
const {
return (handle == ept.handle); }
82 bool operator!=(
const Endpoint& ept)
const {
return (handle != ept.handle); }
83 bool operator<(
const Endpoint& ept)
const {
return (handle < ept.handle); }
89 void send(
const std::string& dest,
const char*
data,
size_t data_size)
const
95 void subscribe(
const std::string& key) {
fed->subscribe(*
this, key); }
102 void send(
const std::string& dest,
const char*
data,
size_t data_size,
Time sendTime)
const
123 fed->sendMessage(*
this, dest,
data);
134 fed->sendMessage(*
this, dest,
data, sendTime);
140 void send(
const char*
data,
size_t data_size)
const
158 fed->sendMessage(*
this, targetDest,
data, sendTime);
161 void send(std::unique_ptr<Message> mess)
const
163 if (mess->dest.empty()) {
164 mess->dest = targetDest;
166 fed->sendMessage(*
this, std::move(mess));
187 fed->setMessageNotificationCallback(*
this, callback);
195 fed->addDestinationFilter(*
this, filterName);
202 const std::string&
getName()
const {
return actualName; }
204 const std::string&
getKey()
const {
return fed->getInterfaceName(handle); }
206 const std::string&
getType()
const {
return fed->getExtractionType(*
this); }
214 const std::string&
getInfo()
const {
return fed->getInfo(handle); }
216 void setInfo(
const std::string& info) {
fed->setInfo(handle, info); }
217 void setOption(int32_t option, int32_t value = 1)
219 fed->setInterfaceOption(handle, option, value);
222 int32_t
getOption(int32_t option)
const {
return fed->getInterfaceOption(handle, option); }
bool operator!=(const data_block &db1, const data_block &db2)
Definition: core-data.hpp:140
@ data
print timing+data transmissions
Definition: loggingHelper.hpp:30
bool isValid() const
Definition: Endpoints.hpp:80
const std::string & getInfo() const
Definition: Endpoints.hpp:214
auto getMessage() const
Definition: Endpoints.hpp:174
Endpoint & registerEndpoint(const std::string &eptName=std::string(), const std::string &type=std::string())
Definition: MessageFederate.cpp:109
void subscribe(const std::string &key)
Definition: Endpoints.hpp:95
Endpoint & registerGlobalEndpoint(const std::string &eptName, const std::string &type=std::string())
Definition: MessageFederate.cpp:117
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
void setDefaultDestination(std::string target)
Definition: Endpoints.hpp:198
void send(const Message &mess) const
Definition: Endpoints.hpp:172
void send(const std::string &dest, const char *data, size_t data_size, Time sendTime) const
Definition: Endpoints.hpp:102
Definition: Endpoints.hpp:18
void addDestinationFilter(const std::string &filterName)
Definition: Endpoints.hpp:193
const std::string & getName() const
Definition: Endpoints.hpp:202
void send(const char *data, size_t data_size) const
Definition: Endpoints.hpp:140
Definition: data_view.hpp:22
Definition: application_api/MessageFederate.hpp:20
int32_t getOption(int32_t option) const
Definition: Endpoints.hpp:222
void setCallback(const std::function< void(const Endpoint &, Time)> &callback)
Definition: Endpoints.hpp:185
void send(std::unique_ptr< Message > mess) const
Definition: Endpoints.hpp:161
const std::string & getDefaultDestination() const
Definition: Endpoints.hpp:200
Endpoint(interface_visibility locality, FedPtr &mFed, const std::string &name, const std::string &type=std::string())
Definition: Endpoints.hpp:69
interface_handle getHandle() const
** get the number of filters applied to the endpoint*/
Definition: Endpoints.hpp:210
void setInfo(const std::string &info)
Definition: Endpoints.hpp:216
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
void send(const std::string &dest, const data_view &data) const
Definition: Endpoints.hpp:121
void send(const char *data, size_t data_size, Time sendTime) const
Definition: Endpoints.hpp:111
Definition: federate_id.hpp:65
bool hasMessage() const
Definition: Endpoints.hpp:176
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
const std::string & getKey() const
Definition: Endpoints.hpp:204
void addSourceFilter(const std::string &filterName)
Definition: Endpoints.hpp:191
auto pendingMessages() const
Definition: Endpoints.hpp:178
void send(const std::string &dest, const char *data, size_t data_size) const
Definition: Endpoints.hpp:89
void send(const data_view &data, Time sendTime) const
Definition: Endpoints.hpp:156
interface_visibility
Definition: helicsTypes.hpp:38
void close()
Definition: Endpoints.hpp:224
const std::string & getType() const
Definition: Endpoints.hpp:206
void send(const data_view &data) const
Definition: Endpoints.hpp:149
Definition: MessageFederateManager.hpp:34
void send(const std::string &dest, const data_view &data, Time sendTime) const
Definition: Endpoints.hpp:132
Definition: core-data.hpp:146