Work in progress

This commit is contained in:
John Wellbelove 2023-02-21 11:56:18 +00:00
parent 2da1accd19
commit 39b3fa59a8
3 changed files with 87 additions and 3 deletions

View File

@ -128,6 +128,14 @@ namespace etl
virtual bool is_producer() const = 0;
virtual bool is_consumer() const = 0;
virtual void receive(const etl::imessage& message, etl::message_router_id_t source_router_id)
{
if (source_router_id != get_message_router_id())
{
receive(message);
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, const etl::imessage& message)
{
@ -137,6 +145,16 @@ namespace etl
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, const etl::imessage& message, etl::message_router_id_t source_router_id)
{
if (((destination_router_id == get_message_router_id()) && (source_router_id != get_message_router_id())) ||
(destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
{
receive(message);
}
}
//********************************************
virtual void receive(etl::shared_message shared_msg)
{
@ -152,6 +170,16 @@ namespace etl
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, etl::shared_message shared_msg, etl::message_router_id_t source_router_id)
{
if (((destination_router_id == get_message_router_id()) && (source_router_id != get_message_router_id())) ||
(destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
{
receive(shared_msg);
}
}
//********************************************
bool accepts(const etl::imessage& msg) const
{

View File

@ -150,14 +150,32 @@ namespace etl
}
//*******************************************
virtual void receive(etl::shared_message shared_msg) ETL_OVERRIDE
virtual void receive(etl::shared_message shared_msg) ETL_OVERRIDE
{
receive(etl::imessage_router::ALL_MESSAGE_ROUTERS, shared_msg);
}
virtual void receive(const etl::imessage& message,
etl::message_router_id_t source_router_id)
{
receive(etl::imessage_router::ALL_MESSAGE_ROUTERS,
message,
source_router_id);
}
//*******************************************
virtual void receive(etl::shared_message shared_msg,
etl::message_router_id_t source_router_id) ETL_OVERRIDE
{
receive(etl::imessage_router::ALL_MESSAGE_ROUTERS,
shared_msg,
source_router_id);
}
//*******************************************
virtual void receive(etl::message_router_id_t destination_router_id,
const etl::imessage& message) ETL_OVERRIDE
const etl::imessage& message,
etl::message_router_id_t source_router_id) ETL_OVERRIDE
{
switch (destination_router_id)
{
@ -238,7 +256,8 @@ namespace etl
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id,
etl::shared_message shared_msg) ETL_OVERRIDE
etl::shared_message shared_msg,
etl::message_router_id_t source_router_id) ETL_OVERRIDE
{
switch (destination_router_id)
{

View File

@ -116,6 +116,14 @@ namespace etl
virtual bool is_producer() const = 0;
virtual bool is_consumer() const = 0;
virtual void receive(const etl::imessage& message, etl::message_router_id_t source_router_id)
{
if (source_router_id != get_message_router_id())
{
receive(message);
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, const etl::imessage& message)
{
@ -125,6 +133,16 @@ namespace etl
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, const etl::imessage& message, etl::message_router_id_t source_router_id)
{
if (((destination_router_id == get_message_router_id()) && (source_router_id != get_message_router_id())) ||
(destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
{
receive(message);
}
}
//********************************************
virtual void receive(etl::shared_message shared_msg)
{
@ -140,6 +158,25 @@ namespace etl
}
}
//********************************************
virtual void receive(etl::shared_message shared_msg, etl::message_router_id_t source_router_id)
{
if (source_router_id != get_message_router_id())
{
receive(shared_msg);
}
}
//********************************************
virtual void receive(etl::message_router_id_t destination_router_id, etl::shared_message shared_msg, etl::message_router_id_t source_router_id)
{
if (((destination_router_id == get_message_router_id()) && (source_router_id != get_message_router_id())) ||
(destination_router_id == imessage_router::ALL_MESSAGE_ROUTERS))
{
receive(shared_msg);
}
}
//********************************************
bool accepts(const etl::imessage& msg) const
{