00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TAlienSystem
00013 #define ROOT_TAlienSystem
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __CINT__
00024 #include <stdio.h>
00025 #endif
00026
00027 #ifndef ROOT_TSystem
00028 #include "TSystem.h"
00029 #endif
00030
00031 class TAlienSystem : public TSystem {
00032
00033 protected:
00034 char fWorkingDirectory[1024];
00035
00036 public:
00037 TAlienSystem(const char *name = "Generic", const char *title = "Generic System");
00038 virtual ~TAlienSystem();
00039
00040
00041 virtual Bool_t Init();
00042
00043
00044 virtual int MakeDirectory(const char *name);
00045 virtual void *OpenDirectory(const char *name);
00046 virtual void FreeDirectory(void *dirp);
00047 virtual const char *GetDirEntry(void *dirp);
00048 virtual void *GetDirPtr() const { return 0; }
00049 virtual Bool_t ChangeDirectory(const char *path);
00050 virtual const char *WorkingDirectory();
00051 virtual const char *HomeDirectory(const char *userName = 0);
00052 virtual int mkdir(const char *name, Bool_t recursive = kFALSE);
00053 Bool_t cd(const char *path) { return ChangeDirectory(path); }
00054 const char *pwd() { return WorkingDirectory(); }
00055
00056
00057 virtual int CopyFile(const char *from, const char *to, Bool_t overwrite = kFALSE);
00058 virtual int Rename(const char *from, const char *to);
00059 virtual int Link(const char *from, const char *to);
00060 virtual int Symlink(const char *from, const char *to);
00061 virtual int Unlink(const char *name);
00062 int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
00063 int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
00064 virtual int GetPathInfo(const char *path, FileStat_t &buf);
00065 virtual int AlienFilestat(const char *fpath, FileStat_t &buf);
00066 virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree);
00067 virtual int Chmod(const char *file, UInt_t mode);
00068 virtual int Umask(Int_t mask);
00069 virtual int Utime(const char *file, Long_t modtime, Long_t actime);
00070 virtual const char *FindFile(const char *search, TString& file, EAccessMode mode = kFileExists);
00071 virtual Bool_t AccessPathName(const char *path, EAccessMode mode = kFileExists);
00072
00073
00074 virtual Int_t GetUid(const char *user = 0);
00075 virtual Int_t GetGid(const char *group = 0);
00076 virtual Int_t GetEffectiveUid();
00077 virtual Int_t GetEffectiveGid();
00078 virtual UserGroup_t *GetUserInfo(Int_t uid);
00079 virtual UserGroup_t *GetUserInfo(const char *user = 0);
00080 virtual UserGroup_t *GetGroupInfo(Int_t gid);
00081 virtual UserGroup_t *GetGroupInfo(const char *group = 0);
00082
00083 ClassDef(TAlienSystem,0)
00084 };
00085
00086 #endif