Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TAlienSystem.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Andreas Peters 15/05/2006
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TAlienSystem
13 #define ROOT_TAlienSystem
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TAlienSystem //
18 // //
19 // TSystem Implementation of the AliEn GRID plugin. //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 #ifndef __CINT__
24 #include <stdio.h>
25 #endif
26 
27 #include "TSystem.h"
28 
29 class TAlienSystem : public TSystem {
30 
31 protected:
32  char fWorkingDirectory[1024];
33 
34 public:
35  TAlienSystem(const char *name = "Generic", const char *title = "Generic System");
36  virtual ~TAlienSystem();
37 
38  //---- Misc
39  virtual Bool_t Init();
40 
41  //---- Directories
42  virtual int MakeDirectory(const char *name);
43  virtual void *OpenDirectory(const char *name);
44  virtual void FreeDirectory(void *dirp);
45  virtual const char *GetDirEntry(void *dirp);
46  virtual void *GetDirPtr() const { return 0; }
47  virtual Bool_t ChangeDirectory(const char *path);
48  virtual const char *WorkingDirectory();
49  virtual const char *HomeDirectory(const char *userName = 0);
50  virtual int mkdir(const char *name, Bool_t recursive = kFALSE);
51  Bool_t cd(const char *path) { return ChangeDirectory(path); }
52  const char *pwd() { return WorkingDirectory(); }
53 
54  //---- Paths & Files
55  virtual int CopyFile(const char *from, const char *to, Bool_t overwrite = kFALSE);
56  virtual int Rename(const char *from, const char *to);
57  virtual int Link(const char *from, const char *to);
58  virtual int Symlink(const char *from, const char *to);
59  virtual int Unlink(const char *name);
60  int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
61  int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
62  virtual int GetPathInfo(const char *path, FileStat_t &buf);
63  virtual int AlienFilestat(const char *fpath, FileStat_t &buf);
64  virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree);
65  virtual int Chmod(const char *file, UInt_t mode);
66  virtual int Umask(Int_t mask);
67  virtual int Utime(const char *file, Long_t modtime, Long_t actime);
68  virtual const char *FindFile(const char *search, TString& file, EAccessMode mode = kFileExists);
69  virtual Bool_t AccessPathName(const char *path, EAccessMode mode = kFileExists);
70 
71  //---- Users & Groups
72  virtual Int_t GetUid(const char *user = 0);
73  virtual Int_t GetGid(const char *group = 0);
74  virtual Int_t GetEffectiveUid();
75  virtual Int_t GetEffectiveGid();
76  virtual UserGroup_t *GetUserInfo(Int_t uid);
77  virtual UserGroup_t *GetUserInfo(const char *user = 0);
78  virtual UserGroup_t *GetGroupInfo(Int_t gid);
79  virtual UserGroup_t *GetGroupInfo(const char *group = 0);
80 
81  ClassDef(TAlienSystem,0) // System interface to the Alien Catalogue
82 };
83 
84 #endif