1 #ifndef __XRD_CEPH_BUFFER_ALG_SIMPLE_HH__
2 #define __XRD_CEPH_BUFFER_ALG_SIMPLE_HH__
30 bool useStriperlessReads =
true );
37 virtual ssize_t
read (
volatile void *buff, off_t offset,
size_t blen)
override;
38 virtual ssize_t
write(
const void *buff, off_t offset,
size_t blen)
override;
46 virtual ssize_t
rawRead (
void *buff, off_t offset,
size_t blen) ;
47 virtual ssize_t
rawWrite(
void *buff, off_t offset,
size_t blen) ;
50 std::unique_ptr<IXrdCephBufferData> m_bufferdata;
51 std::unique_ptr<ICephIOAdapter> m_cephio ;
53 bool m_useStriperlessReads {
true};
55 off_t m_bufferStartingOffset = 0;
56 size_t m_bufferLength = 0;
58 std::recursive_mutex m_data_mutex;
60 long m_stats_bytes_fromceph{0};
61 long m_stats_bytes_bypassed{0};
62 long m_stats_bytes_toclient{0};
Interface to a holder of the main logic decisions of the buffering algortithm, decoupled from the buf...
Interface to the Buffer's physical representation. Allow an interface to encapsulate the requirements...
virtual ssize_t write_aio(XrdSfsAio *aoip) override
possible aio based code
virtual ssize_t rawWrite(void *buff, off_t offset, size_t blen)
virtual const IXrdCephBufferData * buffer() const
virtual ~XrdCephBufferAlgSimple()
virtual ssize_t flushWriteCache() override
remember to flush the cache on final writes
XrdCephBufferAlgSimple(std::unique_ptr< IXrdCephBufferData > buffer, std::unique_ptr< ICephIOAdapter > cephio, int fd, bool useStriperlessReads=true)
virtual ssize_t write(const void *buff, off_t offset, size_t blen) override
write data through the buffer
virtual ssize_t rawRead(void *buff, off_t offset, size_t blen)
virtual IXrdCephBufferData * buffer()
virtual ssize_t read(volatile void *buff, off_t offset, size_t blen) override
read data through the buffer
virtual ssize_t read_aio(XrdSfsAio *aoip) override
possible aio based code
is a simple implementation of IXrdCephBufferData using std::vector<char> representation for the buffe...