diff --git a/include/etl/fsm.h b/include/etl/fsm.h index cfde1a2b..6347bd74 100644 --- a/include/etl/fsm.h +++ b/include/etl/fsm.h @@ -266,26 +266,6 @@ namespace etl } } - //******************************************* - /// Top level message handler for the FSM. - //******************************************* - void receive(const etl::imessage& message) ETL_OVERRIDE - { - static etl::null_message_router nmr; - receive(nmr, message); - } - - //******************************************* - /// Top level message handler for the FSM. - //******************************************* - void receive(imessage_router& source, etl::message_router_id_t destination_router_id, const etl::imessage& message) ETL_OVERRIDE - { - if ((destination_router_id == get_message_router_id()) || (destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS)) - { - receive(source, message); - } - } - //******************************************* /// Top level message handler for the FSM. //******************************************* diff --git a/include/etl/generators/message_router_generator.h b/include/etl/generators/message_router_generator.h index 0ccd0bf7..1a5a059e 100644 --- a/include/etl/generators/message_router_generator.h +++ b/include/etl/generators/message_router_generator.h @@ -129,14 +129,7 @@ namespace etl virtual bool is_producer() const = 0; virtual bool is_consumer() const = 0; - //******************************************** - void receive(const etl::imessage& message) - { - receive(etl::get_null_message_router(), message); - } - - //******************************************** - void receive(imessage_router& source, etl::message_router_id_t destination_router_id, const etl::imessage& message) + virtual void receive(imessage_router& source, etl::message_router_id_t destination_router_id, const etl::imessage& message) { if ((destination_router_id == get_message_router_id()) || (destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS)) { @@ -144,6 +137,12 @@ namespace etl } } + //******************************************** + void receive(const etl::imessage& message) + { + receive(etl::get_null_message_router(), message); + } + //******************************************** virtual void receive(imessage_router& source, etl::shared_message shared_msg) { diff --git a/include/etl/message_bus.h b/include/etl/message_bus.h index 048ecc7e..6254b702 100644 --- a/include/etl/message_bus.h +++ b/include/etl/message_bus.h @@ -147,13 +147,6 @@ namespace etl } } - //******************************************* - void receive(const etl::imessage& message) ETL_OVERRIDE - { - etl::null_message_router nmr; - receive(nmr, etl::imessage_router::ALL_MESSAGE_ROUTERS, message); - } - //******************************************* void receive(etl::message_router_id_t destination_router_id, const etl::imessage& message) diff --git a/include/etl/message_router.h b/include/etl/message_router.h index 2790794e..1d379c32 100644 --- a/include/etl/message_router.h +++ b/include/etl/message_router.h @@ -118,20 +118,21 @@ namespace etl virtual bool is_consumer() const = 0; //******************************************** - void receive(const etl::imessage& message) - { - receive(etl::get_null_message_router(), message); - } - - //******************************************** - void receive(imessage_router& source, etl::message_router_id_t destination_router_id, const etl::imessage& message) + virtual void receive(imessage_router& source, etl::message_router_id_t destination_router_id, const etl::imessage& message) { if ((destination_router_id == get_message_router_id()) || (destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS)) { receive(source, message); } } - + + //******************************************** + void receive(const etl::imessage& message) + { + receive(etl::get_null_message_router(), message); + } + + //******************************************** virtual void receive(imessage_router& source, etl::shared_message shared_msg) {