29#ifndef ETL_MESSAGE_INCLUDED
30#define ETL_MESSAGE_INCLUDED
35#include "message_types.h"
37#include "static_assert.h"
48 message_exception(string_type reason_, string_type file_name_, numeric_type line_number_)
49 :
exception(reason_, file_name_, line_number_)
59 unhandled_message_exception(string_type file_name_, numeric_type line_number_)
60 : message_exception(ETL_ERROR_TEXT(
"message:unknown", ETL_MESSAGE_FILE_ID
"A"), file_name_, line_number_)
67#if ETL_HAS_VIRTUAL_MESSAGES
89 template <etl::message_
id_t ID_,
typename TBase = etl::imessage>
96 typedef TBase base_type;
99 ETL_NODISCARD
virtual etl::message_id_t get_message_id()
const ETL_NOEXCEPT ETL_OVERRIDE
133 imessage(
const imessage& other) ETL_NOEXCEPT
139 imessage& operator =(
const imessage& rhs) ETL_NOEXCEPT
150 imessage() ETL_DELETE;
157 template <etl::
message_id_t ID_, typename TBase = etl::imessage>
158 class message : public TBase, public etl::message_tag
162 ETL_STATIC_ASSERT((etl::is_base_of<etl::imessage, TBase>::value),
"TBase is not derived from etl::imessage");
164 typedef TBase base_type;
167 message() ETL_NOEXCEPT
173 message(
const message&) ETL_NOEXCEPT
179 message& operator =(
const message&) ETL_NOEXCEPT
192 template <etl::message_
id_t ID_,
typename TBase>
198 template <
typename T>
206 template <
typename T>
214 template <
typename T>
222 template <
typename T>
230 template <
typename T>
239 template <
typename T>
240 inline constexpr bool is_imessage_v = is_imessage<T>::value;
245 template <
typename T>
246 inline constexpr bool is_message_v = is_message<T>::value;
251 template <
typename T>
252 inline constexpr bool is_message_type_v = is_message_type<T>::value;
257 template <
typename T>
258 inline constexpr bool is_message_base_v = is_message_base<T>::value;
263 template <
typename T>
264 inline constexpr bool is_user_message_base_v = is_user_message_base<T>::value;
static ETL_CONSTANT etl::message_id_t ID
The message's static ID.
Definition message.h:105
ETL_CONSTEXPR exception(string_type reason_, string_type, numeric_type line_)
Constructor.
Definition exception.h:69
Definition exception.h:47
is_base_of
Definition type_traits_generator.h:1315
bitset_ext
Definition absolute.h:39
uint_least8_t message_id_t
Allow alternative type for message id.
Definition message_types.h:40
Definition type_traits_generator.h:912
Is T an etl::imessage?
Definition message.h:200
Is T a base of etl::message<T>.
Definition message.h:224
Is T an etl::message<> or derived from etl::message<>.
Definition message.h:216
Is T ultimately derived from etl::imessage?
Definition message.h:208
Is T a user defined base of etl::message<T> and not an etl::imessage.
Definition message.h:232