XRootD
Loading...
Searching...
No Matches
XrdClS3::File Class Referencefinal

#include <XrdClS3File.hh>

Inheritance diagram for XrdClS3::File:
Collaboration diagram for XrdClS3::File:

Public Member Functions

 File (XrdCl::Log *log)
virtual ~File () noexcept
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 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 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 bool SetProperty (const std::string &name, const std::string &value) override
virtual XrdCl::XRootDStatus Stat (bool force, 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 Write (uint64_t offset, uint32_t size, const void *buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
virtual XrdCl::XRootDStatus Write (uint64_t offset, XrdCl::Buffer &&buffer, XrdCl::ResponseHandler *handler, time_t timeout) override
Public Member Functions inherited from XrdCl::FilePlugIn
virtual ~FilePlugIn ()
 Destructor.
virtual XRootDStatus Clone (const CloneLocations &locs, ResponseHandler *handler, time_t timeout)
virtual std::unique_ptr< ExportedFileTemplateExportTemplate () const
virtual XRootDStatus Fcntl (const Buffer &arg, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus Fcntl (QueryCode::Code queryCode, const Buffer &arg, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus OpenUsingTemplate (ExportedFileTemplate *templ, const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus PgWrite (uint64_t offset, uint32_t nbpgs, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus PreRead (const TractList &tracts, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus Read (uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, time_t timeout=0)
virtual XRootDStatus Sync (ResponseHandler *handler, time_t timeout)
virtual XRootDStatus Truncate (uint64_t size, ResponseHandler *handler, time_t timeout)
virtual XRootDStatus VectorWrite (const ChunkList &chunks, ResponseHandler *handler, time_t timeout=0)
virtual XRootDStatus Visa (ResponseHandler *handler, time_t timeout)
virtual XRootDStatus Write (uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, time_t timeout=0)
virtual XRootDStatus WriteV (uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, time_t timeout=0)

Detailed Description

Definition at line 36 of file XrdClS3File.hh.

Constructor & Destructor Documentation

◆ File()

File::File ( XrdCl::Log * log)

Definition at line 85 of file XrdClS3File.cc.

85 :
86 m_logger(log),
87 m_wrapped_file()
88{
89}

References File().

Referenced by File().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~File()

File::~File ( )
virtualnoexcept

Definition at line 91 of file XrdClS3File.cc.

91{}

Member Function Documentation

◆ Close()

XrdCl::XRootDStatus File::Close ( XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Close

Reimplemented from XrdCl::FilePlugIn.

Definition at line 94 of file XrdClS3File.cc.

96{
97 return m_wrapped_file->Close(new CloseResponseHandler(&m_is_opened, handler), timeout);
98}

◆ GetProperty()

bool File::GetProperty ( const std::string & name,
std::string & value ) const
overridevirtual
See also
XrdCl::File::GetProperty

Reimplemented from XrdCl::FilePlugIn.

Definition at line 107 of file XrdClS3File.cc.

109{
110 std::unique_lock lock(m_properties_mutex);
111 const auto p = m_properties.find(name);
112 if (p == std::end(m_properties)) {
113 return false;
114 }
115
116 value = p->second;
117 return true;
118}

◆ IsOpen()

bool File::IsOpen ( ) const
overridevirtual
See also
XrdCl::File::IsOpen

Reimplemented from XrdCl::FilePlugIn.

Definition at line 101 of file XrdClS3File.cc.

102{
103 return m_is_opened;
104}

Referenced by Open().

Here is the caller graph for this function:

◆ Open()

XrdCl::XRootDStatus File::Open ( const std::string & url,
XrdCl::OpenFlags::Flags flags,
XrdCl::Access::Mode mode,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Open

Reimplemented from XrdCl::FilePlugIn.

Definition at line 171 of file XrdClS3File.cc.

176{
177 if (IsOpen()) {
178 m_logger->Error(kLogXrdClS3, "URL %s already open", url.c_str());
179 return XrdCl::XRootDStatus(XrdCl::stError, XrdCl::errInvalidOp);
180 }
181
182 auto [st, https_url, fs] = GetFileHandle(url);
183 if (!st.IsOK()) {
184 return st;
185 }
186
187 return fs->Open(https_url, flags, mode, new OpenResponseHandler(&m_is_opened, handler), timeout);
188}
virtual bool IsOpen() const override
const uint64_t kLogXrdClS3
const uint16_t stError
An error occurred that could potentially be retried.
const uint16_t errInvalidOp

References XrdCl::errInvalidOp, IsOpen(), XrdClS3::kLogXrdClS3, and XrdCl::stError.

Here is the call graph for this function:

◆ PgRead()

XrdCl::XRootDStatus File::PgRead ( uint64_t offset,
uint32_t size,
void * buffer,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl:File PgRead

Reimplemented from XrdCl::FilePlugIn.

Definition at line 191 of file XrdClS3File.cc.

196{
197 return m_wrapped_file->PgRead(offset, size, buffer, handler, timeout);
198}

◆ Read()

XrdCl::XRootDStatus File::Read ( uint64_t offset,
uint32_t size,
void * buffer,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Read

Reimplemented from XrdCl::FilePlugIn.

Definition at line 201 of file XrdClS3File.cc.

206{
207
208 return m_wrapped_file->Read(offset, size, buffer, handler, timeout);
209}

◆ SetProperty()

bool File::SetProperty ( const std::string & name,
const std::string & value )
overridevirtual
See also
XrdCl::File::SetProperty

Reimplemented from XrdCl::FilePlugIn.

Definition at line 212 of file XrdClS3File.cc.

214{
215 std::unique_lock lock(m_properties_mutex);
216 m_properties[name] = value;
217 return true;
218}

◆ Stat()

XrdCl::XRootDStatus File::Stat ( bool force,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Stat

Reimplemented from XrdCl::FilePlugIn.

Definition at line 221 of file XrdClS3File.cc.

224{
225 return m_wrapped_file->Stat(force, handler, timeout);
226}

◆ VectorRead()

XrdCl::XRootDStatus File::VectorRead ( const XrdCl::ChunkList & chunks,
void * buffer,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::VectorRead

Reimplemented from XrdCl::FilePlugIn.

Definition at line 229 of file XrdClS3File.cc.

233{
234 return m_wrapped_file->VectorRead(chunks, buffer, handler, timeout);
235}

◆ Write() [1/2]

XrdCl::XRootDStatus File::Write ( uint64_t offset,
uint32_t size,
const void * buffer,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Write

Reimplemented from XrdCl::FilePlugIn.

Definition at line 238 of file XrdClS3File.cc.

243{
244 return m_wrapped_file->Write(offset, size, buffer, handler, timeout);
245}

◆ Write() [2/2]

XrdCl::XRootDStatus File::Write ( uint64_t offset,
XrdCl::Buffer && buffer,
XrdCl::ResponseHandler * handler,
time_t timeout )
overridevirtual
See also
XrdCl::File::Write

Reimplemented from XrdCl::FilePlugIn.

Definition at line 248 of file XrdClS3File.cc.

252{
253 return m_wrapped_file->Write(offset, std::move(buffer), handler, timeout);
254}

The documentation for this class was generated from the following files: