00001 #ifndef __ENVOFS__H__
00002 #define __ENVOFS__H__
00003
00004
00005
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
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
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
00088
00089
00090 class XrdTokenAuthzOfs : public XrdOfs
00091 {
00092 friend class XrdTokenAuthzOfsDirectory;
00093 friend class XrdTokenAuthzOfsFile;
00094 public:
00095
00096
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
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