26#include <shared_mutex>
29#include <unordered_map>
44 explicit ResolvingFileIO(std::unordered_map<std::string, std::string> properties);
50 size_t length)
override;
54 Status
DeleteFile(
const std::string& file_location)
override;
56 Status
DeleteFiles(
const std::vector<std::string>& file_locations)
override;
59 const std::vector<StorageCredential>& storage_credentials)
override;
61 const std::vector<StorageCredential>&
credentials()
const override;
69 std::unordered_map<std::string, std::string> properties_;
71 std::shared_mutex mutex_;
72 std::vector<StorageCredential> storage_credentials_;
Pluggable module for reading, writing, and deleting files.
Definition file_io.h:128
FileIO that resolves and caches implementations by registry name.
Definition resolving_file_io.h:42
Result< std::unique_ptr< OutputFile > > NewOutputFile(std::string file_location) override
Create an output 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.
SupportsStorageCredentials * AsSupportsStorageCredentials() override
Return storage-credential support when implemented by this FileIO.
Definition resolving_file_io.h:63
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.
Result< std::unique_ptr< InputFile > > NewInputFile(std::string file_location) override
Create an input file handle for the given location.
const std::vector< StorageCredential > & credentials() const override
Return currently installed storage credentials.
Status SetStorageCredentials(const std::vector< StorageCredential > &storage_credentials) override
Install vended storage credentials.
Mix-in for FileIO implementations that route object paths to per-prefix file systems built from vende...
Definition file_io.h:188
Define the FileIO abstraction and file stream interfaces.
Define symbol visibility macros for core Iceberg APIs.
Core Apache Iceberg C++ APIs.
Definition arrow_io_util.h:33
std::expected< T, E > Result
Result alias.
Definition result.h:88
Define Result, Status, and error helpers.
Define storage credential metadata.
Provide string utility helpers.
Transparent equality function that supports std::string_view as lookup key.
Definition string_util.h:220
Transparent hash function that supports std::string_view as lookup key.
Definition string_util.h:210