OpenDaVINCI  4.15.3
ROSDeserializerVisitor.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_SERIALIZATION_ROSDESERIALIZERVISITOR_H_
21 #define OPENDAVINCI_CORE_SERIALIZATION_ROSDESERIALIZERVISITOR_H_
22 
23 #include <sstream>
24 #include <string>
25 
30 
31 namespace odcore {
32  namespace serialization {
33 
34  using namespace std;
35 
41  private:
48 
55 
56  public:
58 
59  virtual ~ROSDeserializerVisitor();
60 
61  virtual void deserializeDataFrom(istream &in);
62 
68  uint8_t getMessageID() const;
69 
70  private:
71  virtual uint32_t readValue(istream &i, Serializable &v) { (void)i; (void)v; return 0; }
72  virtual uint32_t readValue(istream &i, bool &v) { (void)i; (void)v; return 0; }
73  virtual uint32_t readValue(istream &i, char &v) { (void)i; (void)v; return 0; }
74  virtual uint32_t readValue(istream &i, unsigned char &v) { (void)i; (void)v; return 0; }
75  virtual uint32_t readValue(istream &i, int8_t &v) { (void)i; (void)v; return 0; }
76  virtual uint32_t readValue(istream &i, int16_t &v) { (void)i; (void)v; return 0; }
77  virtual uint32_t readValue(istream &i, uint16_t &v) { (void)i; (void)v; return 0; }
78  virtual uint32_t readValue(istream &i, int32_t &v) { (void)i; (void)v; return 0; }
79  virtual uint32_t readValue(istream &i, uint32_t &v) { (void)i; (void)v; return 0; }
80  virtual uint32_t readValue(istream &i, int64_t &v) { (void)i; (void)v; return 0; }
81  virtual uint32_t readValue(istream &i, uint64_t &v) { (void)i; (void)v; return 0; }
82  virtual uint32_t readValue(istream &i, float &v) { (void)i; (void)v; return 0; }
83  virtual uint32_t readValue(istream &i, double &v) { (void)i; (void)v; return 0; }
84  virtual uint32_t readValue(istream &i, string &v) { (void)i; (void)v; return 0; }
85  virtual uint32_t readValue(istream &i, void *data, const uint32_t &size) { (void)i; (void)data; (void)size; return 0; }
86 
87  private:
88  virtual void read(const uint32_t &id, Serializable &s);
89  virtual void read(const uint32_t &id, bool &b);
90  virtual void read(const uint32_t &id, char &c);
91  virtual void read(const uint32_t &id, unsigned char &uc);
92  virtual void read(const uint32_t &id, int8_t &i);
93  virtual void read(const uint32_t &id, int16_t &i);
94  virtual void read(const uint32_t &id, uint16_t &ui);
95  virtual void read(const uint32_t &id, int32_t &i);
96  virtual void read(const uint32_t &id, uint32_t &ui);
97  virtual void read(const uint32_t &id, int64_t &i);
98  virtual void read(const uint32_t &id, uint64_t &ui);
99  virtual void read(const uint32_t &id, float &f);
100  virtual void read(const uint32_t &id, double &d);
101  virtual void read(const uint32_t &id, string &s);
102  virtual void read(const uint32_t &id, void *data, const uint32_t &size);
103 
104  private:
105  virtual void beginVisit(const int32_t &id, const string &shortName, const string &longName);
106  virtual void endVisit();
107 
108  virtual void read(const uint32_t &id, const string &longName, const string &shortName, Serializable &s);
109  virtual void read(const uint32_t &id, const string &longName, const string &shortName, bool &b);
110  virtual void read(const uint32_t &id, const string &longName, const string &shortName, char &c);
111  virtual void read(const uint32_t &id, const string &longName, const string &shortName, unsigned char &uc);
112  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int8_t &i);
113  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int16_t &i);
114  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint16_t &ui);
115  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int32_t &i);
116  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint32_t &ui);
117  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int64_t &i);
118  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint64_t &ui);
119  virtual void read(const uint32_t &id, const string &longName, const string &shortName, float &f);
120  virtual void read(const uint32_t &id, const string &longName, const string &shortName, double &d);
121  virtual void read(const uint32_t &id, const string &longName, const string &shortName, string &s);
122  virtual void read(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
123 
124  public:
125  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, Serializable &v);
126  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, bool &v);
127  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, char &v);
128  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, unsigned char &v);
129  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int8_t &v);
130  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int16_t &v);
131  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint16_t &v);
132  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int32_t &v);
133  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint32_t &v);
134  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int64_t &v);
135  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint64_t &v);
136  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, float &v);
137  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, double &v);
138  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, string &v);
139  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
140 
141  private:
142  uint8_t m_messageId;
143  uint32_t m_size;
144  stringstream m_buffer;
145  };
146 
147  }
148 } // odcore::serialization
149 
150 #endif /*OPENDAVINCI_CORE_SERIALIZATION_ROSDESERIALIZERVISITOR_H_*/
Definition: ROSDeserializerVisitor.h:40
Definition: Visitor.h:37
Definition: Serializable.h:59
Definition: Deserializer.h:39