21 #ifndef XRDCLHTTP_FILESYSTEM_HH
22 #define XRDCLHTTP_FILESYSTEM_HH
33 #include <shared_mutex>
35 #include <unordered_map>
60 XrdCl::DirListFlags::Flags flags,
61 XrdCl::ResponseHandler *handler,
62 time_t timeout) override;
65 std::
string &value) const override;
68 XrdCl::OpenFlags::Flags flags,
69 XrdCl::ResponseHandler *handler,
70 time_t timeout) override;
72 virtual
XrdCl::XRootDStatus
MkDir(const std::
string &path,
73 XrdCl::MkDirFlags::Flags flags,
75 XrdCl::ResponseHandler *handler,
76 time_t timeout) override;
79 const std::vector<std::
string> &fileList,
80 XrdCl::PrepareFlags::Flags flags,
82 XrdCl::ResponseHandler *handler,
83 time_t timeout) override;
85 virtual
XrdCl::XRootDStatus
Rm(const std::
string &path,
86 XrdCl::ResponseHandler *handler,
87 time_t timeout) override;
89 virtual
XrdCl::XRootDStatus
RmDir(const std::
string &path,
90 XrdCl::ResponseHandler *handler,
91 time_t timeout) override;
94 const std::
string &value) override;
96 virtual
XrdCl::XRootDStatus
Stat(const std::
string &path,
97 XrdCl::ResponseHandler *handler,
98 time_t timeout) override;
101 const
XrdCl::Buffer &arg,
102 XrdCl::ResponseHandler *handler,
103 time_t timeout) override;
106 const std::
string &dest,
107 const
XrdCl::PropertyList *properties,
108 XrdCl::ProgressHandler *progress_handler,
109 time_t timeout = 0 ) override;
112 XrdCl::XRootDStatus QueueOperation(
114 const
char *description);
123 bool SendResponseInfo() const;
128 std::
string GetCurrentURL(const std::
string &path) const;
131 mutable std::shared_mutex m_properties_mutex;
137 std::unordered_map<std::string, std::string> m_properties;
virtual XrdCl::XRootDStatus Stat(const std::string &path, 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 Query(XrdCl::QueryCode::Code queryCode, const XrdCl::Buffer &arg, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Prepare(const std::vector< std::string > &fileList, XrdCl::PrepareFlags::Flags flags, uint8_t priority, 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 XrdCl::XRootDStatus MkDir(const std::string &path, XrdCl::MkDirFlags::Flags flags, XrdCl::Access::Mode mode, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus ThirdPartyCopy(const std::string &source, const std::string &dest, const XrdCl::PropertyList *properties, XrdCl::ProgressHandler *progress_handler, time_t timeout=0) override
virtual bool SetProperty(const std::string &name, const std::string &value) override
XrdCl::XRootDStatus DirList(const std::string &path, XrdCl::DirListFlags::Flags flags, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus RmDir(const std::string &path, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual ~Filesystem() noexcept
virtual bool GetProperty(const std::string &name, std::string &value) const override
Filesystem(const std::string &, std::shared_ptr< HandlerQueue > queue, XrdCl::Log *log)
An interface for file plug-ins.
ConnectionCallout *(*)(const std::string &, const ResponseInfo &) CreateConnCalloutType