9 #include "GlobalFederateId.hpp"
12 #include <unordered_map>
22 using TargetInfo = std::pair<GlobalHandle, uint16_t>;
25 std::unordered_multimap<std::string, TargetInfo>
27 std::unordered_multimap<std::string, TargetInfo>
29 std::unordered_multimap<std::string, TargetInfo> unknown_inputs;
30 std::unordered_multimap<std::string, TargetInfo>
33 std::unordered_multimap<std::string, std::string>
35 std::unordered_multimap<std::string, std::string>
36 unknown_endpoint_links;
37 std::unordered_multimap<std::string, std::string>
39 std::unordered_multimap<std::string, std::string>
42 std::unordered_multimap<std::string, TargetInfo>
43 reconnectable_publications;
44 std::unordered_multimap<std::string, TargetInfo>
45 reconnectable_endpoints;
46 std::unordered_multimap<std::string, TargetInfo>
48 std::unordered_multimap<std::string, TargetInfo>
49 reconnectable_filters;
72 void addDataLink(std::string_view source, std::string_view target);
76 void addSourceFilterLink(std::string_view filter, std::string_view endpoint);
77 void addDestinationFilterLink(std::string_view filter, std::string_view endpoint);
79 std::vector<TargetInfo>
checkForInputs(
const std::string& newInput)
const;
86 std::vector<TargetInfo>
checkForFilters(
const std::string& newFilter)
const;
91 std::vector<TargetInfo>
100 std::vector<std::string>
checkForLinks(
const std::string& newSource)
const;
105 std::vector<std::string> checkForFilterSourceTargets(
const std::string& newFilter)
const;
106 std::vector<std::string> checkForFilterDestTargets(
const std::string& newFilter)
const;
120 const std::function<
bool(
const std::string& name,
InterfaceType, TargetInfo)>& cfunc);
134 const std::function<
void(
const std::string& name,
InterfaceType, TargetInfo)>& cfunc)
const;
141 const std::function<
void(
const std::string& name,
InterfaceType, TargetInfo)>& cfunc)
const;
148 const std::function<
void(
const std::string& name,
InterfaceType, TargetInfo)>& cfunc)
const;
156 const std::string& target,
Definition: GlobalFederateId.hpp:75
Definition: GlobalFederateId.hpp:147
Definition: UnknownHandleManager.hpp:20
bool hasRequiredUnknowns() const
Definition: UnknownHandleManager.cpp:218
void clearFilter(const std::string &newFilter)
Definition: UnknownHandleManager.cpp:342
void clearFederateUnknowns(GlobalFederateId id)
Definition: UnknownHandleManager.cpp:363
void clearInput(const std::string &newInput)
Definition: UnknownHandleManager.cpp:323
std::vector< TargetInfo > checkForReconnectionInputs(const std::string &newInput) const
Definition: UnknownHandleManager.cpp:172
std::vector< TargetInfo > checkForFilters(const std::string &newFilter) const
Definition: UnknownHandleManager.cpp:154
void addUnknownInput(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:22
void addReconnectablePublication(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:44
void clearUnknownsIf(const std::function< bool(const std::string &name, InterfaceType, TargetInfo)> &cfunc)
Definition: UnknownHandleManager.cpp:372
void addUnknownEndpoint(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:30
void processUnknownLinks(const std::function< void(const std::string &origin, InterfaceType, const std::string &target, InterfaceType)> &cfunc) const
Definition: UnknownHandleManager.cpp:247
std::vector< TargetInfo > checkForReconnectionFilters(const std::string &newFilter) const
Definition: UnknownHandleManager.cpp:189
std::vector< TargetInfo > checkForInputs(const std::string &newInput) const
Definition: UnknownHandleManager.cpp:126
std::vector< TargetInfo > checkForEndpoints(const std::string &newEndpoint) const
Definition: UnknownHandleManager.cpp:148
void processUnknowns(const std::function< void(const std::string &name, InterfaceType, TargetInfo)> &cfunc) const
Definition: UnknownHandleManager.cpp:230
void processNonOptionalUnknowns(const std::function< void(const std::string &name, InterfaceType, TargetInfo)> &cfunc) const
Definition: UnknownHandleManager.cpp:266
void clearPublication(const std::string &newPublication)
Definition: UnknownHandleManager.cpp:329
std::vector< TargetInfo > checkForPublications(const std::string &newPublication) const
Definition: UnknownHandleManager.cpp:131
std::vector< TargetInfo > checkForReconnectionPublications(const std::string &newPublication) const
Definition: UnknownHandleManager.cpp:177
void clearEndpoint(const std::string &newEndpoint)
Definition: UnknownHandleManager.cpp:335
void addEndpointLink(std::string_view source, std::string_view target)
Definition: UnknownHandleManager.cpp:78
void processRequiredUnknowns(const std::function< void(const std::string &name, InterfaceType, TargetInfo)> &cfunc) const
Definition: UnknownHandleManager.cpp:296
void addReconnectableEndpoint(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:59
void addReconnectableInput(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:51
UnknownHandleManager()=default
std::vector< TargetInfo > checkForReconnectionEndpoints(const std::string &newEndpoint) const
Definition: UnknownHandleManager.cpp:183
bool hasUnknowns() const
Definition: UnknownHandleManager.cpp:194
std::vector< std::string > checkForLinks(const std::string &newSource) const
Definition: UnknownHandleManager.cpp:136
void addDataLink(std::string_view source, std::string_view target)
Definition: UnknownHandleManager.cpp:73
void addUnknownPublication(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:15
void addUnknownFilter(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:37
std::vector< std::string > checkForEndpointLinks(const std::string &newSource) const
Definition: UnknownHandleManager.cpp:142
void addReconnectableFilter(std::string_view key, GlobalHandle target, uint16_t flags)
Definition: UnknownHandleManager.cpp:66
bool hasNonOptionalUnknowns() const
Definition: UnknownHandleManager.cpp:201
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
InterfaceType
Definition: CoreTypes.hpp:111