thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chan, Jack" <>
Subject serializing binary data in C++
Date Wed, 30 Oct 2013 01:23:00 GMT

I'm having a lot of trouble serializing data. What am I doing wrong?

std::string serialize(ContactsList& obj, std::string filename) {
    shared_ptr<TMemoryBuffer> transportOut(new TMemoryBuffer());
    shared_ptr<TBinaryProtocol> protocolOut(new TBinaryProtocol(transportOut));
    std::string serialized_string = transportOut->getBufferAsString();
    return serialized_string;

This is the method I call from another method. I expect to get back a serialized binary string
which I can write out to disk. Inside this serialize method, I create a TMemory buffer, then
I wrap it in a TBinaryProtocol, and then the object's write method, which will write itself
into the memory buffer. Then, I get that buffer back as a string. I'd then write out the serialized
string to disk.

I get this error:
error: no matching function for call to 'addressbook::ContactsList::write(boost::shared_ptr<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>

As well as this note:
note:   no known conversion for argument 1 from 'boost::shared_ptr<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>
>' to 'apache::thrift::protocol::TProtocol*

I'm using Apache Thrift 1.0-dev, C++ 98 if these things make a difference.

Am I understanding everything correctly (probably not cuz it's not working)? What's the correct
way to serialize an object? Pleeeeeaase edify me. Here is the stackoverflow link:


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message