mirror of
https://github.com/ETLCPP/etl.git
synced 2026-11-09 14:49:53 +08:00
Synced message_router generator to updated code
This commit is contained in:
parent
0ad0cec342
commit
a7fe6bc6b0
@ -76,7 +76,7 @@ cog.outl("//********************************************************************
|
|||||||
#include "placement_new.h"
|
#include "placement_new.h"
|
||||||
#include "successor.h"
|
#include "successor.h"
|
||||||
#include "type_traits.h"
|
#include "type_traits.h"
|
||||||
|
#include "type_list.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
namespace etl
|
namespace etl
|
||||||
@ -574,8 +574,7 @@ namespace etl
|
|||||||
cog.outl("//***************************************************************************")
|
cog.outl("//***************************************************************************")
|
||||||
cog.outl("template <typename TDerived,")
|
cog.outl("template <typename TDerived,")
|
||||||
cog.out(" ")
|
cog.out(" ")
|
||||||
cog.out("typename T1, ")
|
for n in range(1, int(Handlers)):
|
||||||
for n in range(2, int(Handlers)):
|
|
||||||
cog.out("typename T%s = void, " % n)
|
cog.out("typename T%s = void, " % n)
|
||||||
if n % 4 == 0:
|
if n % 4 == 0:
|
||||||
cog.outl("")
|
cog.outl("")
|
||||||
@ -589,8 +588,17 @@ namespace etl
|
|||||||
cog.out(" typedef etl::message_packet<")
|
cog.out(" typedef etl::message_packet<")
|
||||||
for n in range(1, int(Handlers)):
|
for n in range(1, int(Handlers)):
|
||||||
cog.out("T%s, " % n)
|
cog.out("T%s, " % n)
|
||||||
cog.outl(" T%s> message_packet;" % int(Handlers))
|
cog.outl("T%s> message_packet;" % int(Handlers))
|
||||||
cog.outl("")
|
cog.outl("")
|
||||||
|
|
||||||
|
cog.outl("#if ETL_USING_CPP11")
|
||||||
|
cog.out(" using message_types = etl::type_list<")
|
||||||
|
for n in range(1, int(Handlers)):
|
||||||
|
cog.out("T%s, " % n)
|
||||||
|
cog.outl("T%s> message_packet;" % int(Handlers))
|
||||||
|
cog.outl("#endif")
|
||||||
|
cog.outl("")
|
||||||
|
|
||||||
cog.outl(" //**********************************************")
|
cog.outl(" //**********************************************")
|
||||||
cog.outl(" message_router(etl::message_router_id_t id_)")
|
cog.outl(" message_router(etl::message_router_id_t id_)")
|
||||||
cog.outl(" : imessage_router(id_)")
|
cog.outl(" : imessage_router(id_)")
|
||||||
@ -765,6 +773,15 @@ namespace etl
|
|||||||
cog.out("T%s, " % t)
|
cog.out("T%s, " % t)
|
||||||
cog.outl(" T%s> message_packet;" % n)
|
cog.outl(" T%s> message_packet;" % n)
|
||||||
cog.outl("")
|
cog.outl("")
|
||||||
|
|
||||||
|
cog.outl("#if ETL_USING_CPP11")
|
||||||
|
cog.out(" using message_types = etl::type_list<")
|
||||||
|
for t in range(1, n):
|
||||||
|
cog.out("T%s, " % t)
|
||||||
|
cog.outl("T%s>;" % n)
|
||||||
|
cog.outl("#endif")
|
||||||
|
cog.outl("")
|
||||||
|
|
||||||
cog.outl(" //**********************************************")
|
cog.outl(" //**********************************************")
|
||||||
cog.outl(" message_router(etl::message_router_id_t id_)")
|
cog.outl(" message_router(etl::message_router_id_t id_)")
|
||||||
cog.outl(" : imessage_router(id_)")
|
cog.outl(" : imessage_router(id_)")
|
||||||
|
|||||||
@ -65,7 +65,6 @@ SOFTWARE.
|
|||||||
#include "successor.h"
|
#include "successor.h"
|
||||||
#include "type_traits.h"
|
#include "type_traits.h"
|
||||||
#include "type_list.h"
|
#include "type_list.h"
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
namespace etl
|
namespace etl
|
||||||
@ -411,8 +410,7 @@ namespace etl
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
using message_packet = etl::message_packet<TMessageTypes...>;
|
typedef etl::message_packet<TMessageTypes...> message_packet;
|
||||||
using message_types = etl::type_list<TMessageTypes...>;
|
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router()
|
message_router()
|
||||||
@ -550,108 +548,7 @@ namespace etl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#else
|
||||||
//***************************************************************************
|
|
||||||
// The definition for 0 message types.
|
|
||||||
//***************************************************************************
|
|
||||||
template <typename TDerived>
|
|
||||||
class message_router<TDerived> : public imessage_router
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
using message_packet = etl::message_packet<>;
|
|
||||||
using message_types = etl::type_list<>;
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router()
|
|
||||||
: imessage_router(etl::imessage_router::MESSAGE_ROUTER)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::imessage_router& successor_)
|
|
||||||
: imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::message_router_id_t id_)
|
|
||||||
: imessage_router(id_)
|
|
||||||
{
|
|
||||||
ETL_ASSERT(id_ <= etl::imessage_router::MAX_MESSAGE_ROUTER, ETL_ERROR(etl::message_router_illegal_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::message_router_id_t id_, etl::imessage_router& successor_)
|
|
||||||
: imessage_router(id_, successor_)
|
|
||||||
{
|
|
||||||
ETL_ASSERT(id_ <= etl::imessage_router::MAX_MESSAGE_ROUTER, ETL_ERROR(etl::message_router_illegal_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
using etl::imessage_router::receive;
|
|
||||||
|
|
||||||
void receive(const etl::imessage& msg) ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
if (has_successor())
|
|
||||||
{
|
|
||||||
get_successor().receive(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename TMessage, typename etl::enable_if<etl::is_base_of<imessage, TMessage>::value, int>::type = 0>
|
|
||||||
void receive(const TMessage& msg)
|
|
||||||
{
|
|
||||||
#include "etl/private/diagnostic_array_bounds_push.h"
|
|
||||||
if (has_successor())
|
|
||||||
{
|
|
||||||
get_successor().receive(msg);
|
|
||||||
}
|
|
||||||
#include "etl/private/diagnostic_pop.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
using imessage_router::accepts;
|
|
||||||
|
|
||||||
bool accepts(etl::message_id_t /*id*/) const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
ETL_DEPRECATED bool is_null_router() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
bool is_producer() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
bool is_consumer() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
//***************************************************************************
|
|
||||||
/// Helper to turn etl::type_list<TTypes...> into etl::tuple<TTypes...>
|
|
||||||
template <typename TDerived, typename TList>
|
|
||||||
struct message_router_from_type_list;
|
|
||||||
|
|
||||||
template <typename TDerived, typename... TMessageTypes>
|
|
||||||
struct message_router_from_type_list<TDerived, etl::type_list<TMessageTypes...>>
|
|
||||||
{
|
|
||||||
using type = etl::message_router<TDerived, TMessageTypes...>;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename TDerived, typename TTypeList>
|
|
||||||
using message_router_from_type_list_t = typename message_router_from_type_list<TDerived, TTypeList>::type;
|
|
||||||
|
|
||||||
#else
|
|
||||||
//*************************************************************************************************
|
//*************************************************************************************************
|
||||||
// For C++14 and below.
|
// For C++14 and below.
|
||||||
//*************************************************************************************************
|
//*************************************************************************************************
|
||||||
@ -669,9 +566,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> message_packet;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -824,9 +721,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -979,9 +876,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1133,9 +1030,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1285,9 +1182,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1436,9 +1333,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1586,9 +1483,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1735,9 +1632,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8, T9> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8, T9>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -1882,9 +1779,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7, T8> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7, T8>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2028,9 +1925,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6, T7> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6, T7>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2172,9 +2069,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5, T6> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5, T6> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5, T6>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2315,9 +2212,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4, T5> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4, T5> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4, T5>;
|
using message_types = etl::type_list<T1, T2, T3, T4, T5>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2456,9 +2353,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3, T4> message_packet;
|
typedef etl::message_packet<T1, T2, T3, T4> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3, T4>;
|
using message_types = etl::type_list<T1, T2, T3, T4>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2596,9 +2493,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2, T3> message_packet;
|
typedef etl::message_packet<T1, T2, T3> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2, T3>;
|
using message_types = etl::type_list<T1, T2, T3>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2735,9 +2632,9 @@ namespace etl
|
|||||||
|
|
||||||
typedef etl::message_packet<T1, T2> message_packet;
|
typedef etl::message_packet<T1, T2> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1, T2>;
|
using message_types = etl::type_list<T1, T2>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2871,11 +2768,11 @@ namespace etl
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
typedef etl::message_packet<T1> message_packet;
|
typedef etl::message_packet< T1> message_packet;
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
#if ETL_USING_CPP11
|
||||||
using message_types = etl::type_list<T1>;
|
using message_types = etl::type_list<T1>;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//**********************************************
|
//**********************************************
|
||||||
message_router(etl::message_router_id_t id_)
|
message_router(etl::message_router_id_t id_)
|
||||||
@ -2997,94 +2894,6 @@ namespace etl
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//***************************************************************************
|
|
||||||
// Specialisation for 0 message types.
|
|
||||||
//***************************************************************************
|
|
||||||
template <typename TDerived>
|
|
||||||
class message_router<TDerived, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
|
|
||||||
: public imessage_router
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef etl::message_packet<> message_packet;
|
|
||||||
|
|
||||||
#if ETL_USING_CPP11
|
|
||||||
using message_types = etl::type_list<>;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::message_router_id_t id_)
|
|
||||||
: imessage_router(id_)
|
|
||||||
{
|
|
||||||
ETL_ASSERT(id_ <= etl::imessage_router::MAX_MESSAGE_ROUTER, ETL_ERROR(etl::message_router_illegal_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::message_router_id_t id_, etl::imessage_router& successor_)
|
|
||||||
: imessage_router(id_, successor_)
|
|
||||||
{
|
|
||||||
ETL_ASSERT(id_ <= etl::imessage_router::MAX_MESSAGE_ROUTER, ETL_ERROR(etl::message_router_illegal_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router()
|
|
||||||
: imessage_router(etl::imessage_router::MESSAGE_ROUTER)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
message_router(etl::imessage_router& successor_)
|
|
||||||
: imessage_router(etl::imessage_router::MESSAGE_ROUTER, successor_)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
using etl::imessage_router::receive;
|
|
||||||
|
|
||||||
void receive(const etl::imessage& msg) ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
#include "etl/private/diagnostic_array_bounds_push.h"
|
|
||||||
if (has_successor())
|
|
||||||
{
|
|
||||||
get_successor().receive(msg);
|
|
||||||
}
|
|
||||||
#include "etl/private/diagnostic_pop.h"
|
|
||||||
}
|
|
||||||
|
|
||||||
//**********************************************
|
|
||||||
using imessage_router::accepts;
|
|
||||||
|
|
||||||
bool accepts(etl::message_id_t id) const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
if (has_successor())
|
|
||||||
{
|
|
||||||
return get_successor().accepts(id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
ETL_DEPRECATED bool is_null_router() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
bool is_producer() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//********************************************
|
|
||||||
bool is_consumer() const ETL_OVERRIDE
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user