OpenDaVINCI  4.16.0
LCMDeserializerVisitor.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_SERIALIZATION_LCMDESERIALIZERVISITOR_H_
21 #define OPENDAVINCI_CORE_SERIALIZATION_LCMDESERIALIZERVISITOR_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 ~LCMDeserializerVisitor();
60 
61  virtual void deserializeDataFrom(istream &in);
62 
69  const string getChannelName() const;
70 
76  int64_t getDecodedHash() const;
77 
83  int64_t getCalculatedHash() const;
84 
85  private:
86  virtual uint32_t readValue(istream &i, Serializable &v) { (void)i; (void)v; return 0; }
87  virtual uint32_t readValue(istream &i, bool &v) { (void)i; (void)v; return 0; }
88  virtual uint32_t readValue(istream &i, char &v) { (void)i; (void)v; return 0; }
89  virtual uint32_t readValue(istream &i, unsigned char &v) { (void)i; (void)v; return 0; }
90  virtual uint32_t readValue(istream &i, int8_t &v) { (void)i; (void)v; return 0; }
91  virtual uint32_t readValue(istream &i, int16_t &v) { (void)i; (void)v; return 0; }
92  virtual uint32_t readValue(istream &i, uint16_t &v) { (void)i; (void)v; return 0; }
93  virtual uint32_t readValue(istream &i, int32_t &v) { (void)i; (void)v; return 0; }
94  virtual uint32_t readValue(istream &i, uint32_t &v) { (void)i; (void)v; return 0; }
95  virtual uint32_t readValue(istream &i, int64_t &v) { (void)i; (void)v; return 0; }
96  virtual uint32_t readValue(istream &i, uint64_t &v) { (void)i; (void)v; return 0; }
97  virtual uint32_t readValue(istream &i, float &v) { (void)i; (void)v; return 0; }
98  virtual uint32_t readValue(istream &i, double &v) { (void)i; (void)v; return 0; }
99  virtual uint32_t readValue(istream &i, string &v) { (void)i; (void)v; return 0; }
100  virtual uint32_t readValue(istream &i, void *data, const uint32_t &size) { (void)i; (void)data; (void)size; return 0; }
101 
102  private:
103  virtual void read(const uint32_t &id, Serializable &s);
104  virtual void read(const uint32_t &id, bool &b);
105  virtual void read(const uint32_t &id, char &c);
106  virtual void read(const uint32_t &id, unsigned char &uc);
107  virtual void read(const uint32_t &id, int8_t &i);
108  virtual void read(const uint32_t &id, int16_t &i);
109  virtual void read(const uint32_t &id, uint16_t &ui);
110  virtual void read(const uint32_t &id, int32_t &i);
111  virtual void read(const uint32_t &id, uint32_t &ui);
112  virtual void read(const uint32_t &id, int64_t &i);
113  virtual void read(const uint32_t &id, uint64_t &ui);
114  virtual void read(const uint32_t &id, float &f);
115  virtual void read(const uint32_t &id, double &d);
116  virtual void read(const uint32_t &id, string &s);
117  virtual void read(const uint32_t &id, void *data, const uint32_t &size);
118 
119  private:
120  virtual void beginVisit(const int32_t &id, const string &shortName, const string &longName);
121  virtual void endVisit();
122 
123  virtual void read(const uint32_t &id, const string &longName, const string &shortName, Serializable &s);
124  virtual void read(const uint32_t &id, const string &longName, const string &shortName, bool &b);
125  virtual void read(const uint32_t &id, const string &longName, const string &shortName, char &c);
126  virtual void read(const uint32_t &id, const string &longName, const string &shortName, unsigned char &uc);
127  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int8_t &i);
128  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int16_t &i);
129  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint16_t &ui);
130  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int32_t &i);
131  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint32_t &ui);
132  virtual void read(const uint32_t &id, const string &longName, const string &shortName, int64_t &i);
133  virtual void read(const uint32_t &id, const string &longName, const string &shortName, uint64_t &ui);
134  virtual void read(const uint32_t &id, const string &longName, const string &shortName, float &f);
135  virtual void read(const uint32_t &id, const string &longName, const string &shortName, double &d);
136  virtual void read(const uint32_t &id, const string &longName, const string &shortName, string &s);
137  virtual void read(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
138 
139  public:
140  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, Serializable &v);
141  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, bool &v);
142  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, char &v);
143  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, unsigned char &v);
144  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int8_t &v);
145  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int16_t &v);
146  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint16_t &v);
147  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int32_t &v);
148  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint32_t &v);
149  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, int64_t &v);
150  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, uint64_t &v);
151  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, float &v);
152  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, double &v);
153  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, string &v);
154  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &size);
155  virtual void visit(const uint32_t &id, const string &longName, const string &shortName, void *data, const uint32_t &count, const odcore::TYPE_ &t);
156 
157  private:
158  string m_channelName;
159  int64_t m_decodedHash;
160  int64_t m_calculatedHash;
161  stringstream m_buffer;
162  };
163 
164  }
165 } // odcore::serialization
166 
167 #endif /*OPENDAVINCI_CORE_SERIALIZATION_LCMDESERIALIZERVISITOR_H_*/
TYPE_
Definition: opendavinci.h:96
Definition: LCMDeserializerVisitor.h:40
Definition: Visitor.h:37
Definition: Serializable.h:59
Definition: Deserializer.h:39