7 #ifndef NLOHMANN_PARSERS_H 8 #define NLOHMANN_PARSERS_H 20 const std::string& stamp_fieldname)
22 , _use_message_stamp(use_msg_stamp)
23 , _stamp_fieldname(stamp_fieldname)
28 bool parseMessageImpl(
double& timestamp);
39 const std::string& stamp_fieldname)
44 bool parseMessage(
const MessageRef msg,
double& timestamp)
override;
51 const std::string& stamp_fieldname)
56 bool parseMessage(
const MessageRef msg,
double& timestamp)
override;
63 const std::string& stamp_fieldname)
68 bool parseMessage(
const MessageRef msg,
double& timestamp)
override;
75 bool use_msg_stamp,
const std::string& stamp_fieldname)
80 bool parseMessage(
const MessageRef msg,
double& timestamp)
override;
86 #include <QVBoxLayout> 96 QGroupBox::setCheckable(
true);
97 QGroupBox::setChecked(
false);
98 lineedit =
new QLineEdit(
this);
99 QVBoxLayout* vbox =
new QVBoxLayout;
100 vbox->addSpacing(20);
101 vbox->addWidget(lineedit);
102 QGroupBox::setLayout(vbox);
106 qDebug() <<
"Destroying QCheckBoxClose";
115 _checkbox_use_timestamp =
new QCheckBoxClose(
"use field as timestamp if available");
118 template <
typename ParserT>
122 std::string timestamp_name = _checkbox_use_timestamp->lineedit->text().toStdString();
123 return std::make_shared<ParserT>(
124 topic_name,
data, _checkbox_use_timestamp->isChecked(), timestamp_name);
129 return _checkbox_use_timestamp;
144 return createParserImpl<JSON_Parser>(topic_name,
data);
146 const char*
name()
const override 148 return "JSON_ParserFactory";
164 return createParserImpl<CBOR_Parser>(topic_name,
data);
166 const char*
name()
const override 168 return "CBOR_ParserFactory";
184 return createParserImpl<BSON_Parser>(topic_name,
data);
186 const char*
name()
const override 188 return "BSON_ParserFactory";
204 return createParserImpl<MessagePack_Parser>(topic_name,
data);
206 const char*
name()
const override 208 return "MessagePack_ParserFactory";
216 #endif // NLOHMANN_PARSERS_H
const char * name() const override
Name of the plugin type, NOT the particular instance.
a class to store JSON values
NlohmannParser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp, const std::string &stamp_fieldname)
MessagePack_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp, const std::string &stamp_fieldname)
const char * name() const override
Name of the plugin type, NOT the particular instance.
MessageParserPtr createParser(const std::string &topic_name, const std::string &, const std::string &, PlotDataMapRef &data) override
MessageParserPtr createParser(const std::string &topic_name, const std::string &, const std::string &, PlotDataMapRef &data) override
virtual QWidget * optionsWidget()
optionsWidget pointer to a persistent widget used to set the plugin options .
const char * encoding() const override
std::shared_ptr< MessageParser > MessageParserPtr
MessageParserPtr createParserImpl(const std::string &topic_name, PlotDataMapRef &data)
const char * encoding() const override
QCheckBoxClose * _checkbox_use_timestamp
MessageParserPtr createParser(const std::string &topic_name, const std::string &, const std::string &, PlotDataMapRef &data) override
QCheckBoxClose(QString text)
CBOR_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp, const std::string &stamp_fieldname)
BSON_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp, const std::string &stamp_fieldname)
MessageParserPtr createParser(const std::string &topic_name, const std::string &, const std::string &, PlotDataMapRef &data) override
const char * name() const override
Name of the plugin type, NOT the particular instance.
The MessageParser is the base class used to parse a message with a specific encoding+schema.
std::string _stamp_fieldname
~QCheckBoxClose() override
const char * encoding() const override
const char * name() const override
Name of the plugin type, NOT the particular instance.
const char * encoding() const override
JSON_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp, const std::string &stamp_fieldname)