22#include "cc_tools_qt/ToolsMessageBase.h"
23#include "cc_tools_qt/ToolsProtMsgInterface.h"
24#include "cc_tools_qt/property/message.h"
27#include <QtCore/QString>
38template <
typename TMsgBase,
typename... TOpts>
39class ToolInvalidMessageImpl :
public
42 comms::option::def::NoIdImpl,
43 comms::option::def::ZeroFieldsImpl,
44 comms::option::def::MsgType<ToolInvalidMessageImpl<TMsgBase, TOpts...>>
51template<
typename TBase>
52class ToolsInvalidMessage :
public
55 details::ToolInvalidMessageImpl,
56 ToolsInvalidMessage<TBase>
62 details::ToolInvalidMessageImpl,
63 ToolsInvalidMessage<TBase>
67 using FieldsList =
typename Base::FieldsList;
68 virtual ~ToolsInvalidMessage() noexcept = default;
71 virtual const
char* nameImpl()
const override
73 if (property::message::ToolsMsgTransportMsg().getFrom(*
this)) {
74 static const char* InvalidMsgStr =
"???";
78 static const char* GarbageStr =
"-#-";
82 virtual bool isValidImpl()
const override
87 virtual qlonglong numericIdImpl()
const override
92 virtual void resetImpl()
override
94 [[maybe_unused]]
static constexpr bool Must_not_be_called =
false;
95 assert(Must_not_be_called);
100 [[maybe_unused]]
static constexpr bool Must_not_be_called =
false;
101 assert(Must_not_be_called);
105 virtual DataSeq encodeDataImpl()
const override
107 ToolsMessagePtr rawDataMsg = property::message::ToolsMsgRawDataMsg().getFrom(*
this);
113 return rawDataMsg->encodeData();
116 virtual DataSeq encodeFramedImpl([[maybe_unused]] ToolsFrame& frame)
const override
118 return encodeDataImpl();
121 virtual typename Base::Ptr cloneImpl()
const override
123 ToolsMessagePtr rawDataMsg = property::message::ToolsMsgRawDataMsg().getFrom(*
this);
124 auto ptr = Base::cloneImpl();
125 if (ptr && rawDataMsg) {
127 property::message::ToolsMsgRawDataMsg().setTo(std::move(p), *ptr);
133 virtual FieldsList transportFieldsImpl()
override