diff options
Diffstat (limited to 'implementation/routing/include/eventgroupinfo.hpp')
-rw-r--r-- | implementation/routing/include/eventgroupinfo.hpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/implementation/routing/include/eventgroupinfo.hpp b/implementation/routing/include/eventgroupinfo.hpp index 32ce5f2..8ec1ac6 100644 --- a/implementation/routing/include/eventgroupinfo.hpp +++ b/implementation/routing/include/eventgroupinfo.hpp @@ -42,7 +42,7 @@ public: VSOMEIP_EXPORT eventgroupinfo( const service_t _service, const service_t _instance, const eventgroup_t _eventgroup, const major_version_t _major, - const ttl_t _ttl); + const ttl_t _ttl, const uint8_t _max_remote_subscribers); VSOMEIP_EXPORT ~eventgroupinfo(); VSOMEIP_EXPORT service_t get_service() const; @@ -86,6 +86,9 @@ public: std::set<client_t> &_changed, remote_subscription_id_t &_id, const bool _is_subscribe); + bool is_remote_subscription_limit_reached( + const std::shared_ptr<remote_subscription> &_subscription); + remote_subscription_id_t add_remote_subscription( const std::shared_ptr<remote_subscription> &_subscription); @@ -107,6 +110,10 @@ public: VSOMEIP_EXPORT void send_initial_events( const std::shared_ptr<endpoint_definition> &_reliable, const std::shared_ptr<endpoint_definition> &_unreliable) const; + + VSOMEIP_EXPORT uint8_t get_max_remote_subscribers() const; + VSOMEIP_EXPORT void set_max_remote_subscribers(uint8_t _max_remote_subscribers); + private: void update_id(); uint32_t get_unreliable_target_count() const; @@ -131,9 +138,12 @@ private: std::shared_ptr<remote_subscription> > subscriptions_; remote_subscription_id_t id_; + std::map<boost::asio::ip::address, uint8_t> remote_subscribers_count_; std::atomic<reliability_type_e> reliability_; std::atomic<bool> reliability_auto_mode_; + + uint8_t max_remote_subscribers_; }; } // namespace vsomeip_v3 |