29#include <unordered_map>
45 static constexpr std::string_view kArrowLocalFileIO =
"arrow-fs-local";
46 static constexpr std::string_view kArrowS3FileIO =
"arrow-fs-s3";
48 using Properties = std::unordered_map<std::string, std::string>;
52 using CreateFunction =
53 std::function<Result<std::unique_ptr<FileIO>>(
const Properties& properties)>;
54 using AcceptsFunction = std::function<bool(std::string_view scheme)>;
74 const Properties& properties);
Registry for FileIO implementations.
Definition file_io_registry.h:43
static void Register(std::string name, Factory factory)
Register a FileIO factory under the given name.
static Result< std::unique_ptr< FileIO > > Load(std::string_view name, const Properties &properties)
Load a FileIO implementation by name.
static Result< std::string > Resolve(std::string_view scheme)
Returns the last registered factory accepting scheme.
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.
Factory for explicit loading and optional scheme-based routing.
Definition file_io_registry.h:51
CreateFunction create
Required for explicit loading.
Definition file_io_registry.h:57
AcceptsFunction accepts
Receives a lower-case scheme. Empty means explicit-only.
Definition file_io_registry.h:59