| 1429 | } |
| 1430 | |
| 1431 | Status ReadSchema(const IpcReadOptions& read_options, |
| 1432 | std::shared_ptr<Schema>* out) override { |
| 1433 | auto listener = std::make_shared<CollectListener>(); |
| 1434 | StreamDecoder decoder(listener, read_options); |
| 1435 | RETURN_NOT_OK(DoConsume(&decoder)); |
| 1436 | *out = listener->schema(); |
| 1437 | return Status::OK(); |
| 1438 | } |
| 1439 | |
| 1440 | virtual Status DoConsume(StreamDecoder* decoder) = 0; |
| 1441 | }; |