Reverted message_id to a virtual function

This commit is contained in:
John Wellbelove 2017-07-31 19:31:39 +01:00
parent 93f2ac02c2
commit 740e8b4dd6
8 changed files with 76 additions and 85 deletions

View File

@ -375,7 +375,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -429,7 +429,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -482,7 +482,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -534,7 +534,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -584,7 +584,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -633,7 +633,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -681,7 +681,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -728,7 +728,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -773,7 +773,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -817,7 +817,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -860,7 +860,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -902,7 +902,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -942,7 +942,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -981,7 +981,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -1019,7 +1019,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{
@ -1056,7 +1056,7 @@ namespace etl
etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)
{
etl::fsm_state_id_t new_state_id;
etl::message_id_t event_id = message.message_id;
etl::message_id_t event_id = message.get_message_id();
switch (event_id)
{

View File

@ -395,7 +395,7 @@ namespace etl
cog.outl(" etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)")
cog.outl(" {")
cog.outl(" etl::fsm_state_id_t new_state_id;")
cog.outl(" etl::message_id_t event_id = message.message_id;")
cog.outl(" etl::message_id_t event_id = message.get_message_id();")
cog.outl("")
cog.outl(" switch (event_id)")
cog.outl(" {")
@ -461,7 +461,7 @@ namespace etl
cog.outl(" etl::fsm_state_id_t process_event(etl::imessage_router& source, const etl::imessage& message)")
cog.outl(" {")
cog.outl(" etl::fsm_state_id_t new_state_id;")
cog.outl(" etl::message_id_t event_id = message.message_id;")
cog.outl(" etl::message_id_t event_id = message.get_message_id();")
cog.outl("")
cog.outl(" switch (event_id)")
cog.outl(" {")

View File

@ -69,16 +69,7 @@ namespace etl
//********************************************
virtual ~imessage() {}
const etl::message_id_t message_id;
protected:
//********************************************
imessage(etl::message_id_t id)
: message_id(id)
{
}
virtual etl::message_id_t get_message_id() const = 0;
};
//***************************************************************************
@ -93,9 +84,9 @@ namespace etl
};
//********************************************
message()
: imessage(ID_)
etl::message_id_t get_message_id() const
{
return ID;
}
};
}

View File

