xrootd
|
00001 #ifndef __ENVOFS__H__ 00002 #define __ENVOFS__H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d E n v O f s . h h */ 00006 /* */ 00007 /******************************************************************************/ 00008 #include "XrdVersion.hh" 00009 #include "XrdSys/XrdSysError.hh" 00010 #include "XrdSys/XrdSysLogger.hh" 00011 #include "XrdSys/XrdSysPthread.hh" 00012 #include "XrdSec/XrdSecInterface.hh" 00013 #include "XrdSfs/XrdSfsAio.hh" 00014 #include "XrdSfs/XrdSfsNative.hh" 00015 #include "XrdOuc/XrdOucEnv.hh" 00016 #include "XrdOfs/XrdOfs.hh" 00017 00018 /******************************************************************************/ 00019 /* X r d E n v O f s D i r e c t o r y */ 00020 /******************************************************************************/ 00021 00022 class XrdTokenAuthzOfsDirectory : public XrdOfsDirectory 00023 { 00024 public: 00025 00026 int open(const char *dirName, 00027 const XrdSecClientName *client = 0) {return XrdOfsDirectory::open(dirName,client);} 00028 00029 const char *nextEntry(){return XrdOfsDirectory::nextEntry();} 00030 00031 int close(){return XrdOfsDirectory::close();} 00032 ; 00033 const char *FName() {return XrdOfsDirectory::FName();} 00034 XrdTokenAuthzOfsDirectory(char* user=0) : XrdOfsDirectory(user) {} 00035 private: 00036 }; 00037 00038 /******************************************************************************/ 00039 /* X r d E n v O f s F i l e */ 00040 /******************************************************************************/ 00041 00042 00043 class XrdTokenAuthzOfsFile : public XrdOfsFile 00044 { 00045 public: 00046 00047 int open(const char *fileName, 00048 XrdSfsFileOpenMode openMode, 00049 mode_t createMode, 00050 const XrdSecClientName *client = 0, 00051 const char *opaque = 0) ; 00052 int close(){return XrdOfsFile::close();} 00053 00054 const char *FName() {return XrdOfsFile::FName();} 00055 00056 int getMmap(void **Addr, off_t &Size){return XrdOfsFile::getMmap(Addr,Size);} 00057 00058 int read(XrdSfsFileOffset fileOffset, 00059 XrdSfsXferSize preread_sz) {return XrdOfsFile::read(fileOffset,preread_sz);} 00060 00061 XrdSfsXferSize read(XrdSfsFileOffset fileOffset, 00062 char *buffer, 00063 XrdSfsXferSize buffer_size) {return XrdOfsFile::read(fileOffset,buffer,buffer_size);} 00064 00065 int read(XrdSfsAio *aioparm) {return XrdOfsFile::read(aioparm);} 00066 00067 XrdSfsXferSize write(XrdSfsFileOffset fileOffset, 00068 const char *buffer, 00069 XrdSfsXferSize buffer_size){return XrdOfsFile::write(fileOffset,buffer,buffer_size);} 00070 00071 int write(XrdSfsAio *aioparm){return XrdOfsFile::write(aioparm);} 00072 00073 int sync(){return XrdOfsFile::sync();} 00074 00075 int sync(XrdSfsAio *aiop){return XrdOfsFile::sync(aiop);} 00076 00077 int stat(struct stat *buf){return XrdOfsFile::stat(buf);} 00078 00079 int truncate(XrdSfsFileOffset fileOffset){return XrdOfsFile::truncate(fileOffset);} 00080 00081 int getCXinfo(char cxtype[4], int &cxrsz) {return XrdOfsFile::getCXinfo(cxtype,cxrsz);} 00082 XrdTokenAuthzOfsFile(char* user=0) : XrdOfsFile(user) {} 00083 private: 00084 }; 00085 00086 /******************************************************************************/ 00087 /* X r d S f s N a t i v e */ 00088 /******************************************************************************/ 00089 00090 class XrdTokenAuthzOfs : public XrdOfs 00091 { 00092 friend class XrdTokenAuthzOfsDirectory; 00093 friend class XrdTokenAuthzOfsFile; 00094 public: 00095 00096 // Object Allocation Functions 00097 // 00098 XrdSfsDirectory *newDir(char *user=0) 00099 {return (XrdSfsDirectory *)new XrdTokenAuthzOfsDirectory(user);} 00100 00101 XrdSfsFile *newFile(char *user=0) 00102 {return (XrdSfsFile *)new XrdTokenAuthzOfsFile(user);} 00103 00104 // Other Functions 00105 // 00106 int chmod(const char *Name, 00107 XrdSfsMode Mode, 00108 XrdOucErrInfo &out_error, 00109 const XrdSecClientName *client = 0){return XrdOfs::chmod(Name,Mode,out_error,client);} 00110 00111 int exists(const char *fileName, 00112 XrdSfsFileExistence &exists_flag, 00113 XrdOucErrInfo &out_error, 00114 const XrdSecClientName *client = 0){return XrdOfs::exists(fileName,exists_flag,out_error,client);} 00115 00116 int fsctl(const int cmd, 00117 const char *args, 00118 XrdOucErrInfo &out_error, 00119 const XrdSecClientName *client = 0) {return XrdOfs::fsctl(cmd,args,out_error,client);} 00120 00121 int getStats(char *buff, int blen) {return XrdOfs::getStats(buff,blen);} 00122 00123 const char *getVersion(){return XrdOfs::getVersion();} 00124 00125 int mkdir(const char *dirName, 00126 XrdSfsMode Mode, 00127 XrdOucErrInfo &out_error, 00128 const XrdSecClientName *client = 0){return XrdOfs::mkdir(dirName,Mode,out_error,client);} 00129 00130 int prepare( XrdSfsPrep &pargs, 00131 XrdOucErrInfo &out_error, 00132 const XrdSecClientName *client = 0) {return XrdOfs::prepare(pargs,out_error,client);} 00133 00134 int rem(const char *path, 00135 XrdOucErrInfo &out_error, 00136 const XrdSecEntity *client, 00137 const char *info = 0); 00138 00139 00140 int remdir(const char *dirName, 00141 XrdOucErrInfo &out_error, 00142 const XrdSecClientName *client = 0){return XrdOfs::remdir(dirName,out_error,client);}; 00143 00144 int rename(const char *oldFileName, 00145 const char *newFileName, 00146 XrdOucErrInfo &out_error, 00147 const XrdSecClientName *client = 0){return XrdOfs::rename(oldFileName,newFileName,out_error,client);}; 00148 00149 int stat(const char *Name, 00150 struct stat *buf, 00151 XrdOucErrInfo &out_error, 00152 const XrdSecEntity *client, 00153 const char *opaque = 0); 00154 00155 int stat(const char *Name, 00156 mode_t &mode, 00157 XrdOucErrInfo &out_error, 00158 const XrdSecEntity *client, 00159 const char *opaque = 0); 00160 00161 }; 00162 #endif