1 #ifndef ISPN_HOTROD_PROTOSTREAMMARSHALLER_H 2 #define ISPN_HOTROD_PROTOSTREAMMARSHALLER_H 11 #pragma warning(disable:4267 4244) 13 #include "message-wrapping.pb.h" 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
Definition: BasicMarshaller.h:11
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