21#ifndef XRDCLS3_S3FILE_HH
22#define XRDCLS3_S3FILE_HH
40 virtual ~File()
noexcept;
43 time_t timeout)
override;
46 std::string &value )
const override;
48 virtual bool IsOpen()
const override;
54 time_t timeout)
override;
60 time_t timeout)
override;
66 time_t timeout)
override;
69 const std::string &value )
override;
73 time_t timeout)
override;
78 time_t timeout )
override;
84 time_t timeout)
override;
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,
123 S3HeaderCallout m_header_callout{*
this};
virtual XrdCl::XRootDStatus Open(const std::string &url, XrdCl::OpenFlags::Flags flags, XrdCl::Access::Mode mode, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual bool SetProperty(const std::string &name, const std::string &value) override
virtual bool IsOpen() const override
virtual XrdCl::XRootDStatus VectorRead(const XrdCl::ChunkList &chunks, 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 bool GetProperty(const std::string &name, std::string &value) const override
virtual XrdCl::XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, 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 Close(XrdCl::ResponseHandler *handler, time_t timeout) override
Binary blob representation.
An interface for file plug-ins.
Handle an async response.
std::vector< ChunkInfo > ChunkList
List of chunks.
Flags
Open flags, may be or'd when appropriate.