summaryrefslogtreecommitdiff
path: root/implementation/routing/include/eventgroupinfo.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/routing/include/eventgroupinfo.hpp')
-rw-r--r--implementation/routing/include/eventgroupinfo.hpp12
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