49 std::unique_ptr<InputFile> input_file,
50 std::optional<int64_t> footer_size = std::nullopt,
51 std::optional<int64_t> file_size = std::nullopt);
67 const std::vector<BlobMetadata>& blobs);
73 PuffinReader(std::unique_ptr<SeekableInputStream> stream, int64_t file_size,
74 std::optional<int64_t> known_footer_size);
81 std::unique_ptr<SeekableInputStream> stream_;
85 std::optional<int64_t> known_footer_size_;
Reader for Puffin files.
Definition puffin_reader.h:42
Result< std::vector< std::pair< BlobMetadata, std::vector< std::byte > > > > ReadAll(const std::vector< BlobMetadata > &blobs)
Read all blobs described in the file metadata.
Result< std::pair< BlobMetadata, std::vector< std::byte > > > ReadBlob(const BlobMetadata &blob_metadata)
Read a specific blob's data by its metadata.
Result< FileMetadata > ReadFileMetadata()
Read and return the file metadata from the footer.
Status Close()
Close the underlying input stream.
static Result< std::unique_ptr< PuffinReader > > Make(std::unique_ptr< InputFile > input_file, std::optional< int64_t > footer_size=std::nullopt, std::optional< int64_t > file_size=std::nullopt)
Create a PuffinReader for the given input file.
Define symbol visibility macros for core Iceberg APIs.
Puffin file metadata, reader, and writer APIs.
Definition file_metadata.h:35
std::expected< T, E > Result
Result alias.
Definition result.h:88
Define Result, Status, and error helpers.