@ -219,7 +219,7 @@ namespace etl
// So pass it on.
bus.receive(source, destination_router_id, message);
}
else if (router.accepts(message.message_id))
else if (router.accepts(message.get_message_id()))
{
router.receive(source, message);
}
@ -245,7 +245,7 @@ namespace etl
// Call all of them.
while (range.first != range.second)
{
if ((*(range.first))->accepts(message.message_id))
if ((*(range.first))->accepts(message.get_message_id()))
{
(*(range.first))->receive(source, message);
}
@ -253,7 +253,7 @@ namespace etl
++range.first;
}
// Do any message busses.
// Do any message buses.
// These are always at the end of the list.
irouter = std::lower_bound(router_list.begin(),
router_list.end(),
@ -306,12 +306,12 @@ namespace etl
//*******************************************
struct compare_router_id
{
bool operator()(etl::imessage_router* prouter, etl::message_router_id_t id) const
bool operator()(const etl::imessage_router* prouter, etl::message_router_id_t id) const
{
return prouter->get_message_router_id() < id;
}
bool operator()(etl::message_router_id_t id, etl::imessage_router* prouter) const
bool operator()(etl::message_router_id_t id, const etl::imessage_router* prouter) const
{
return id < prouter->get_message_router_id();
}

View File

@ -104,7 +104,7 @@ namespace etl
//********************************************
bool accepts(const etl::imessage& msg) const
{
return accepts(msg.message_id);
return accepts(msg.get_message_id());
}
//********************************************
@ -214,7 +214,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -295,7 +295,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const etl::message_id_t id = msg.message_id;
const etl::message_id_t id = msg.get_message_id();
switch (id)
{
@ -356,7 +356,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -436,7 +436,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -496,7 +496,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -575,7 +575,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -634,7 +634,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -712,7 +712,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -769,7 +769,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -846,7 +846,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -902,7 +902,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -978,7 +978,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1033,7 +1033,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1108,7 +1108,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1162,7 +1162,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1236,7 +1236,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1288,7 +1288,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1361,7 +1361,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1412,7 +1412,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1484,7 +1484,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1533,7 +1533,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1604,7 +1604,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1652,7 +1652,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1722,7 +1722,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1768,7 +1768,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1837,7 +1837,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1882,7 +1882,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -1950,7 +1950,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -1994,7 +1994,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -2061,7 +2061,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{
@ -2104,7 +2104,7 @@ namespace etl
//********************************************
explicit message_packet(const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
void* p = data;
@ -2170,7 +2170,7 @@ namespace etl
//**********************************************
void receive(etl::imessage_router& source, const etl::imessage& msg)
{
const size_t id = msg.message_id;
const size_t id = msg.get_message_id();
switch (id)
{

View File

@ -116,7 +116,7 @@ namespace etl
//********************************************
bool accepts(const etl::imessage& msg) const
{
return accepts(msg.message_id);
return accepts(msg.get_message_id());
}
//********************************************
@ -236,7 +236,7 @@ namespace etl
cog.outl(" //********************************************")
cog.outl(" explicit message_packet(const etl::imessage& msg)")
cog.outl(" {")
cog.outl(" const size_t id = msg.message_id;")
cog.outl(" const size_t id = msg.get_message_id();")
cog.outl("")
cog.outl(" void* p = data;")
cog.outl("")
@ -315,7 +315,7 @@ namespace etl
cog.outl(" //**********************************************")
cog.outl(" void receive(etl::imessage_router& source, const etl::imessage& msg)")
cog.outl(" {")
cog.outl(" const etl::message_id_t id = msg.message_id;")
cog.outl(" const etl::message_id_t id = msg.get_message_id();")
cog.outl("")
cog.outl(" switch (id)")
cog.outl(" {")
@ -392,7 +392,7 @@ namespace etl
cog.outl(" //********************************************")
cog.outl(" explicit message_packet(const etl::imessage& msg)")
cog.outl(" {")
cog.outl(" const size_t id = msg.message_id;")
cog.outl(" const size_t id = msg.get_message_id();")
cog.outl("")
cog.outl(" void* p = data;")
cog.outl("")
@ -471,7 +471,7 @@ namespace etl
cog.outl(" //**********************************************")
cog.outl(" void receive(etl::imessage_router& source, const etl::imessage& msg)")
cog.outl(" {")
cog.outl(" const size_t id = msg.message_id;")
cog.outl(" const size_t id = msg.get_message_id();")
cog.outl("")
cog.outl(" switch (id)")
cog.outl(" {")

View File

@ -8248,14 +8248,14 @@
"map.h"
<algorithm>
1501074198 source:d:\users\john\documents\programming\github\etl\test\test_fsm.cpp
1501519465 source:d:\users\john\documents\programming\github\etl\test\test_fsm.cpp
"UnitTest++.h"
"fsm.h"
"enum_type.h"
"container.h"
<iostream>
1501414024 d:\users\john\documents\programming\github\etl\src\fsm.h
1501527698 d:\users\john\documents\programming\github\etl\src\fsm.h
<stdint.h>
"array.h"
"nullptr.h"
@ -8268,7 +8268,7 @@
1501263136 d:\users\john\documents\programming\github\etl\src\user_type.h
1501419761 d:\users\john\documents\programming\github\etl\src\message_router.h
1501527644 d:\users\john\documents\programming\github\etl\src\message_router.h
<stdint.h>
"message.h"
"message_types.h"
@ -8277,7 +8277,7 @@
"exception.h"
"largest.h"
1501074054 source:d:\users\john\documents\programming\github\etl\test\test_message_router.cpp
1501527721 source:d:\users\john\documents\programming\github\etl\test\test_message_router.cpp
"UnitTest++.h"
"ExtraCheckMacros.h"
"message_router.h"
@ -8322,7 +8322,7 @@
"type_traits.h"
"function.h"
1501271821 d:\users\john\documents\programming\github\etl\src\message.h
1501527784 d:\users\john\documents\programming\github\etl\src\message.h
<stdint.h>
"error_handler.h"
"exception.h"
@ -8331,7 +8331,7 @@
1501263347 d:\users\john\documents\programming\github\etl\src\message_types.h
<stdint.h>
1501419244 source:d:\users\john\documents\programming\github\etl\test\test_message_bus.cpp
1501491785 source:d:\users\john\documents\programming\github\etl\test\test_message_bus.cpp
"UnitTest++.h"
"ExtraCheckMacros.h"
"message_router.h"
@ -8340,7 +8340,7 @@
"largest.h"
"packet.h"
1501419692 d:\users\john\documents\programming\github\etl\src\message_bus.h
1501527665 d:\users\john\documents\programming\github\etl\src\message_bus.h
<stdint.h>
<algorithm>
"algorithm.h"

View File

@ -335,19 +335,19 @@ namespace
Router2 r2;
CHECK(r2.accepts(message1));
CHECK(r2.accepts(message1.message_id));
CHECK(r2.accepts(message1.get_message_id()));
CHECK(r2.accepts(message2));
CHECK(r2.accepts(message2.message_id));
CHECK(r2.accepts(message2.get_message_id()));
CHECK(!r2.accepts(message3));
CHECK(!r2.accepts(message3.message_id));
CHECK(!r2.accepts(message3.get_message_id()));
CHECK(r2.accepts(message4));
CHECK(r2.accepts(message4.message_id));
CHECK(r2.accepts(message4.get_message_id()));
CHECK(r2.accepts(message5));
CHECK(r2.accepts(message5.message_id));
CHECK(r2.accepts(message5.get_message_id()));
}
//=========================================================================