mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Work in progress
This commit is contained in:
parent
a89988b8a0
commit
58be8234b8
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Embedded Template Library - Arduino",
|
||||
"version": "20.35.11",
|
||||
"version": "20.35.12",
|
||||
"authors": {
|
||||
"name": "John Wellbelove",
|
||||
"email": "john.wellbelove@etlcpp.com"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name=Embedded Template Library - Arduino
|
||||
version=20.35.11
|
||||
version=20.35.12
|
||||
author= John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
license=MIT
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -69,6 +69,92 @@ SOFTWARE.
|
||||
|
||||
namespace etl
|
||||
{
|
||||
//***************************************************************************
|
||||
///
|
||||
//***************************************************************************
|
||||
class router_id
|
||||
{
|
||||
public:
|
||||
|
||||
typedef etl::message_router_id_t value_type;
|
||||
|
||||
//***********************************
|
||||
explicit ETL_CONSTEXPR router_id(value_type id_)
|
||||
: id(id_)
|
||||
{
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR value_type value() const
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR operator value_type() const
|
||||
{
|
||||
return value();
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR bool is_all_routers() const
|
||||
{
|
||||
return (id == imessage_router::ALL_MESSAGE_ROUTERS);
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR bool is_null_router() const
|
||||
{
|
||||
return (id == imessage_router::NULL_MESSAGE_ROUTER);
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR bool is_message_bus() const
|
||||
{
|
||||
return (id == imessage_router::MESSAGE_BUS);
|
||||
}
|
||||
|
||||
//***********************************
|
||||
ETL_CONSTEXPR bool is_message_broker() const
|
||||
{
|
||||
return (id == imessage_router::MESSAGE_BROKER);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
etl::message_router_id_t id;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
///
|
||||
//***************************************************************************
|
||||
class source_router_id : public router_id
|
||||
{
|
||||
public:
|
||||
|
||||
typedef etl::message_router_id_t value_type;
|
||||
|
||||
explicit ETL_CONSTEXPR source_router_id(value_type id_)
|
||||
: router_id(id_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
///
|
||||
//***************************************************************************
|
||||
class destination_router_id : public router_id
|
||||
{
|
||||
public:
|
||||
|
||||
typedef etl::message_router_id_t value_type;
|
||||
|
||||
explicit ETL_CONSTEXPR destination_router_id(value_type id_)
|
||||
: router_id(id_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
/// Base exception class for message router
|
||||
//***************************************************************************
|
||||
@ -116,6 +202,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 +219,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 +244,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
|
||||
{
|
||||
|
||||
@ -40,7 +40,7 @@ SOFTWARE.
|
||||
|
||||
#define ETL_VERSION_MAJOR 20
|
||||
#define ETL_VERSION_MINOR 35
|
||||
#define ETL_VERSION_PATCH 11
|
||||
#define ETL_VERSION_PATCH 12
|
||||
|
||||
#define ETL_VERSION ETL_STRING(ETL_VERSION_MAJOR) "." ETL_STRING(ETL_VERSION_MINOR) "." ETL_STRING(ETL_VERSION_PATCH)
|
||||
#define ETL_VERSION_W ETL_WIDE_STRING(ETL_VERSION_MAJOR) L"." ETL_WIDE_STRING(ETL_VERSION_MINOR) L"." ETL_WIDE_STRING(ETL_VERSION_PATCH)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Embedded Template Library",
|
||||
"version": "20.35.11",
|
||||
"version": "20.35.12",
|
||||
"authors": {
|
||||
"name": "John Wellbelove",
|
||||
"email": "john.wellbelove@etlcpp.com"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
name=Embedded Template Library
|
||||
version=20.35.11
|
||||
version=20.35.12
|
||||
author= John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
|
||||
license=MIT
|
||||
|
||||
@ -1 +1 @@
|
||||
20.35.11
|
||||
20.35.12
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user