| 933 | } |
| 934 | |
| 935 | void routing_manager_impl::notify_one(service_t _service, instance_t _instance, event_t _event, std::shared_ptr<payload> _payload, |
| 936 | client_t _client, bool _force) { |
| 937 | std::shared_ptr<event> its_event = find_event(_service, _instance, _event); |
| 938 | if (its_event) { |
| 939 | std::set<std::shared_ptr<endpoint_definition>> its_targets; |
| 940 | const auto its_reliability = its_event->get_reliability(); |
| 941 | for (const auto g : its_event->get_eventgroups()) { |
| 942 | const auto its_eventgroup = find_eventgroup(_service, _instance, g); |
| 943 | if (its_eventgroup) { |
| 944 | const auto its_subscriptions = its_eventgroup->get_remote_subscriptions(); |
| 945 | for (const auto& s : its_subscriptions) { |
| 946 | if (s->has_client(_client)) { |
| 947 | if (its_reliability == reliability_type_e::RT_RELIABLE || its_reliability == reliability_type_e::RT_BOTH) { |
| 948 | const auto its_reliable = s->get_reliable(); |
| 949 | if (its_reliable) |
| 950 | its_targets.insert(its_reliable); |
| 951 | } |
| 952 | if (its_reliability == reliability_type_e::RT_UNRELIABLE || its_reliability == reliability_type_e::RT_BOTH) { |
| 953 | const auto its_unreliable = s->get_unreliable(); |
| 954 | if (its_unreliable) |
| 955 | its_targets.insert(its_unreliable); |
| 956 | } |
| 957 | } |
| 958 | } |
| 959 | } |
| 960 | } |
| 961 | |
| 962 | if (its_targets.size() > 0) { |
| 963 | for (const auto& its_target : its_targets) { |
| 964 | its_event->set_payload(_payload, _client, its_target, _force); |
| 965 | } |
| 966 | } |
| 967 | } else { |
| 968 | VSOMEIP_WARNING << "Attempt to update the undefined event/field [" << hex4(_service) << "." << hex4(_instance) << "." |
| 969 | << hex4(_event) << "]"; |
| 970 | } |
| 971 | } |
| 972 | |
| 973 | bool routing_manager_impl::offer_service_remotely(service_t _service, instance_t _instance, std::uint16_t _port, bool _reliable, |
| 974 | bool _magic_cookies_enabled) { |
no test coverage detected