1 #ifndef ISPN_HOTROD_PROTOSTREAMMARSHALLER_H
2 #define ISPN_HOTROD_PROTOSTREAMMARSHALLER_H
11 #pragma warning(disable:4267 4244)
13 #include "message-wrapping.pb.h"
18 using namespace org::infinispan::protostream;
20 namespace infinispan {
28 void marshall(
const T& obj, std::vector<char>& b) {
29 std::vector<char> msg(obj.ByteSize());
30 obj.SerializeToArray(msg.data(),obj.ByteSize());
32 wm.set_wrappedmessagebytes(msg.data(), msg.size());
33 wm.set_wrappeddescriptorid(TypeId);
34 b.resize(wm.ByteSize());
35 wm.SerializeToArray(b.data(),wm.ByteSize());
38 T* unmarshall(
const std::vector<char>& b) {
40 wm.ParseFromArray(b.data(),b.size());
41 const std::string &wmb=wm.wrappedmessagebytes();
43 bt->ParseFromArray(wmb.data(),wmb.size());
53 static void release(std::vector<char> *buf) {
58 wm.ParseFromArray(b, size);
59 const std::string &wmb=wm.wrappedmessagebytes();
61 bt.ParseFromArray(wmb.data(),wmb.size());
static void noRelease(std::vector< char > *)
Definition: ProtoStreamMarshaller.h:51
Definition: ProtoStreamMarshaller.h:27
static T unmarshall(char *b, size_t size)
Definition: ProtoStreamMarshaller.h:56
Definition: ProtoStreamMarshaller.h:49
Definition: Marshaller.h:9
static void release(std::vector< char > *buf)
Definition: ProtoStreamMarshaller.h:53