| 78 | |
| 79 | template <typename IOADAPTOR_T> |
| 80 | void serialize(std::unique_ptr<IOADAPTOR_T>& writer) const { |
| 81 | size_t content_buffer_size = content_buffer().size(); |
| 82 | CHECK(writer->Write(&content_buffer_size, sizeof(size_t))); |
| 83 | if (content_buffer_size > 0) { |
| 84 | CHECK(writer->Write(const_cast<char*>(content_buffer().data()), |
| 85 | content_buffer_size * sizeof(char))); |
| 86 | } |
| 87 | size_t offset_buffer_size = offset_buffer().size(); |
| 88 | CHECK(writer->Write(&offset_buffer_size, sizeof(size_t))); |
| 89 | if (offset_buffer_size > 0) { |
| 90 | CHECK(writer->Write(const_cast<size_t*>(offset_buffer().data()), |
| 91 | offset_buffer_size * sizeof(size_t))); |
| 92 | } |
| 93 | } |
| 94 | |
| 95 | template <typename IOADAPTOR_T> |
| 96 | void deserialize(std::unique_ptr<IOADAPTOR_T>& reader) { |