27#include <shared_mutex>
30#include <unordered_map>
48 explicit ResolvingFileIO(std::unordered_map<std::string, std::string> properties);
54 size_t length)
override;
63 const std::vector<StorageCredential>& storage_credentials)
override;
73 const std::vector<StorageCredential>& storage_credentials,
74 std::shared_ptr<StorageCredentialProvider> provider)
override;
76 const std::unordered_map<std::string, std::string>&
properties()
const override {
86 std::unordered_map<std::string, std::string> properties_;
88 mutable std::shared_mutex mutex_;
89 std::vector<StorageCredential> storage_credentials_;
90 std::shared_ptr<StorageCredentialProvider> provider_;
93 uint64_t credential_generation_ = 0;
Pluggable module for reading, writing, and deleting files.
Definition file_io.h:130
FileIO that resolves and caches implementations by registry name.
Definition resolving_file_io.h:46
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:80
Status DeleteFile(const std::string &file_location) override
Delete a file at the given location.
const std::unordered_map< std::string, std::string > & properties() const override
Return the configuration used to create this FileIO.
Definition resolving_file_io.h:76
Status DeleteFiles(const std::vector< std::string > &file_locations) override
Delete files at the given locations.
std::vector< StorageCredential > credentials() const override
Return the credentials installed on this resolver.
Result< std::unique_ptr< InputFile > > NewInputFile(std::string file_location) override
Create an input file handle for the given location.
Status InitializeStorageCredentials(const std::vector< StorageCredential > &storage_credentials, std::shared_ptr< StorageCredentialProvider > provider) override
Install initial credentials before the first delegate is loaded.
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:199
Definition expected.h:1199
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:34
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:226
Transparent hash function that supports std::string_view as lookup key.
Definition string_util.h:216