1 #ifndef __XRDPOSIXFILE_HH__
2 #define __XRDPOSIXFILE_HH__
36 #include <sys/param.h>
37 #include <sys/resource.h>
38 #include <sys/types.h>
72 if (updtSz && currOffset > (
long long)
mySize)
74 long long retOffset = currOffset;
88 {(void)cdP;
return true;}
103 const char *
Location(
bool refresh=
false)
override;
116 const char *
Path()
override {
return fPath;}
118 int pgRead(
char *buff,
long long offs,
int rdlen,
119 std::vector<uint32_t> &csvec, uint64_t
opts=0,
120 int *csfix=0)
override;
123 char *buff,
long long offs,
int rdlen,
124 std::vector<uint32_t> &csvec, uint64_t
opts=0,
125 int *csfix=0)
override;
127 int pgWrite(
char *buff,
long long offs,
int wrlen,
128 std::vector<uint32_t> &csvec, uint64_t
opts=0,
129 int *csfix=0)
override;
132 char *buff,
long long offs,
int wrlen,
133 std::vector<uint32_t> &csvec, uint64_t
opts=0,
134 int *csfix=0)
override;
136 int Read (
char *Buff,
long long Offs,
int Len)
override;
170 {*fileP =
this;
return true;}
172 int Write(
char *Buff,
long long Offs,
int Len)
override;
205 union {
long long currOffset;
213 union {
int cOpt;
int numTries;};
int stat(const char *path, struct stat *buf)
#define AtomicRet(mtx, x)
Handle an async response.
An abstract class to define a callback for Open() call.
XrdPosixFile(bool &aOK, const char *path, XrdPosixCallBack *cbP=0, int Opts=0)
static XrdSysSemaphore ddSem
static XrdSysMutex ddMutex
const char * Path() override
bool Who(XrdPosixFile **fileP) override
int Write(char *Buff, long long Offs, int Len) override
static XrdPosixFile * ddLost
long long FSize() override
int Read(char *Buff, long long Offs, int Len) override
void UpdtSize(size_t newsz)
long long addOffset(long long offs, int updtSz=0)
int Fstat(struct stat &buf) override
bool Detach(XrdOucCacheIOCD &cdP) override
int pgRead(char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0) override
int Trunc(long long Offset) override
const char * Location(bool refresh=false) override
bool Stat(XrdCl::XRootDStatus &Status, bool force=false)
void DetachDone() override
Indicate that the CacheIO object has been detached.
bool Close(XrdCl::XRootDStatus &Status)
static XrdPosixFile * ddList
void HandleResponse(XrdCl::XRootDStatus *status, XrdCl::AnyObject *response) override
bool Finalize(XrdCl::XRootDStatus *Status)
int ReadV(const XrdOucIOVec *readV, int n) override
long long setOffset(long long offs)
static void * DelayedDestroy(void *)
int pgWrite(char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0) override
virtual bool Who(XrdPosixDir **dirP)