|
iceberg-cpp
|
FileIO that resolves and caches implementations by registry name. More...
#include <resolving_file_io.h>
Public Member Functions | |
| ResolvingFileIO (std::unordered_map< std::string, std::string > properties) | |
| Result< std::unique_ptr< InputFile > > | NewInputFile (std::string file_location) override |
| Create an input file handle for the given location. | |
| Result< std::unique_ptr< InputFile > > | NewInputFile (std::string file_location, size_t length) override |
| Create an input file handle for the given location with a known length. | |
| Result< std::unique_ptr< OutputFile > > | NewOutputFile (std::string file_location) override |
| Create an output file handle for the given location. | |
| Status | DeleteFile (const std::string &file_location) override |
| Delete a file at the given location. | |
| Status | DeleteFiles (const std::vector< std::string > &file_locations) override |
| Delete files at the given locations. | |
| Status | SetStorageCredentials (const std::vector< StorageCredential > &storage_credentials) override |
| Install vended storage credentials. | |
| std::vector< StorageCredential > | credentials () const override |
| Return the credentials installed on this resolver. | |
| Status | InitializeStorageCredentials (const std::vector< StorageCredential > &storage_credentials, std::shared_ptr< StorageCredentialProvider > provider) override |
| Install initial credentials before the first delegate is loaded. | |
| const std::unordered_map< std::string, std::string > & | properties () const override |
| Return the configuration used to create this FileIO. | |
| SupportsStorageCredentials * | AsSupportsStorageCredentials () override |
| Return storage-credential support when implemented by this FileIO. | |
Public Member Functions inherited from iceberg::FileIO | |
| virtual Result< std::string > | ReadFile (const std::string &file_location, std::optional< size_t > length) |
| Read the content of the file at the given location. | |
| virtual Status | WriteFile (const std::string &file_location, std::string_view content) |
| Write the given content to the file at the given location. | |
FileIO that resolves and caches implementations by registry name.
Vended credentials and any credential provider are forwarded to every resolved implementation that supports them; each applies what it understands.
|
inlineoverridevirtual |
Return storage-credential support when implemented by this FileIO.
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Return the credentials installed on this resolver.
Not necessarily the ones in use: a resolved implementation refreshes its own without reporting back.
Implements iceberg::SupportsStorageCredentials.
|
overridevirtual |
Delete a file at the given location.
| file_location | The location of the file to delete. |
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Delete files at the given locations.
Implementations that can delete multiple files efficiently should override this method. The default implementation deletes files sequentially using DeleteFile and returns the first error encountered.
| file_locations | The locations of the files to delete. |
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Install initial credentials before the first delegate is loaded.
Reimplemented from iceberg::SupportsStorageCredentials.
|
overridevirtual |
Create an input file handle for the given location.
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Create an input file handle for the given location with a known length.
The length is a caller-provided content length hint. Implementations may use it to avoid an extra metadata lookup.
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Create an output file handle for the given location.
Reimplemented from iceberg::FileIO.
|
inlineoverridevirtual |
Return the configuration used to create this FileIO.
The returned map may contain credentials. Callers must not log or expose it. Implementations that do not expose their configuration return an empty map.
Reimplemented from iceberg::FileIO.
|
overridevirtual |
Install vended storage credentials.
Implements iceberg::SupportsStorageCredentials.