3#include <iolink/storage/RandomAccess.h>
4#include <iolink/storage/StreamAccess.h>
6#include <ioformat/OptionMap.h>
7#include <ioformat/plugin/Plugin.h>
8#include <ioformat/plugin/PluginVersion.h>
50 virtual bool exists(
const std::string& uri) = 0;
65 virtual std::shared_ptr<iolink::RandomAccess>
openReader(
const std::string& uri,
const OptionMap& options) = 0;
80 virtual std::shared_ptr<iolink::StreamAccess>
openWriter(
const std::string& uri,
const OptionMap& options) = 0;
107 virtual StringSet
list(
const std::string& host,
const std::string& prefix,
const OptionMap& options) = 0;
120 virtual void addCredentials(
const std::string& host,
const std::string& user,
const std::string& password) = 0;
130#define IOFORMAT_PROTOCOL_PLUGIN_TOKEN ioformat_protocol_plugin
139#define IOFORMAT_PROTOCOL_PLUGIN_SYMBOL "ioformat_protocol_plugin"
149#define IOFORMAT_DECLARE_PROTOCOL_PLUGIN(PLUGIN_CLASS) \
150 IOFORMAT_DECLARE_PLUGIN(PLUGIN_CLASS, IOFORMAT_PROTOCOL_PLUGIN_TOKEN)