JBoss Data Grid HotRod C++ Client  7.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Marshaller.h
Go to the documentation of this file.
1 #ifndef ISPN_HOTROD_MARSHALLER_H
2 #define ISPN_HOTROD_MARSHALLER_H
3 
4 #include "portable.h"
5 
6 #include <vector>
7 
8 namespace infinispan {
9 namespace hotrod {
10 
11 // Todo: application buffer memory management; async readers/writers. SSL implications?
12 
13 template <class T> class Marshaller: public portable::counted_object
14 {
15  public:
16  virtual void marshall(const T&, std::vector<char>&) = 0;
17  virtual T* unmarshall(const std::vector<char>&) = 0;
18 
19  virtual ~Marshaller() {}
20  static void destroy(Marshaller<T> *marshaller) { delete marshaller; }
21 };
22 
23 }} // namespace
24 
25 #endif /* ISPN_HOTROD_MARSHALLER_H */
virtual ~Marshaller()
Definition: Marshaller.h:19
static void destroy(Marshaller< T > *marshaller)
Definition: Marshaller.h:20
virtual T * unmarshall(const std::vector< char > &)=0
Definition: Marshaller.h:13
virtual void marshall(const T &, std::vector< char > &)=0