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 164 of file XrdClS3File.cc.

169{
170 if (IsOpen()) {
171 m_logger->Error(kLogXrdClS3, "URL %s already open", url.c_str());
172 return XrdCl::XRootDStatus(XrdCl::stError, XrdCl::errInvalidOp);
173 }
174
175 auto [st, https_url, fs] = GetFileHandle(url);
176 if (!st.IsOK()) {
177 return st;
178 }
179
180 return fs->Open(https_url, flags, mode, new OpenResponseHandler(&m_is_opened, handler), timeout);
181}
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 184 of file XrdClS3File.cc.

189{
190 return m_wrapped_file->PgRead(offset, size, buffer, handler, timeout);
191}

◆ 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 194 of file XrdClS3File.cc.

199{
200
201 return m_wrapped_file->Read(offset, size, buffer, handler, timeout);
202}

◆ 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 205 of file XrdClS3File.cc.

207{
208 std::unique_lock lock(m_properties_mutex);
209 m_properties[name] = value;
210 return true;
211}

◆ 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 214 of file XrdClS3File.cc.

217{
218 return m_wrapped_file->Stat(force, handler, timeout);
219}

◆ 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 222 of file XrdClS3File.cc.

226{
227 return m_wrapped_file->VectorRead(chunks, buffer, handler, timeout);
228}

◆ 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 231 of file XrdClS3File.cc.

236{
237 return m_wrapped_file->Write(offset, size, buffer, handler, timeout);
238}

◆ 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 241 of file XrdClS3File.cc.

245{
246 return m_wrapped_file->Write(offset, std::move(buffer), handler, timeout);
247}

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