21#ifndef XRDCLS3_S3FILESYSTEM_HH
22#define XRDCLS3_S3FILESYSTEM_HH
29#include <shared_mutex>
31#include <unordered_map>
50 time_t timeout)
override;
53 std::string &value)
const override;
58 time_t timeout)
override;
64 time_t timeout)
override;
69 time_t timeout)
override;
73 time_t timeout)
override;
77 time_t timeout)
override;
80 const std::string &value)
override;
84 time_t timeout)
override;
88 bool m_is_opened{
false};
91 std::pair<XrdCl::XRootDStatus, XrdCl::FileSystem*> GetFSHandle(
const std::string &path);
100 std::unordered_map<std::string, std::string> m_properties;
103 mutable std::mutex m_properties_mutex;
106 std::shared_mutex m_handles_mutex;
109 mutable std::unordered_map<std::string, XrdCl::FileSystem*> m_handles;
114 S3HeaderCallout(
Filesystem &fs) : m_parent(fs)
117 virtual ~S3HeaderCallout()
noexcept =
default;
119 virtual std::shared_ptr<HeaderList> GetHeaders(
const std::string &verb,
120 const std::string &url,
127 S3HeaderCallout m_header_callout{*
this};
virtual XrdCl::XRootDStatus MkDir(const std::string &path, XrdCl::MkDirFlags::Flags flags, XrdCl::Access::Mode mode, XrdCl::ResponseHandler *handler, time_t timeout) override
Filesystem(const std::string &, XrdCl::Log *log)
virtual bool SetProperty(const std::string &name, const std::string &value) override
virtual XrdCl::XRootDStatus DirList(const std::string &path, XrdCl::DirListFlags::Flags flags, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Rm(const std::string &path, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Locate(const std::string &path, XrdCl::OpenFlags::Flags flags, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual ~Filesystem() noexcept
virtual XrdCl::XRootDStatus RmDir(const std::string &path, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual bool GetProperty(const std::string &name, std::string &value) const override
virtual XrdCl::XRootDStatus Query(XrdCl::QueryCode::Code queryCode, const XrdCl::Buffer &arg, XrdCl::ResponseHandler *handler, time_t timeout) override
Binary blob representation.
An interface for file plug-ins.
Handle an async response.
Flags
Open flags, may be or'd when appropriate.
Code
XRootD query request codes.