summaryrefslogtreecommitdiff
path: root/implementation/configuration/include/configuration_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/configuration/include/configuration_impl.hpp')
-rw-r--r--implementation/configuration/include/configuration_impl.hpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/implementation/configuration/include/configuration_impl.hpp b/implementation/configuration/include/configuration_impl.hpp
index 66cfc84..cb6c284 100644
--- a/implementation/configuration/include/configuration_impl.hpp
+++ b/implementation/configuration/include/configuration_impl.hpp
@@ -220,7 +220,7 @@ public:
VSOMEIP_EXPORT bool is_secure_service(service_t _service, instance_t _instance) const;
- VSOMEIP_EXPORT std::uint32_t get_udp_receive_buffer_size() const;
+ VSOMEIP_EXPORT int get_udp_receive_buffer_size() const;
VSOMEIP_EXPORT bool has_overlay(const std::string &_name) const;
VSOMEIP_EXPORT void load_overlay(const std::string &_name);
@@ -239,6 +239,11 @@ public:
VSOMEIP_EXPORT uint32_t get_statistics_min_freq() const;
VSOMEIP_EXPORT uint32_t get_statistics_max_messages() const;
+ VSOMEIP_EXPORT uint8_t get_max_remote_subscribers() const;
+
+ VSOMEIP_EXPORT partition_id_t get_partition_id(
+ service_t _service, instance_t _instance) const;
+
private:
void read_data(const std::set<std::string> &_input,
std::vector<configuration_element> &_elements,
@@ -355,6 +360,9 @@ private:
instance_t _instance, eventgroup_t _eventgroup) const;
bool find_port(uint16_t &_port, uint16_t _remote, bool _reliable,
std::map<bool, std::set<uint16_t> > &_used_client_ports) const;
+ bool find_specific_port(uint16_t &_port, service_t _service,
+ instance_t _instance, bool _reliable,
+ std::map<bool, std::set<uint16_t> > &_used_client_ports) const;
void set_magic_cookies_unicast_address();
@@ -379,6 +387,9 @@ private:
void load_secure_services(const configuration_element &_element);
void load_secure_service(const boost::property_tree::ptree &_tree);
+ void load_partitions(const configuration_element &_element);
+ void load_partition(const boost::property_tree::ptree &_tree);
+
private:
std::mutex mutex_;
@@ -514,7 +525,9 @@ protected:
ET_PLUGIN_TYPE,
ET_ROUTING_CREDENTIALS,
ET_SHUTDOWN_TIMEOUT,
- ET_MAX = 42
+ ET_MAX_REMOTE_SUBSCRIBERS,
+ ET_PARTITIONS,
+ ET_MAX = 44
};
bool is_configured_[ET_MAX];
@@ -552,7 +565,7 @@ protected:
bool has_issued_methods_warning_;
bool has_issued_clients_warning_;
- std::uint32_t udp_receive_buffer_size_;
+ int udp_receive_buffer_size_;
std::chrono::nanoseconds npdu_default_debounce_requ_;
std::chrono::nanoseconds npdu_default_debounce_resp_;
@@ -568,6 +581,14 @@ protected:
uint32_t statistics_interval_;
uint32_t statistics_min_freq_;
uint32_t statistics_max_messages_;
+ uint8_t max_remote_subscribers_;
+
+ mutable std::mutex partitions_mutex_;
+ std::map<service_t,
+ std::map<instance_t,
+ partition_id_t
+ >
+ > partitions_;
};
} // namespace cfg