1 #ifndef __SFS_INTERFACE_H__
2 #define __SFS_INTERFACE_H__
33 #include <sys/errno.h>
34 #include <sys/types.h>
36 #include <sys/socket.h>
44 #define SFS_O_RDONLY 0 // open read/only
45 #define SFS_O_WRONLY 1 // open write/only
46 #define SFS_O_RDWR 2 // open read/write
47 #define SFS_O_CREAT 0x100 // used for file creation
48 #define SFS_O_TRUNC 0x200 // used for file truncation
49 #define SFS_O_POSC 0x0100000 // persist on successful close
50 #define SFS_O_NOWAIT 0x01000000 // do not impose operational delays
51 #define SFS_O_RAWIO 0x02000000 // allow client-side decompression
52 #define SFS_O_RESET 0x04000000 // Reset any cached information
53 #define SFS_O_REPLICA 0x08000000 // Open for replication
58 #define SFS_O_MKPTH 0x00004000 // Make directory path if missing
63 #define SFS_O_LOCATE 0x10000000 // This request generated by locate()
64 #define SFS_O_STAT 0x20000000 // This request generated by stat()
65 #define SFS_O_META 0x40000000 // This request generated by metaop
73 #define SFS_FCTL_GETFD 1 // Return file descriptor if possible
74 #define SFS_FCTL_STATV 2 // Return visa information
78 #define SFS_FSCTL_CMD 255
80 #define SFS_FSCTL_LOCATE 1 // Locate a file
81 #define SFS_FSCTL_STATFS 2 // Return FS data
82 #define SFS_FSCTL_STATLS 3 // Return LS data
83 #define SFS_FSCTL_STATXA 4 // Return XA data
84 #define SFS_FSCTL_PLUGIN 8 // Return Implementation Dependent Data
85 #define SFS_FSCTL_PLUGIO 16 // Return Implementation Dependent Data
89 #define SFS_STALL 1 // ErrInfo code -> Seconds to stall client
90 #define SFS_OK 0 // ErrInfo code -> All is well
91 #define SFS_ERROR -1 // ErrInfo code -> Error occurred
92 #define SFS_REDIRECT -256 // ErrInfo code -> Port number to redirect to
93 #define SFS_STARTED -512 // ErrInfo code -> Estimated seconds to completion
94 #define SFS_DATA -1024 // ErrInfo code -> Length of data
118 #define Prep_SENDAOK 4
119 #define Prep_SENDERR 8
120 #define Prep_SENDACK 12
121 #define Prep_WMODE 16
122 #define Prep_STAGE 32
123 #define Prep_COLOC 64
124 #define Prep_FRESH 128
178 const char *opaque = 0)
179 {out_error.
setErrInfo(ENOTSUP,
"Not supported.");
183 virtual int chmod(
const char *Name,
187 const char *opaque = 0) = 0;
194 virtual int fsctl(
const int cmd,
199 virtual int getStats(
char *buff,
int blen) = 0;
203 virtual int exists(
const char *fileName,
207 const char *opaque = 0) = 0;
209 virtual int mkdir(
const char *dirName,
213 const char *opaque = 0) = 0;
219 virtual int rem(
const char *path,
222 const char *opaque = 0) = 0;
224 virtual int remdir(
const char *dirName,
227 const char *opaque = 0) = 0;
229 virtual int rename(
const char *oldFileName,
230 const char *newFileName,
233 const char *opaqueO = 0,
234 const char *opaqueN = 0) = 0;
236 virtual int stat(
const char *Name,
240 const char *opaque = 0) = 0;
242 virtual int stat(
const char *Name,
246 const char *opaque = 0) = 0;
248 virtual int truncate(
const char *Name,
252 const char *opaque = 0) = 0;
300 virtual int open(
const char *fileName,
304 const char *opaque = 0) = 0;
306 virtual int close() = 0;
308 virtual int fctl(
const int cmd,
312 virtual const char *
FName() = 0;
314 virtual int getMmap(
void **Addr, off_t &Size) = 0;
331 virtual int stat(
struct stat *buf) = 0;
333 virtual int sync() = 0;
339 virtual int getCXinfo(
char cxtype[4],
int &cxrsz) = 0;
342 :
error(user, MonID) {}
356 virtual int open(
const char *dirName,
358 const char *opaque = 0) = 0;
362 virtual int close() = 0;
364 virtual const char *
FName() = 0;
367 :
error(user, MonID) {}
virtual int rename(const char *oldFileName, const char *newFileName, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaqueO=0, const char *opaqueN=0)=0
virtual int chmod(const char *Name, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
int opts
Definition: XrdSfsInterface.hh:140
XrdSfsFile(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:341
XrdOucTList * oinfo
Definition: XrdSfsInterface.hh:142
#define SFS_OK
Definition: XrdSfsInterface.hh:90
virtual XrdSfsDirectory * newDir(char *user=0, int MonID=0)=0
virtual int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)=0
virtual ~XrdSfsFileSystem()
Definition: XrdSfsInterface.hh:255
const char * Arg1
Definition: XrdSfsInterface.hh:130
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:103
virtual int fsctl(const int cmd, const char *args, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)=0
virtual const char * nextEntry()=0
char * notify
Definition: XrdSfsInterface.hh:139
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:105
virtual ~XrdSfsDirectory()
Definition: XrdSfsInterface.hh:368
virtual int truncate(XrdSfsFileOffset fileOffset)=0
virtual int open(const char *dirName, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual XrdSfsFile * newFile(char *user=0, int MonID=0)=0
virtual int truncate(const char *Name, XrdSfsFileOffset fileOffset, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int remdir(const char *dirName, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual XrdSfsXferSize write(XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)=0
Definition: XrdSfsInterface.hh:351
XrdSfsDirectory(const char *user=0, int MonID=0)
Definition: XrdSfsInterface.hh:366
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:100
virtual int getStats(char *buff, int blen)=0
int Arg1Len
Definition: XrdSfsInterface.hh:131
Definition: XrdSfsInterface.hh:107
Definition: XrdSfsInterface.hh:128
XrdOucErrInfo error
Definition: XrdSfsInterface.hh:354
virtual int stat(struct stat *buf)=0
Definition: XrdOucErrInfo.hh:71
Definition: XrdSfsInterface.hh:108
csFunc
Definition: XrdSfsInterface.hh:171
#define SFS_ERROR
Definition: XrdSfsInterface.hh:91
Definition: XrdSfsInterface.hh:171
virtual int getMmap(void **Addr, off_t &Size)=0
virtual const char * FName()=0
const char * Arg2
Definition: XrdSfsInterface.hh:133
Definition: XrdOucTList.hh:37
XrdOucErrInfo error
Definition: XrdSfsInterface.hh:298
virtual int read(XrdSfsFileOffset fileOffset, XrdSfsXferSize preread_sz)=0
XrdOucTList * paths
Definition: XrdSfsInterface.hh:141
virtual const char * getVersion()=0
virtual int rem(const char *path, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdSfsInterface.hh:171
virtual int getCXinfo(char cxtype[4], int &cxrsz)=0
Definition: XrdSfsInterface.hh:158
virtual int mkdir(const char *dirName, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)
Definition: XrdSfsInterface.hh:189
char * reqid
Definition: XrdSfsInterface.hh:138
int XrdSfsMode
Definition: XrdSfsInterface.hh:102
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &out_error)=0
int setErrInfo(int code, const char *message)
Definition: XrdOucErrInfo.hh:80
virtual int chksum(csFunc Func, const char *csName, const char *Path, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
Definition: XrdSfsInterface.hh:173
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
int Arg2Len
Definition: XrdSfsInterface.hh:132
Definition: XrdSecEntity.hh:50
Definition: XrdSfsAio.hh:57
Definition: XrdSfsInterface.hh:295
virtual ~XrdSfsFile()
Definition: XrdSfsInterface.hh:343
Definition: XrdSfsInterface.hh:136
XrdSfsFileSystem()
Definition: XrdSfsInterface.hh:254
virtual const char * FName()=0
virtual int exists(const char *fileName, XrdSfsFileExistence &exists_flag, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdSfsInterface.hh:171
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:101
virtual int stat(const char *Name, struct stat *buf, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)=0
Definition: XrdSfsInterface.hh:109