21 #ifndef XRDCLS3_S3FILE_HH
22 #define XRDCLS3_S3FILE_HH
24 #include "../XrdClHttp/XrdClHttpHeaderCallout.hh"
43 time_t timeout) override;
46 std::
string &value ) const override;
48 virtual
bool IsOpen() const override;
50 virtual
XrdCl::XRootDStatus
Open(const std::
string &url,
51 XrdCl::OpenFlags::Flags flags,
53 XrdCl::ResponseHandler *handler,
54 time_t timeout) override;
59 XrdCl::ResponseHandler *handler,
60 time_t timeout) override;
65 XrdCl::ResponseHandler *handler,
66 time_t timeout) override;
69 const std::
string &value ) override;
72 XrdCl::ResponseHandler *handler,
73 time_t timeout) override;
77 XrdCl::ResponseHandler *handler,
78 time_t timeout ) override;
83 XrdCl::ResponseHandler *handler,
84 time_t timeout) override;
87 XrdCl::Buffer &&buffer,
88 XrdCl::ResponseHandler *handler,
89 time_t timeout) override;
92 bool m_is_opened{
false};
99 mutable std::mutex m_properties_mutex;
100 std::unordered_map<std::string, std::string> m_properties;
102 std::unique_ptr<XrdCl::File> m_wrapped_file;
105 std::tuple<XrdCl::XRootDStatus, std::string, XrdCl::File*> GetFileHandle(
const std::string &url);
110 S3HeaderCallout(
File &fs) : m_parent(fs)
113 virtual ~S3HeaderCallout() noexcept = default;
115 virtual std::shared_ptr<HeaderList> GetHeaders(const std::
string &verb,
116 const std::
string &url,
117 const HeaderList &headers) override;
123 S3HeaderCallout m_header_callout{*
this};
virtual XrdCl::XRootDStatus Stat(bool force, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual bool IsOpen() const override
virtual XrdCl::XRootDStatus Open(const std::string &url, XrdCl::OpenFlags::Flags flags, XrdCl::Access::Mode mode, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus VectorRead(const XrdCl::ChunkList &chunks, void *buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Close(XrdCl::ResponseHandler *handler, time_t timeout) override
virtual bool GetProperty(const std::string &name, std::string &value) const override
virtual bool SetProperty(const std::string &name, const std::string &value) override
An interface for file plug-ins.
std::vector< ChunkInfo > ChunkList
List of chunks.
Flags
Open flags, may be or'd when appropriate.