in cpp/code/flight.cc [50:67]
arrow::Status ListFlights(
const arrow::flight::ServerCallContext&, const arrow::flight::Criteria*,
std::unique_ptr<arrow::flight::FlightListing>* listings) override {
arrow::fs::FileSelector selector;
selector.base_dir = "/";
ARROW_ASSIGN_OR_RAISE(auto listing, root_->GetFileInfo(selector));
std::vector<arrow::flight::FlightInfo> flights;
for (const auto& file_info : listing) {
if (!file_info.IsFile() || file_info.extension() != "parquet") continue;
ARROW_ASSIGN_OR_RAISE(auto info, MakeFlightInfo(file_info));
flights.push_back(std::move(info));
}
*listings = std::unique_ptr<arrow::flight::FlightListing>(
new arrow::flight::SimpleFlightListing(std::move(flights)));
return arrow::Status::OK();
}