| 243 | } |
| 244 | |
| 245 | Status Message::SerializeTo(io::OutputStream* stream, const IpcWriteOptions& options, |
| 246 | int64_t* output_length) const { |
| 247 | int32_t metadata_length = 0; |
| 248 | RETURN_NOT_OK(WriteMessage(*metadata(), options, stream, &metadata_length)); |
| 249 | |
| 250 | *output_length = metadata_length; |
| 251 | |
| 252 | auto body_buffer = body(); |
| 253 | if (body_buffer) { |
| 254 | RETURN_NOT_OK(stream->Write(body_buffer)); |
| 255 | *output_length += body_buffer->size(); |
| 256 | |
| 257 | DCHECK_GE(this->body_length(), body_buffer->size()); |
| 258 | |
| 259 | int64_t remainder = this->body_length() - body_buffer->size(); |
| 260 | RETURN_NOT_OK(WritePadding(stream, remainder)); |
| 261 | *output_length += remainder; |
| 262 | } |
| 263 | return Status::OK(); |
| 264 | } |
| 265 | |
| 266 | bool Message::Verify() const { |
| 267 | const flatbuf::Message* unused; |