TAlienSystem.h

Go to the documentation of this file.
00001 // @(#)root/base:$Id: TAlienSystem.h 30888 2009-10-27 15:24:16Z rdm $
00002 // Author: Andreas Peters  15/05/2006
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TAlienSystem
00013 #define ROOT_TAlienSystem
00014 
00015 //////////////////////////////////////////////////////////////////////////
00016 //                                                                      //
00017 // TAlienSystem                                                         //
00018 //                                                                      //
00019 // TSystem Implementation of the AliEn GRID plugin.                     //
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    //---- Misc
00041    virtual Bool_t          Init();
00042 
00043    //---- Directories
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    //---- Paths & Files
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    //---- Users & Groups
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)  // System interface to the Alien Catalogue
00084 };
00085 
00086 #endif

Generated on Tue Jul 5 14:45:28 2011 for ROOT_528-00b_version by  doxygen 1.5.1