summaryrefslogtreecommitdiff
path: root/implementation/routing/include/routing_manager_stub.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/routing/include/routing_manager_stub.hpp')
-rw-r--r--implementation/routing/include/routing_manager_stub.hpp35
1 files changed, 26 insertions, 9 deletions
diff --git a/implementation/routing/include/routing_manager_stub.hpp b/implementation/routing/include/routing_manager_stub.hpp
index 3cf89a7..819352f 100644
--- a/implementation/routing/include/routing_manager_stub.hpp
+++ b/implementation/routing/include/routing_manager_stub.hpp
@@ -58,20 +58,20 @@ public:
instance_t _instance, major_version_t _major, minor_version_t _minor);
void send_subscribe(std::shared_ptr<vsomeip::endpoint> _target,
- client_t _client, service_t _service,
- instance_t _instance, eventgroup_t _eventgroup,
- major_version_t _major, bool _is_remote_subscriber);
+ client_t _client, service_t _service, instance_t _instance,
+ eventgroup_t _eventgroup, major_version_t _major,
+ event_t _event, bool _is_remote_subscriber);
void send_unsubscribe(std::shared_ptr<vsomeip::endpoint> _target,
client_t _client, service_t _service,
instance_t _instance, eventgroup_t _eventgroup,
- bool _is_remote_subscriber);
+ event_t _event, bool _is_remote_subscriber);
void send_subscribe_nack(client_t _client, service_t _service,
- instance_t _instance, eventgroup_t _eventgroup);
+ instance_t _instance, eventgroup_t _eventgroup, event_t _event);
void send_subscribe_ack(client_t _client, service_t _service,
- instance_t _instance, eventgroup_t _eventgroup);
+ instance_t _instance, eventgroup_t _eventgroup, event_t _event);
bool contained_in_routing_info(client_t _client, service_t _service,
instance_t _instance, major_version_t _major,
@@ -82,6 +82,9 @@ public:
bool is_registered(client_t _client) const;
void deregister_erroneous_client(client_t _client);
client_t get_client() const;
+ void on_request_service(client_t _client, service_t _service,
+ instance_t _instance, major_version_t _major,
+ minor_version_t _minor);
#ifndef _WIN32
virtual bool check_credentials(client_t _client, uid_t _uid, gid_t _gid);
#endif
@@ -91,9 +94,18 @@ private:
void on_register_application(client_t _client);
void on_deregister_application(client_t _client);
- void broadcast_routing_info(bool _empty = false,
- client_t _ignore = VSOMEIP_ROUTING_CLIENT);
- void send_routing_info(client_t _client, bool _empty = false);
+ void broadcast_routing_stop();
+
+ void send_routing_info_delta(client_t _target, routing_info_entry_e _entry,
+ client_t _client, service_t _service = ANY_SERVICE,
+ instance_t _instance = ANY_INSTANCE,
+ major_version_t _major = ANY_MAJOR,
+ minor_version_t _minor = ANY_MINOR);
+
+ void inform_requesters(client_t _hoster, service_t _service,
+ instance_t _instance, major_version_t _major,
+ minor_version_t _minor, routing_info_entry_e _entry,
+ bool _inform_service);
void broadcast_ping() const;
void on_pong(client_t _client);
@@ -109,6 +121,8 @@ private:
(void)_routing_state;
};
+ bool is_already_connected(client_t _source, client_t _sink);
+
private:
routing_manager_stub_host *host_;
boost::asio::io_service &io_;
@@ -145,6 +159,9 @@ private:
boost::asio::steady_timer pinged_clients_timer_;
std::mutex pinged_clients_mutex_;
std::map<client_t, boost::asio::steady_timer::time_point> pinged_clients_;
+
+ std::map<client_t, std::map<service_t, std::map<instance_t, std::pair<major_version_t, minor_version_t> > > > service_requests_;
+ std::map<client_t, std::set<client_t>> connection_matrix_;
};
} // namespace vsomeip