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