21#include "cc_tools_qt/ToolsMessageBase.h"
22#include "cc_tools_qt/ToolsProtMsgInterface.h"
23#include "cc_tools_qt/property/message.h"
26#include <QtCore/QString>
37template <
typename TMsgBase,
typename... TOpts>
38class ToolInvalidMessageImpl :
public
41 comms::option::def::NoIdImpl,
42 comms::option::def::ZeroFieldsImpl,
43 comms::option::def::MsgType<ToolInvalidMessageImpl<TMsgBase, TOpts...>>
50template<
typename TBase>
51class ToolsInvalidMessage :
public
54 details::ToolInvalidMessageImpl,
55 ToolsInvalidMessage<TBase>
61 details::ToolInvalidMessageImpl,
62 ToolsInvalidMessage<TBase>
66 using FieldsList =
typename Base::FieldsList;
67 virtual ~ToolsInvalidMessage() noexcept = default;
70 virtual const
char* nameImpl()
const override
72 if (property::message::ToolsMsgTransportMsg().getFrom(*
this)) {
73 static const char* InvalidMsgStr =
"???";
77 static const char* GarbageStr =
"-#-";
81 virtual bool isValidImpl()
const override
86 virtual qlonglong numericIdImpl()
const override
91 virtual void resetImpl()
override
93 [[maybe_unused]]
static constexpr bool Must_not_be_called =
false;
94 assert(Must_not_be_called);
99 [[maybe_unused]]
static constexpr bool Must_not_be_called =
false;
100 assert(Must_not_be_called);
104 virtual DataSeq encodeDataImpl()
const override
106 ToolsMessagePtr rawDataMsg = property::message::ToolsMsgRawDataMsg().getFrom(*
this);
112 return rawDataMsg->encodeData();
115 virtual DataSeq encodeFramedImpl([[maybe_unused]] ToolsFrame& frame)
const override
117 return encodeDataImpl();
120 virtual typename Base::Ptr cloneImpl()
const override
122 ToolsMessagePtr rawDataMsg = property::message::ToolsMsgRawDataMsg().getFrom(*
this);
123 auto ptr = Base::cloneImpl();
124 if (ptr && rawDataMsg) {
126 property::message::ToolsMsgRawDataMsg().setTo(std::move(p), *ptr);
132 virtual FieldsList transportFieldsImpl()
override