1 #ifndef __XRDOUCCACHE_HH__
2 #define __XRDOUCCACHE_HH__
64 void Done(
int result) = 0;
133 long long FSize() = 0;
169 const char *
Path() = 0;
188 static const uint64_t
forceCS = 0x0000000000000001ULL;
190 virtual int pgRead(
char *buff,
193 std::vector<uint32_t> &csvec,
218 std::vector<uint32_t> &csvec,
221 {iocb.
Done(
pgRead(buff, offs, rdlen, csvec, opts, csfix));}
239 virtual int pgWrite(
char *buff,
242 std::vector<uint32_t> &csvec,
266 std::vector<uint32_t> &csvec,
269 {iocb.
Done(
pgWrite(buff, offs, wrlen, csvec, opts, csfix));}
281 virtual void Preread(
long long offs,
int rlen,
int opts=0)
318 virtual int Read (
char *buff,
long long offs,
int rlen) = 0;
334 {iocb.
Done(
Read(buff, offs, rlen));}
369 virtual int Sync() = 0;
391 virtual int Trunc(
long long offs) = 0;
435 virtual int Write(
char *buff,
long long offs,
int wlen) = 0;
579 if (buff && blen > 0) *buff = 0;
600 virtual int Prepare(
const char *url,
int oflags, mode_t mode)
613 virtual int Rename(
const char* oldp,
const char* newp)
625 virtual int Rmdir(
const char* dirp) {(
void)dirp;
return 0;}
641 virtual int Stat(
const char *url,
struct stat &sbuff)
705 {strncpy(const_cast<char *>(
CacheType), ctype,
virtual const char * Location(bool refresh=false)
Definition: XrdOucCache.hh:161
virtual int Stat(const char *url, struct stat &sbuff)
Definition: XrdOucCache.hh:641
virtual void Preread(aprParms &Parms)
Definition: XrdOucCache.hh:304
void * Reserve3
Definition: XrdOucCache.hh:298
Definition: XrdOucCache.hh:573
virtual int Trunc(long long offs)=0
Definition: XrdOucCache.hh:573
static const int SingleUse
Mark pages for single use.
Definition: XrdOucCache.hh:279
aprParms()
Definition: XrdOucCache.hh:300
virtual ~XrdOucCacheIOCD()
Definition: XrdOucCache.hh:92
int Reserve1
Definition: XrdOucCache.hh:293
virtual int pgWrite(char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
virtual int Truncate(const char *path, off_t size)
Definition: XrdOucCache.hh:654
Definition: XrdOucCache.hh:104
virtual void ReadV(XrdOucCacheIOCB &iocb, const XrdOucIOVec *readV, int rnum)
Definition: XrdOucCache.hh:359
virtual int Unlink(const char *path)
Definition: XrdOucCache.hh:666
static const int optNEW
File is new -> optRW (o/w read or write)
Definition: XrdOucCache.hh:521
virtual int WriteV(const XrdOucIOVec *writV, int wnum)
virtual int Rename(const char *oldp, const char *newp)
Definition: XrdOucCache.hh:613
virtual void WriteV(XrdOucCacheIOCB &iocb, const XrdOucIOVec *writV, int wnum)
Definition: XrdOucCache.hh:476
virtual void Read(XrdOucCacheIOCB &iocb, char *buff, long long offs, int rlen)
Definition: XrdOucCache.hh:333
virtual bool Detach(XrdOucCacheIOCD &iocd)=0
XrdOucCacheStats Statistics
Definition: XrdOucCache.hh:689
short minPages
Definition: XrdOucCache.hh:294
Definition: XrdOucCache.hh:81
char Reserve2
Definition: XrdOucCache.hh:297
virtual int Rmdir(const char *dirp)
Definition: XrdOucCache.hh:625
virtual void DetachDone()=0
Indicate that the CacheIO object has been detached.
LFP_Reason
Definition: XrdOucCache.hh:573
Definition: XrdOucCache.hh:497
static const int optFIS
File is structured (e.g. root file)
Definition: XrdOucCache.hh:519
virtual const char * Path()=0
virtual void Trunc(XrdOucCacheIOCB &iocb, long long offs)
Definition: XrdOucCache.hh:406
Definition: XrdOucEnv.hh:41
Definition: XrdOucIOVec.hh:40
virtual ~XrdOucCacheIO()
Definition: XrdOucCache.hh:485
Definition: XrdOucCache.hh:573
j template void())
Definition: XrdOucJson.hh:4121
Definition: XrdOucCache.hh:290
XrdOucCache(const char *ctype)
Definition: XrdOucCache.hh:703
Definition: XrdOucCache.hh:52
Definition: XrdSysLogger.hh:52
virtual void Sync(XrdOucCacheIOCB &iocb)
Definition: XrdOucCache.hh:380
virtual int pgRead(char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
#define stat(a, b)
Definition: XrdPosix.hh:96
virtual void Preread(long long offs, int rlen, int opts=0)
Definition: XrdOucCache.hh:281
virtual void Update(XrdOucCacheIO &iocp)
Definition: XrdOucCache.hh:421
int Trigger
Definition: XrdOucCache.hh:291
virtual int LocalFilePath(const char *url, char *buff=0, int blen=0, LFP_Reason why=ForAccess, bool forall=false)
Definition: XrdOucCache.hh:575
static const int optWIN
File is new -> optRW use write-in cache.
Definition: XrdOucCache.hh:522
virtual int Xeq(XeqCmd cmd, char *arg, int arglen)
Definition: XrdOucCache.hh:681
virtual void pgRead(XrdOucCacheIOCB &iocb, char *buff, long long offs, int rdlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
Definition: XrdOucCache.hh:214
static const int optRW
File is read/write (o/w read/only)
Definition: XrdOucCache.hh:520
static const uint64_t forceCS
Definition: XrdOucCache.hh:188
virtual int Fstat(struct stat &sbuff)
Definition: XrdOucCache.hh:148
virtual int Prepare(const char *url, int oflags, mode_t mode)
Definition: XrdOucCache.hh:600
XrdOucCacheIO()
Construct and Destructor.
Definition: XrdOucCache.hh:483
Definition: XrdOucCacheStats.hh:43
const char CacheType[8]
A 1-to-7 character cache type identifier (usually pfc or rmc).
Definition: XrdOucCache.hh:695
virtual int ReadV(const XrdOucIOVec *readV, int rnum)
virtual ~XrdOucCache()
Destructor.
Definition: XrdOucCache.hh:714
virtual int Read(char *buff, long long offs, int rlen)=0
virtual void Write(XrdOucCacheIOCB &iocb, char *buff, long long offs, int wlen)
Definition: XrdOucCache.hh:450
virtual long long FSize()=0
virtual int Write(char *buff, long long offs, int wlen)=0
XrdOucCacheIOCD()
Definition: XrdOucCache.hh:91
int prRecalc
Definition: XrdOucCache.hh:292
Definition: XrdOucCache.hh:679
signed char minPerf
Definition: XrdOucCache.hh:296
XeqCmd
Definition: XrdOucCache.hh:679
virtual ~XrdOucCacheIOCB()
Definition: XrdOucCache.hh:67
virtual XrdOucCacheIO * Attach(XrdOucCacheIO *ioP, int opts=0)=0
XrdOucCacheIOCB()
Definition: XrdOucCache.hh:66
virtual void pgWrite(XrdOucCacheIOCB &iocb, char *buff, long long offs, int wrlen, std::vector< uint32_t > &csvec, uint64_t opts=0, int *csfix=0)
Definition: XrdOucCache.hh:262
virtual void Done(int result)=0