47 off_t offset,
size_t rdlen,
48 std::vector<uint32_t>& csvec,
53 long long offs, bytes;
67 if (rdlen > (
size_t)0x7fffffff)
78 iosz =
static_cast<int>(rdlen);
79 offs =
static_cast<long long>(offset);
86 {bytes = fp->
XCio->
pgRead((
char *)buffer, offs, (int)iosz, csvec, fOpts);
93 return (ssize_t)bytes;
103 fp->
XCio->
pgRead(*cbp, (
char *)buffer, offs, (int)iosz, csvec, fOpts);
112 off_t offset,
size_t wrlen,
113 std::vector<uint32_t>& csvec,
124 {
if (!cbp)
return -1;
131 if (wrlen > (
size_t)0x7fffffff)
141 if (csvec.size() == 0)
153 iosz =
static_cast<int>(wrlen);
154 offs =
static_cast<long long>(offset);
159 {bytes = fp->
XCio->
pgWrite((
char *)buffer, offs, (int)iosz, csvec);
167 return (ssize_t)bytes;
177 fp->
XCio->
pgWrite(*cbp, (
char *)buffer, offs, (int)iosz, csvec);
static const uint64_t forceCS
virtual int pgRead(char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
virtual int pgWrite(char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
int SetErrno(int ecc, int ret=-1, const char *alt=0)
static void csCalc(const char *data, off_t offs, size_t count, uint32_t *csval)
static int csNum(off_t offs, int count)
Compute the required size of a checksum vector based on offset & length.
virtual void Complete(ssize_t Result)=0
void UpdtSize(size_t newsz)
static XrdPosixFile * File(int fildes, bool glk=false)