00001 #ifndef ISPN_HOTROD_MARSHALLER_H 00002 #define ISPN_HOTROD_MARSHALLER_H 00003 00004 00005 00006 #include "infinispan/hotrod/ScopedBuffer.h" 00007 00008 namespace infinispan { 00009 namespace hotrod { 00010 00011 class ScopedBuffer; 00012 00013 // Todo: application buffer memory management; async readers/writers. SSL implications? 00014 00015 template <class T> class Marshaller 00016 { 00017 public: 00018 virtual void marshall(const T&, ScopedBuffer&) = 0; 00019 virtual T* unmarshall(const ScopedBuffer&) = 0; 00020 00021 virtual ~Marshaller() {} 00022 }; 00023 00024 }} // namespace 00025 00026 #endif /* ISPN_HOTROD_MARSHALLER_H */