Go to the documentation of this file. 1 #ifndef __SFS_INTERFACE_H__
2 #define __SFS_INTERFACE_H__
35 #include <sys/types.h>
50 #define SFS_O_RDONLY 0 // open read/only
51 #define SFS_O_WRONLY 1 // open write/only
52 #define SFS_O_RDWR 2 // open read/write
53 #define SFS_O_CREAT 0x00000100 // used for file creation
54 #define SFS_O_TRUNC 0x00000200 // used for file truncation
55 #define SFS_O_MULTIW 0x00000400 // used for multi-write locations
56 #define SFS_O_NOTPC 0x00000800 // used to suppress TPC opens
57 #define SFS_O_DIRLIST 0x00010000 // used for locate only
58 #define SFS_O_POSC 0x00100000 // persist on successful close
59 #define SFS_O_FORCE 0x00200000 // used for locate only
60 #define SFS_O_HNAME 0x00400000 // used for locate only
61 #define SFS_O_LOCAL 0x00800000 // used for locate only (local cmd)
62 #define SFS_O_NOWAIT 0x01000000 // do not impose operational delays
63 #define SFS_O_RAWIO 0x02000000 // allow client-side decompression
64 #define SFS_O_RESET 0x04000000 // Reset any cached information
65 #define SFS_O_REPLICA 0x08000000 // Open for replication
70 #define SFS_O_MKPTH 0x00004000 // Make directory path if missing
75 #define SFS_O_LOCATE 0x10000000 // This request generated by locate()
76 #define SFS_O_STAT 0x20000000 // This request generated by stat()
77 #define SFS_O_META 0x40000000 // This request generated by metaop
85 #define SFS_FCTL_GETFD 1 // Return file descriptor if possible
86 #define SFS_FCTL_STATV 2 // Return visa information
87 #define SFS_FCTL_SPEC1 3 // Return implementation defined information
89 #define SFS_SFIO_FDVAL 0x80000000 // Use SendData() method GETFD response value
93 #define SFS_FSCTL_CMD 255
95 #define SFS_FSCTL_LOCATE 1 // Locate a file
96 #define SFS_FSCTL_STATFS 2 // Return FS data
97 #define SFS_FSCTL_STATLS 3 // Return LS data
98 #define SFS_FSCTL_STATXA 4 // Return XA data
99 #define SFS_FSCTL_STATCC 5 // Return Cluster Config status
100 #define SFS_FSCTL_PLUGIN 8 // Return Implementation Dependent Data
101 #define SFS_FSCTL_PLUGIO 16 // Return Implementation Dependent Data
105 #define SFS_STALL 1 // Return value -> Seconds to stall client
106 #define SFS_OK 0 // ErrInfo code -> All is well
107 #define SFS_ERROR -1 // ErrInfo code -> Error occurred
108 #define SFS_REDIRECT -256 // ErrInfo code -> Port number to redirect to
109 #define SFS_STARTED -512 // ErrInfo code -> Estimated seconds to completion
110 #define SFS_DATA -1024 // ErrInfo code -> Length of data
111 #define SFS_DATAVEC -2048 // ErrInfo code -> Num iovec elements in msgbuff
115 #define SFS_LCLPRFX "/=/"
116 #define SFS_LCLPLEN 3
117 #define SFS_LCLPATH(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN)
118 #define SFS_LCLPRFY "/="
119 #define SFS_LCLROOT(x) !strncmp(x, SFS_LCLPRFX, SFS_LCLPLEN-1) \
120 && (*(x+SFS_LCLPLEN-1) == '/' || *(x+SFS_LCLPLEN-1) == 0)
146 #define Prep_SENDAOK 4
147 #define Prep_SENDERR 8
148 #define Prep_SENDACK 12
149 #define Prep_WMODE 16
150 #define Prep_STAGE 32
151 #define Prep_COLOC 64
152 #define Prep_FRESH 128
153 #define Prep_CANCEL 256
154 #define Prep_QUERY 512
155 #define Prep_EVICT 1024
259 virtual int open(
const char *path,
261 const char *opaque = 0) = 0;
396 virtual int open(
const char *fileName,
400 const char *opaque = 0) = 0;
446 virtual int fctl(
const int cmd,
465 virtual int fctl(
const int cmd,
487 virtual int getMmap(
void **Addr, off_t &Size) = 0;
493 static const uint64_t
495 static const uint64_t
905 const char *opaque = 0);
923 const char *opaque = 0) = 0;
975 const char *opaque = 0) = 0;
1133 const char *opaque = 0) = 0;
1160 virtual int rem(
const char *path,
1163 const char *opaque = 0) = 0;
1179 const char *opaque = 0) = 0;
1198 const char *opaqueO = 0,
1199 const char *opaqueN = 0) = 0;
1218 const char *opaque = 0) = 0;
1238 const char *opaque = 0) = 0;
1256 const char *opaque = 0) = 0;
1299 const char *configFn,
1316 const char *configFn);
int opts
Prep_xxx.
Definition: XrdSfsInterface.hh:171
virtual int getChkPSize()
Definition: XrdSfsInterface.hh:1070
virtual const char * FName()=0
@ csSize
Definition: XrdSfsInterface.hh:898
Definition: XrdSfsXio.hh:55
virtual int gpFile(gpfFunc &gpAct, XrdSfsGPFile &gpReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int stat(const char *path, mode_t &mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
@ XrdSfsFileExistIsDirectory
Definition: XrdSfsInterface.hh:135
virtual const char * nextEntry()=0
virtual XrdSfsXferSize readv(XrdOucIOVec *readV, int rdvCnt)
virtual int truncate(const char *path, XrdSfsFileOffset fsize, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=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
@ cpDelete
Delete an existing checkpoint.
Definition: XrdSfsInterface.hh:413
Definition: XrdSfsInterface.hh:816
virtual int pgRead(XrdSfsAio *aioparm, uint64_t opts=0)
@ cpRestore
Restore an active checkpoint and delete it.
Definition: XrdSfsInterface.hh:414
csFunc
Definition: XrdSfsInterface.hh:898
virtual void Disc(const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:942
@ csCalc
Definition: XrdSfsInterface.hh:898
virtual const char * getVersion()=0
char * notify
Notification path or 0.
Definition: XrdSfsInterface.hh:170
virtual XrdSfsXferSize write(XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=0
virtual int mkdir(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:129
@ csGet
Definition: XrdSfsInterface.hh:898
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:132
virtual ~XrdSfsDirectory()
Destructor.
Definition: XrdSfsInterface.hh:341
XrdSfsFile(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:749
virtual XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
virtual int remdir(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdSfsInterface.hh:362
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:126
static const uint64_t NetOrder
all: bytes in/out in net byte order
Definition: XrdSfsInterface.hh:496
uint64_t Features()
Definition: XrdSfsInterface.hh:1004
Definition: XrdOucIOVec.hh:41
static const uint64_t Verify
Options for pgRead() and pgWrite() as noted below.
Definition: XrdSfsInterface.hh:494
XrdSfsFile(XrdSfsFile &wrapF)
Definition: XrdSfsInterface.hh:761
@ XrdSfsFileExistIsFile
Definition: XrdSfsInterface.hh:134
virtual int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
XrdOucErrInfo & error
Definition: XrdSfsInterface.hh:370
virtual int fsctl(const int cmd, const char *args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
XrdSfsDirectory(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:312
uint64_t FeatureSet
Adjust features at initialization.
Definition: XrdSfsInterface.hh:1267
virtual ~XrdSfsFile()
Destructor.
Definition: XrdSfsInterface.hh:778
const char * Arg1
PLUGIO, PLUGIN.
Definition: XrdSfsInterface.hh:161
virtual int autoStat(struct stat *buf)
@ cpCreate
Create a checkpoint, one must not be active.
Definition: XrdSfsInterface.hh:412
virtual int stat(struct stat *buf)=0
Definition: XrdSfsInterface.hh:239
@ gpfGet
Perform a file retrieval.
Definition: XrdSfsInterface.hh:1108
virtual int chmod(const char *path, XrdSfsMode mode, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdSfsGPFile.hh:35
Definition: XrdOucEnv.hh:42
const char * Arg2
PLUGIN opaque string.
Definition: XrdSfsInterface.hh:164
virtual XrdSfsXferSize writev(XrdOucIOVec *writeV, int wdvCnt)
@ gpfPut
Perform a file push.
Definition: XrdSfsInterface.hh:1109
XrdSfsFileSystem()
Constructor and Destructor.
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
virtual ~XrdSfsFileSystem()
Definition: XrdSfsInterface.hh:1263
virtual int exists(const char *path, XrdSfsFileExistence &eFlag, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
int Arg2Len
Length.
Definition: XrdSfsInterface.hh:163
virtual XrdSfsDirectory * newDir(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:846
@ XrdSfsFileExistIsOffline
Definition: XrdSfsInterface.hh:136
Definition: XrdSysLogger.hh:53
virtual void setXio(XrdSfsXio *xioP)
Definition: XrdSfsInterface.hh:736
@ XrdSfsFileExistNo
Definition: XrdSfsInterface.hh:133
XrdSfsDirectory(XrdSfsDirectory &wrapD)
Definition: XrdSfsInterface.hh:324
virtual XrdSfsFile * newFile(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:875
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
virtual int rem(const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
int XrdSfsMode
Definition: XrdSfsInterface.hh:128
virtual int read(XrdSfsAio *aioparm)=0
virtual int write(XrdSfsAio *aioparm)=0
XrdSfsFileOffset pgwrEOF
Definition: XrdSfsInterface.hh:782
Definition: XrdSfsFAttr.hh:73
XrdOucTList * paths
List of paths.
Definition: XrdSfsInterface.hh:172
virtual int open(const char *path, const XrdSecEntity *client=0, const char *opaque=0)=0
cpAct
Definition: XrdSfsInterface.hh:412
virtual int sync(XrdSfsAio *aiop)=0
virtual int chksum(csFunc Func, const char *csName, const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)
< Prepare parameters
Definition: XrdSfsInterface.hh:168
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, XrdSfsXferSize size)=0
virtual int stat(const char *Name, struct stat *buf, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int checkpoint(cpAct act, struct iov *range=0, int n=0)
char * reqid
Request ID.
Definition: XrdSfsInterface.hh:169
virtual XrdSfsDirectory * newDir(char *user=0, int MonID=0)=0
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:127
int Arg1Len
Length.
Definition: XrdSfsInterface.hh:162
Definition: XrdSfsDio.hh:47
virtual int getStats(char *buff, int blen)=0
Definition: XrdSecEntity.hh:64
XrdSfsFile(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:771
Definition: XrdSfsAio.hh:59
< SFS_FSCTL_PLUGIN/PLUGIO parms
Definition: XrdSfsInterface.hh:160
Definition: XrdOucErrInfo.hh:99
virtual XrdSfsFile * newFile(char *user=0, int MonID=0)=0
virtual int truncate(XrdSfsFileOffset fsize)=0
#define stat(a, b)
Definition: XrdPosix.hh:96
virtual XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
virtual int getCXinfo(char cxtype[4], int &cxrsz)=0
virtual void EnvInfo(XrdOucEnv *envP)
Definition: XrdSfsInterface.hh:951
XrdSfsDirectory(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:334
virtual int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
XrdOucErrInfo & error
Definition: XrdSfsInterface.hh:247
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size)=0
virtual const char * FName()=0
XrdOucErrInfo * lclEI
Definition: XrdSfsInterface.hh:781
@ XrdSfsFileExistIsOther
Definition: XrdSfsInterface.hh:137
XrdOucTList * oinfo
1-to-1 correspondence of opaque info
Definition: XrdSfsInterface.hh:173
virtual int getMmap(void **Addr, off_t &Size)=0
@ gpfCancel
Cancel this request.
Definition: XrdSfsInterface.hh:1107
XrdOucErrInfo * lclEI
Definition: XrdSfsInterface.hh:344
gpfFunc
Definition: XrdSfsInterface.hh:1107
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int pgWrite(XrdSfsAio *aioparm, uint64_t opts=0)
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdOucTList.hh:42
virtual void Connect(const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:931