25 #ifndef __XRD_CEPH_OSS_BUFFERED_FILE_HH__
26 #define __XRD_CEPH_OSS_BUFFERED_FILE_HH__
52 const std::string& bufferIOmode,
53 size_t maxNumberSimulBuffers);
56 virtual int Open(
const char *path,
int flags, mode_t mode,
XrdOucEnv &env);
57 virtual int Close(
long long *retsz=0);
58 virtual ssize_t
Read(off_t offset,
size_t blen);
59 virtual ssize_t
Read(
void *buff, off_t offset,
size_t blen);
62 virtual ssize_t
ReadRaw(
void *, off_t,
size_t);
64 virtual ssize_t
Write(
const void *buff, off_t offset,
size_t blen);
66 virtual int Fsync(
void);
67 virtual int Ftruncate(
unsigned long long);
70 std::unique_ptr<XrdCephBuffer::IXrdCephBufferAlg>
createBuffer();
74 std::unique_ptr<XrdCephBuffer::IXrdCephBufferAlg>
m_bufferAlg;
87 std::chrono::time_point<std::chrono::system_clock>
m_timestart;
int stat(const char *path, struct stat *buf)
std::string m_bufferIOmode
std::map< size_t, std::unique_ptr< XrdCephBuffer::IXrdCephBufferAlg > > m_bufferReadAlgs
std::atomic< size_t > m_bytesRead
virtual int Ftruncate(unsigned long long)
std::chrono::time_point< std::chrono::system_clock > m_timestart
int m_maxBufferRetrySleepTime_ms
How many times to retry a ready from a buffer with EBUSY errors.
int m_maxBufferRetries
set the maximum of buffers to open on a single instance (e.g. for simultaneous file reads)
virtual int Open(const char *path, int flags, mode_t mode, XrdOucEnv &env)
virtual int Fstat(struct stat *buff)
std::atomic< size_t > m_bytesReadV
number of bytes read or written
std::atomic< size_t > m_bytesWrite
number of bytes read or written
virtual ~XrdCephOssBufferedFile()
std::unique_ptr< XrdCephBuffer::IXrdCephBufferAlg > m_bufferAlg
XrdCephOss * m_cephoss
create a new instance of the buffer
virtual ssize_t Write(const void *buff, off_t offset, size_t blen)
std::atomic< size_t > m_bytesReadAIO
number of bytes read or written
std::atomic< size_t > m_bytesWriteAIO
number of bytes read or written
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
virtual ssize_t Read(off_t offset, size_t blen)
virtual int Close(long long *retsz=0)
int m_flags
number of ms to sleep if a retry is requested
XrdCephOssFile * m_xrdOssDF
size_t m_maxCountReadBuffers
any data access method on the buffer will use this
virtual ssize_t ReadRaw(void *, off_t, size_t)
std::unique_ptr< XrdCephBuffer::IXrdCephBufferAlg > createBuffer()
XrdCephOssBufferedFile(XrdCephOss *cephoss, XrdCephOssFile *cephossDF, size_t buffersize, const std::string &bufferIOmode, size_t maxNumberSimulBuffers)