| 118 | |
| 119 | template <class T> |
| 120 | Status SerializeToString(const T* obj, std::string* result) { |
| 121 | try { |
| 122 | mem_buffer_->resetBuffer(); |
| 123 | obj->write(protocol_.get()); |
| 124 | } catch (std::exception& e) { |
| 125 | std::stringstream msg; |
| 126 | msg << "Couldn't serialize thrift object beyond " |
| 127 | << mem_buffer_->getBufferSize() << " bytes:\n" << e.what(); |
| 128 | return Status(msg.str()); |
| 129 | } |
| 130 | *result = mem_buffer_->getBufferAsString(); |
| 131 | return Status::OK(); |
| 132 | } |
| 133 | |
| 134 | private: |
| 135 | std::shared_ptr<apache::thrift::transport::TMemoryBuffer> mem_buffer_; |