24 Stream(std::unique_ptr<XrdSfsFile> fh,
size_t max_blocks,
size_t buffer_size,
XrdSysError &log)
32 for (
size_t idx=0; idx < max_blocks; idx++) {
42 int Read(off_t offset,
char *buffer,
size_t size);
44 int Write(off_t offset,
const char *buffer,
size_t size,
bool force);
77 size_t size_desired =
m_size;
79 size_desired -= (size_desired % (1024*1024));
80 if (!size_desired) {
return 0;}
83 if (retval < 0 && (static_cast<size_t>(retval) != size_desired)) {
88 if (size_desired <
m_size) {
99 bool Accept(off_t offset,
const char *buf,
size_t size) {
110 if (new_bytes_needed > 0) {
125 #if __cplusplus > 199711L
156 std::unique_ptr<XrdSfsFile>
m_fh;
Definition: XrdTpcStream.hh:22
XrdSysError & m_log
Definition: XrdTpcStream.hh:159
int Write(off_t offset, const char *buffer, size_t size, bool force)
size_t m_capacity
Definition: XrdTpcStream.hh:149
size_t m_avail_count
Definition: XrdTpcStream.hh:155
size_t AvailableBuffers() const
Definition: XrdTpcStream.hh:46
Stream(std::unique_ptr< XrdSfsFile > fh, size_t max_blocks, size_t buffer_size, XrdSysError &log)
Definition: XrdTpcStream.hh:24
std::string GetErrorMessage() const
Definition: XrdTpcStream.hh:59
off_t m_offset
Definition: XrdTpcStream.hh:148
bool Available() const
Definition: XrdTpcStream.hh:71
Definition: XrdSysError.hh:89
int Read(off_t offset, char *buffer, size_t size)
void ShrinkIfUnused()
Definition: XrdTpcStream.hh:123
off_t m_offset
Definition: XrdTpcStream.hh:157
Definition: XrdTpcStream.hh:63
bool Accept(off_t offset, const char *buf, size_t size)
Definition: XrdTpcStream.hh:99
Entry(size_t capacity)
Definition: XrdTpcStream.hh:65
off_t GetOffset() const
Definition: XrdTpcStream.hh:136
std::vector< Entry * > m_buffers
Definition: XrdTpcStream.hh:158
size_t GetSize() const
Definition: XrdTpcStream.hh:138
std::unique_ptr< XrdSfsFile > m_fh
Definition: XrdTpcStream.hh:156
#define stat(a, b)
Definition: XrdPosix.hh:96
std::string m_error_buf
Definition: XrdTpcStream.hh:160
int Write(Stream &stream, bool force)
Definition: XrdTpcStream.hh:73
bool m_open_for_write
Definition: XrdTpcStream.hh:154
bool CanWrite(Stream &stream) const
Definition: XrdTpcStream.hh:144
size_t m_size
Definition: XrdTpcStream.hh:150
void Move(Entry &other)
Definition: XrdTpcStream.hh:130
std::vector< char > m_buffer
Definition: XrdTpcStream.hh:151
size_t GetCapacity() const
Definition: XrdTpcStream.hh:137