nlohmann_parsers.h
Go to the documentation of this file.
1 #ifndef NLOHMANN_PARSERS_H
2 #define NLOHMANN_PARSERS_H
3 
4 #include "nlohmann/json.hpp"
6 #include <QCheckBox>
7 
8 using namespace PJ;
9 
10 
12 {
13 public:
14 
15  NlohmannParser(const std::string& topic_name, PlotDataMapRef& data, bool use_msg_stamp):
16  MessageParser(topic_name, data),
17  _use_message_stamp(use_msg_stamp) {}
18 
19 protected:
20 
21  bool parseMessageImpl(double timestamp);
22 
25 };
26 
27 
29 {
30 public:
31  JSON_Parser(const std::string& topic_name, PlotDataMapRef& data, bool use_msg_stamp):
32  NlohmannParser(topic_name, data,use_msg_stamp)
33  {}
34 
35  bool parseMessage(const MessageRef msg, double timestamp) override;
36 };
37 
39 {
40 public:
41  CBOR_Parser(const std::string& topic_name, PlotDataMapRef& data, bool use_msg_stamp):
42  NlohmannParser(topic_name, data,use_msg_stamp)
43  {}
44 
45  bool parseMessage(const MessageRef msg, double timestamp) override;
46 };
47 
49 {
50 public:
51  BSON_Parser(const std::string& topic_name, PlotDataMapRef& data, bool use_msg_stamp):
52  NlohmannParser(topic_name, data,use_msg_stamp)
53  {}
54 
55  bool parseMessage(const MessageRef msg, double timestamp) override;
56 };
57 
59 {
60 public:
61  MessagePack_Parser(const std::string& topic_name, PlotDataMapRef& data, bool use_msg_stamp):
62  NlohmannParser(topic_name, data,use_msg_stamp)
63  {}
64 
65  bool parseMessage(const MessageRef msg, double timestamp) override;
66 };
67 
68 //------------------------------------------
69 
70 class QCheckBoxClose: public QCheckBox
71 {
72 public:
73  QCheckBoxClose(QString text): QCheckBox(text) {}
74  ~QCheckBoxClose() override
75  {
76  qDebug() << "Destroying QCheckBoxClose";
77  }
78 };
79 
81 {
82 public:
84  {
85  _checkbox_use_timestamp = new QCheckBoxClose("use field [timestamp] if available");
86  }
87 
88  virtual QWidget* optionsWidget()
89  {
90  return _checkbox_use_timestamp;
91  }
92 
93 protected:
95 };
96 
98 {
99 public:
100 
101  MessageParserPtr createInstance(const std::string& topic_name, PlotDataMapRef& data) override {
102  return std::make_shared<JSON_Parser>(topic_name, data, _checkbox_use_timestamp->isChecked());
103  }
104  const char* name() const override { return "JSON"; }
105 };
106 
108 {
109 public:
110 
111  MessageParserPtr createInstance(const std::string& topic_name, PlotDataMapRef& data) override {
112  return std::make_shared<CBOR_Parser>(topic_name, data, _checkbox_use_timestamp->isChecked());
113  }
114  const char* name() const override { return "CBOR"; }
115 };
116 
118 {
119 public:
120 
121  MessageParserPtr createInstance(const std::string& topic_name, PlotDataMapRef& data) override {
122  return std::make_shared<BSON_Parser>(topic_name, data, _checkbox_use_timestamp->isChecked());
123  }
124  const char* name() const override { return "BSON"; }
125 };
126 
128 {
129 public:
130 
131  MessageParserPtr createInstance(const std::string& topic_name, PlotDataMapRef& data) override {
132  return std::make_shared<MessagePack_Parser>(topic_name, data, _checkbox_use_timestamp->isChecked());
133  }
134  const char* name() const override { return "MessagePack"; }
135 };
136 
137 
138 #endif // NLOHMANN_PARSERS_H
MessageParserPtr createInstance(const std::string &topic_name, PlotDataMapRef &data) override
a class to store JSON values
Definition: json.hpp:2976
JSON_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp)
NlohmannParser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp)
CBOR_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp)
const char * name() const override
virtual QWidget * optionsWidget()
nlohmann::json _json
const char * name() const override
std::shared_ptr< MessageParser > MessageParserPtr
MessagePack_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp)
BSON_Parser(const std::string &topic_name, PlotDataMapRef &data, bool use_msg_stamp)
QCheckBoxClose(QString text)
const char * name() const override
MessageParserPtr createInstance(const std::string &topic_name, PlotDataMapRef &data) override
const char * name() const override
MessageParserPtr createInstance(const std::string &topic_name, PlotDataMapRef &data) override
The MessageParser is the base class to create plugins that are able to parse one or multiple Message ...
~QCheckBoxClose() override
dictionary data
Definition: mqtt_test.py:22
def timestamp()
Definition: mqttsas.py:143
MessageParserPtr createInstance(const std::string &topic_name, PlotDataMapRef &data) override
QCheckBox * _checkbox_use_timestamp


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:48:09