From 44a90fdbb32263943d46669c5c7ac2f225331687 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sun, 7 Mar 2021 12:32:24 +0000 Subject: [PATCH] Changed to using etl::flat_multimap --- include/etl/message_router_registry.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/include/etl/message_router_registry.h b/include/etl/message_router_registry.h index 8a7a396e..2f8039c9 100644 --- a/include/etl/message_router_registry.h +++ b/include/etl/message_router_registry.h @@ -34,10 +34,11 @@ SOFTWARE. #include "platform.h" #include "file_error_numbers.h" #include "message_router.h" -#include "flat_map.h" +#include "flat_multimap.h" #include "exception.h" #include "error_handler.h" #include "iterator.h" +#include "memory.h" #undef ETL_FILE #define ETL_FILE ETL_MESSAGE_ROUTER_REGISTRY @@ -77,7 +78,7 @@ namespace etl { private: - typedef etl::iflat_map IRegistry; + typedef etl::iflat_multimap IRegistry; public: @@ -363,7 +364,9 @@ namespace etl return false; } - return registry.find(p_router->get_message_router_id()) != registry.end(); + typename IRegistry::const_iterator irouter = registry.find(p_router->get_message_router_id()); + + return (irouter != registry.cend()) && (irouter->second == p_router); } //******************************************** @@ -372,7 +375,9 @@ namespace etl //******************************************** bool contains(const etl::imessage_router& router) const { - return registry.find(router.get_message_router_id()) != registry.end(); + typename IRegistry::const_iterator irouter = registry.find(router.get_message_router_id()); + + return (irouter != registry.cend()) && (irouter->second == &router); } //******************************************** @@ -497,7 +502,7 @@ namespace etl private: - typedef etl::flat_map Registry; + typedef etl::flat_multimap Registry; Registry registry; }; }