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;
281 virtual int close() = 0;
289 virtual const char *
FName() = 0;
399 virtual int open(
const char *fileName,
403 const char *opaque = 0) = 0;
444 virtual int close() = 0;
465 virtual int fctl(
const int cmd,
484 virtual int fctl(
const int cmd,
495 virtual const char *
FName() = 0;
506 virtual int getMmap(
void **Addr, off_t &Size) = 0;
512 static const uint64_t
514 static const uint64_t
716 virtual int stat(
struct stat *buf) = 0;
724 virtual int sync() = 0;
755 virtual int getCXinfo(
char cxtype[4],
int &cxrsz) = 0;
842 class XrdSfsFileSystem
887 virtual XrdSfsFile *newFile(
char *user=0,
int MonID=0) = 0;
925 enum csFunc {csCalc = 0, csGet, csSize};
927 virtual int chksum( csFunc Func,
932 const char *opaque = 0);
946 virtual int chmod(
const char *path,
950 const char *opaque = 0) = 0;
969 virtual void Disc(
const XrdSecEntity *client = 0) {(void)client;}
978 virtual void EnvInfo(
XrdOucEnv *envP) {(void)envP;}
998 virtual int exists(
const char *path,
1002 const char *opaque = 0) = 0;
1031 uint64_t Features() {
return FeatureSet;}
1051 virtual int FSctl(
const int cmd,
1086 virtual int fsctl(
const int cmd,
1097 virtual int getChkPSize() {
return 0;}
1111 virtual int getStats(
char *buff,
int blen) = 0;
1119 virtual const char *getVersion() = 0;
1134 enum gpfFunc {gpfCancel=0,
1139 virtual int gpFile( gpfFunc &gpAct,
1156 virtual int mkdir(
const char *path,
1160 const char *opaque = 0) = 0;
1187 virtual int rem(
const char *path,
1190 const char *opaque = 0) = 0;
1203 virtual int remdir(
const char *path,
1206 const char *opaque = 0) = 0;
1221 virtual int rename(
const char *oPath,
1225 const char *opaqueO = 0,
1226 const char *opaqueN = 0) = 0;
1241 virtual int stat(
const char *Name,
1245 const char *opaque = 0) = 0;
1261 virtual int stat(
const char *path,
1265 const char *opaque = 0) = 0;
1279 virtual int truncate(
const char *path,
1283 const char *opaque = 0) = 0;
1290 virtual ~XrdSfsFileSystem() {}
1294 uint64_t FeatureSet;
1324 typedef XrdSfsFileSystem *(*XrdSfsFileSystem2_t)(XrdSfsFileSystem *nativeFS,
1326 const char *configFn,
1341 typedef XrdSfsFileSystem *(*XrdSfsFileSystem_t) (XrdSfsFileSystem *nativeFS,
1343 const char *configFn);
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
#define rename(a, b)
Definition: XrdPosix.hh:87
Truncate a file within checkpoint.
Definition: XrdSfsInterface.hh:432
int opts
Prep_xxx.
Definition: XrdSfsInterface.hh:171
#define truncate(a, b)
Definition: XrdPosix.hh:106
XrdSfsFile(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:776
XrdOucTList * oinfo
1-to-1 correspondence of opaque info
Definition: XrdSfsInterface.hh:173
virtual XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
Restore an active checkpoint and delete it.
Definition: XrdSfsInterface.hh:430
virtual int checkpoint(cpAct act, struct iov *range=0, int n=0)
XrdSfsFileOffset pgwrEOF
Definition: XrdSfsInterface.hh:809
virtual XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
virtual int autoStat(struct stat *buf)
static const uint64_t Verify
Options for pgRead() and pgWrite() as noted below.
Definition: XrdSfsInterface.hh:513
Return checkpoint limits.
Definition: XrdSfsInterface.hh:431
Create a checkpoint, one must not be active.
Definition: XrdSfsInterface.hh:428
const char * Arg1
PLUGIO, PLUGIN.
Definition: XrdSfsInterface.hh:161
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:129
XrdOucErrInfo & error
Definition: XrdSfsInterface.hh:373
virtual const char * nextEntry()=0
char * notify
Notification path or 0.
Definition: XrdSfsInterface.hh:170
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:131
virtual ~XrdSfsDirectory()
Destructor.
Definition: XrdSfsInterface.hh:344
virtual XrdSfsXferSize writev(XrdOucIOVec *writeV, int wdvCnt)
virtual int truncate(XrdSfsFileOffset fsize)=0
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, XrdSfsXferSize size)=0
virtual XrdSfsXferSize write(XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=0
Definition: XrdSfsFAttr.hh:72
Definition: XrdSfsInterface.hh:238
XrdSfsDirectory(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:315
Definition: XrdOucIOVec.hh:65
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:126
int Arg1Len
Length.
Definition: XrdSfsInterface.hh:162
XrdSfsDirectory(XrdSfsDirectory &wrapD)
Definition: XrdSfsInterface.hh:327
Definition: XrdSfsInterface.hh:133
< SFS_FSCTL_PLUGIN/PLUGIO parms
Definition: XrdSfsInterface.hh:159
Add data to an existing checkpoint.
Definition: XrdSfsInterface.hh:433
virtual void setXio(XrdSfsXio *xioP)
Definition: XrdSfsInterface.hh:763
virtual int stat(struct stat *buf)=0
Definition: XrdOucErrInfo.hh:100
Definition: XrdSfsInterface.hh:134
Definition: XrdSfsGPFile.hh:34
Definition: XrdSfsInterface.hh:136
Definition: XrdOucEnv.hh:41
Definition: XrdOucIOVec.hh:40
virtual int getMmap(void **Addr, off_t &Size)=0
virtual const char * FName()=0
XrdSfsFile(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:798
const char * Arg2
PLUGIN opaque string.
Definition: XrdSfsInterface.hh:164
XrdSfsFile(XrdSfsFile &wrapF)
Definition: XrdSfsInterface.hh:788
Definition: XrdOucTList.hh:41
XrdOucErrInfo * lclEI
Definition: XrdSfsInterface.hh:808
XrdOucTList * paths
List of paths.
Definition: XrdSfsInterface.hh:172
cpAct
Definition: XrdSfsInterface.hh:428
Definition: XrdSysLogger.hh:52
virtual int getCXinfo(char cxtype[4], int &cxrsz)=0
virtual int open(const char *path, const XrdSecEntity *client=0, const char *opaque=0)=0
#define stat(a, b)
Definition: XrdPosix.hh:96
char * reqid
Request ID.
Definition: XrdSfsInterface.hh:169
XrdOucErrInfo * lclEI
Definition: XrdSfsInterface.hh:347
int XrdSfsMode
Definition: XrdSfsInterface.hh:128
static const uint64_t NetOrder
pgR: output csvec in net byte order
Definition: XrdSfsInterface.hh:515
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
int Arg2Len
Length.
Definition: XrdSfsInterface.hh:163
Definition: XrdSfsDio.hh:46
Definition: XrdSecEntity.hh:63
Definition: XrdSfsInterface.hh:137
Definition: XrdSfsAio.hh:58
Definition: XrdSfsInterface.hh:364
virtual ~XrdSfsFile()
Destructor.
Definition: XrdSfsInterface.hh:805
< Prepare parameters
Definition: XrdSfsInterface.hh:167
XrdOucErrInfo & error
Definition: XrdSfsInterface.hh:247
XrdSfsDirectory(XrdOucErrInfo &eInfo)
Definition: XrdSfsInterface.hh:337
#define mkdir(a, b)
Definition: XrdPosix.hh:69
virtual const char * FName()=0
virtual XrdSfsXferSize readv(XrdOucIOVec *readV, int rdvCnt)
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:127
Delete an existing checkpoint.
Definition: XrdSfsInterface.hh:429
Definition: XrdSfsXio.hh:54
Definition: XrdSfsInterface.hh:135