summaryrefslogtreecommitdiff
path: root/implementation/endpoints/include/endpoint_manager_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/endpoints/include/endpoint_manager_impl.hpp')
-rw-r--r--implementation/endpoints/include/endpoint_manager_impl.hpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/implementation/endpoints/include/endpoint_manager_impl.hpp b/implementation/endpoints/include/endpoint_manager_impl.hpp
index cdf41b8..a7d28c6 100644
--- a/implementation/endpoints/include/endpoint_manager_impl.hpp
+++ b/implementation/endpoints/include/endpoint_manager_impl.hpp
@@ -44,12 +44,13 @@ public:
std::shared_ptr<endpoint> create_server_endpoint(uint16_t _port,
bool _reliable,
bool _start);
+
std::shared_ptr<endpoint> find_server_endpoint(uint16_t _port,
bool _reliable) const;
std::shared_ptr<endpoint> find_or_create_server_endpoint(
uint16_t _port, bool _reliable, bool _start, service_t _service,
- instance_t _instance);
+ instance_t _instance, bool &_is_found, bool _is_multicast = false);
bool remove_server_endpoint(uint16_t _port, bool _reliable);
@@ -57,6 +58,7 @@ public:
bool _reliable);
void find_or_create_multicast_endpoint(
service_t _service, instance_t _instance,
+ const boost::asio::ip::address &_sender,
const boost::asio::ip::address &_address, uint16_t _port);
void clear_multicast_endpoints(service_t _service, instance_t _instance);
@@ -70,7 +72,12 @@ public:
instance_t find_instance(service_t _service,
endpoint* const _endpoint) const;
+ instance_t find_instance_multicast(service_t _service,
+ const boost::asio::ip::address &_sender) const;
+
bool remove_instance(service_t _service, endpoint* const _endpoint);
+ bool remove_instance_multicast(service_t _service, instance_t _instance);
+
// endpoint_host interface
void on_connect(std::shared_ptr<endpoint> _endpoint);
@@ -111,6 +118,7 @@ private:
client_endpoints_by_ip_t client_endpoints_by_ip_;
std::map<service_t, std::map<endpoint *, instance_t> > service_instances_;
+ std::map<service_t, std::map<boost::asio::ip::address, instance_t> > service_instances_multicast_;
std::map<bool, std::set<uint16_t>> used_client_ports_;
std::mutex used_client_ports_mutex_;