1#ifndef __SFS_INTERFACE_H__
2#define __SFS_INTERFACE_H__
53#define SFS_O_CREAT 0x00000100
54#define SFS_O_TRUNC 0x00000200
55#define SFS_O_MULTIW 0x00000400
56#define SFS_O_NOTPC 0x00000800
57#define SFS_O_DIRLIST 0x00010000
58#define SFS_O_POSC 0x00100000
59#define SFS_O_FORCE 0x00200000
60#define SFS_O_HNAME 0x00400000
61#define SFS_O_LOCAL 0x00800000
62#define SFS_O_NOWAIT 0x01000000
63#define SFS_O_RAWIO 0x02000000
64#define SFS_O_RESET 0x04000000
65#define SFS_O_REPLICA 0x08000000
70#define SFS_O_MKPTH 0x00004000
75#define SFS_O_LOCATE 0x10000000
76#define SFS_O_STAT 0x20000000
77#define SFS_O_META 0x40000000
85#define SFS_FCTL_GETFD 1
86#define SFS_FCTL_STATV 2
87#define SFS_FCTL_SPEC1 3
89#define SFS_SFIO_FDVAL 0x80000000
93#define SFS_FSCTL_CMD 255
95#define SFS_FSCTL_LOCATE 1
96#define SFS_FSCTL_STATFS 2
97#define SFS_FSCTL_STATLS 3
98#define SFS_FSCTL_STATXA 4
99#define SFS_FSCTL_STATCC 5
100#define SFS_FSCTL_PLUGIN 8
101#define SFS_FSCTL_PLUGIO 16
102#define SFS_FSCTL_PLUGXC 32
109#define SFS_REDIRECT -256
110#define SFS_STARTED -512
111#define SFS_DATA -1024
112#define SFS_DATAVEC -2048
116#define SFS_LCLPRFX "/=/"
118#define SFS_LCLPATH(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN)
119#define SFS_LCLPRFY "/="
120#define SFS_LCLROOT(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN-1) \
121 && (*(x+SFS_LCLPLEN-1) == '/' || *(x+SFS_LCLPLEN-1) == 0)
147#define Prep_SENDAOK 4
148#define Prep_SENDERR 8
149#define Prep_SENDACK 12
153#define Prep_FRESH 128
154#define Prep_CANCEL 256
155#define Prep_QUERY 512
156#define Prep_EVICT 1024
263virtual int open(
const char *path,
265 const char *opaque = 0) = 0;
403virtual int open(
const char *fileName,
407 const char *opaque = 0) = 0;
510virtual int getMmap(
void **Addr, off_t &Size) = 0;
934 const char *opaque = 0);
952 const char *opaque = 0) = 0;
1004 const char *opaque = 0) = 0;
1162 const char *opaque = 0) = 0;
1189virtual int rem(
const char *path,
1192 const char *opaque = 0) = 0;
1208 const char *opaque = 0) = 0;
1227 const char *opaqueO = 0,
1228 const char *opaqueN = 0) = 0;
1247 const char *opaque = 0) = 0;
1267 const char *opaque = 0) = 0;
1285 const char *opaque = 0) = 0;
1328 const char *configFn,
1345 const char *configFn);
#define stat(a, b)
Definition XrdPosix.hh:96
int XrdSfsMode
Definition XrdSfsInterface.hh:129
XrdSfsFileExistence
Definition XrdSfsInterface.hh:133
@ XrdSfsFileExistIsOther
Definition XrdSfsInterface.hh:138
@ XrdSfsFileExistIsFile
Definition XrdSfsInterface.hh:135
@ XrdSfsFileExistNo
Definition XrdSfsInterface.hh:134
@ XrdSfsFileExistIsOffline
Definition XrdSfsInterface.hh:137
@ XrdSfsFileExistIsDirectory
Definition XrdSfsInterface.hh:136
int XrdSfsFileOpenMode
Definition XrdSfsInterface.hh:128
long long XrdSfsFileOffset
Definition XrdSfsInterface.hh:127
int XrdSfsXferSize
Definition XrdSfsInterface.hh:130
Definition XrdOucEnv.hh:42
Definition XrdOucErrInfo.hh:101
Definition XrdOucTList.hh:42
Definition XrdSecEntity.hh:65
Definition XrdSfsAio.hh:59
Definition XrdSfsDio.hh:47
Definition XrdSfsInterface.hh:243
virtual int autoStat(struct stat *buf)
XrdSfsDirectory(XrdOucErrInfo &eInfo)
Definition XrdSfsInterface.hh:341
XrdSfsDirectory(const char *user=0, int MonID=0)
Definition XrdSfsInterface.hh:319
XrdSfsDirectory(XrdSfsDirectory &wrapD)
Definition XrdSfsInterface.hh:331
XrdOucErrInfo * lclEI
Definition XrdSfsInterface.hh:351
virtual ~XrdSfsDirectory()
Destructor.
Definition XrdSfsInterface.hh:348
virtual int open(const char *path, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual const char * FName()=0
XrdOucErrInfo & error
Definition XrdSfsInterface.hh:251
virtual const char * nextEntry()=0
Definition XrdSfsInterface.hh:845
virtual void Connect(const XrdSecEntity *client=0)
Definition XrdSfsInterface.hh:960
XrdSfsFileSystem()
Constructor and Destructor.
virtual int chmod(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual void EnvInfo(XrdOucEnv *envP)
Definition XrdSfsInterface.hh:980
virtual int stat(const char *path, mode_t &mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual void Disc(const XrdSecEntity *client=0)
Definition XrdSfsInterface.hh:971
virtual int getStats(char *buff, int blen)=0
virtual int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int fsctl(const int cmd, const char *args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
virtual int rename(const char *oPath, const char *nPath, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaqueO=0, const char *opaqueN=0)=0
virtual int mkdir(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual const char * getVersion()=0
virtual ~XrdSfsFileSystem()
Definition XrdSfsInterface.hh:1292
virtual XrdSfsFile * newFile(char *user=0, int MonID=0)=0
virtual int truncate(const char *path, XrdSfsFileOffset fsize, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int remdir(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int getChkPSize()
Definition XrdSfsInterface.hh:1099
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
csFunc
Definition XrdSfsInterface.hh:927
@ csGet
Definition XrdSfsInterface.hh:927
@ csCalc
Definition XrdSfsInterface.hh:927
@ csSize
Definition XrdSfsInterface.hh:927
uint64_t FeatureSet
Adjust features at initialization.
Definition XrdSfsInterface.hh:1296
uint64_t Features()
Definition XrdSfsInterface.hh:1033
virtual int exists(const char *path, XrdSfsFileExistence &eFlag, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
virtual XrdSfsDirectory * newDir(XrdOucErrInfo &eInfo)
Definition XrdSfsInterface.hh:875
virtual int stat(const char *Name, struct stat *buf, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int gpFile(gpfFunc &gpAct, XrdSfsGPFile &gpReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int rem(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual XrdSfsDirectory * newDir(char *user=0, int MonID=0)=0
gpfFunc
Definition XrdSfsInterface.hh:1136
@ gpfGet
Perform a file retrieval.
Definition XrdSfsInterface.hh:1137
@ gpfCancel
Cancel this request.
Definition XrdSfsInterface.hh:1136
@ gpfPut
Perform a file push.
Definition XrdSfsInterface.hh:1138
virtual XrdSfsFile * newFile(XrdOucErrInfo &eInfo)
Definition XrdSfsInterface.hh:904
virtual int chksum(csFunc Func, const char *csName, const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)
Definition XrdSfsInterface.hh:369
static const uint64_t Verify
Options for pgRead() and pgWrite() as noted below.
Definition XrdSfsInterface.hh:517
virtual int fctl(const int cmd, int alen, const char *args, const XrdSecEntity *client=0)
XrdOucErrInfo & error
Definition XrdSfsInterface.hh:377
XrdSfsFileOffset pgwrEOF
Definition XrdSfsInterface.hh:811
virtual int getMmap(void **Addr, off_t &Size)=0
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int sync(XrdSfsAio *aiop)=0
virtual XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
virtual XrdSfsXferSize writev(XrdOucIOVec *writeV, int wdvCnt)
virtual int write(XrdSfsAio *aioparm)=0
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, XrdSfsXferSize size)=0
virtual int checkpoint(cpAct act, struct iov *range=0, int n=0)
virtual int truncate(XrdSfsFileOffset fsize)=0
virtual ~XrdSfsFile()
Destructor.
Definition XrdSfsInterface.hh:807
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size)=0
cpAct
Definition XrdSfsInterface.hh:432
@ cpTrunc
Truncate a file within checkpoint.
Definition XrdSfsInterface.hh:436
@ cpDelete
Delete an existing checkpoint.
Definition XrdSfsInterface.hh:433
@ cpRestore
Restore an active checkpoint and delete it.
Definition XrdSfsInterface.hh:434
@ cpWrite
Add data to an existing checkpoint.
Definition XrdSfsInterface.hh:437
@ cpQuery
Return checkpoint limits.
Definition XrdSfsInterface.hh:435
@ cpCreate
Create a checkpoint, one must not be active.
Definition XrdSfsInterface.hh:432
virtual const char * FName()=0
virtual int getCXinfo(char cxtype[4], int &cxrsz)=0
XrdSfsFile(XrdSfsFile &wrapF)
Definition XrdSfsInterface.hh:790
XrdSfsFile(const char *user=0, int MonID=0)
Definition XrdSfsInterface.hh:778
XrdOucErrInfo * lclEI
Definition XrdSfsInterface.hh:810
virtual XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
XrdSfsFile(XrdOucErrInfo &eInfo)
Definition XrdSfsInterface.hh:800
virtual XrdSfsXferSize readv(XrdOucIOVec *readV, int rdvCnt)
virtual int pgRead(XrdSfsAio *aioparm, uint64_t opts=0)
virtual int stat(struct stat *buf)=0
virtual void setXio(XrdSfsXio *xioP)
Definition XrdSfsInterface.hh:765
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
virtual XrdSfsXferSize write(XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=0
virtual int pgWrite(XrdSfsAio *aioparm, uint64_t opts=0)
virtual int read(XrdSfsAio *aioparm)=0
Definition XrdSfsGPFile.hh:37
Definition XrdSfsXio.hh:55
Definition XrdSysLogger.hh:53
Definition XrdOucIOVec.hh:41
Definition XrdSfsFAttr.hh:73
< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC parms
Definition XrdSfsInterface.hh:161
const char * Arg1
PLUGINO, PLUGION, PLUGXC.
Definition XrdSfsInterface.hh:162
int Arg2Len
Length or -count of args in extension.
Definition XrdSfsInterface.hh:164
const char * Arg2
PLUGIN opaque string.
Definition XrdSfsInterface.hh:166
const char ** ArgP
PLUGXC argument list extension.
Definition XrdSfsInterface.hh:167
int Arg1Len
Length.
Definition XrdSfsInterface.hh:163
< Prepare parameters
Definition XrdSfsInterface.hh:172
char * notify
Notification path or 0.
Definition XrdSfsInterface.hh:174
XrdOucTList * paths
List of paths.
Definition XrdSfsInterface.hh:176
XrdOucTList * oinfo
1-to-1 correspondence of opaque info
Definition XrdSfsInterface.hh:177
char * reqid
Request ID.
Definition XrdSfsInterface.hh:173
int opts
Prep_xxx.
Definition XrdSfsInterface.hh:175
Definition XrdOucIOVec.hh:65