Logo ROOT   6.07/09
Reference Guide
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 #ifndef ROOT_TSystem
28 #include "TSystem.h"
29 #endif
30 
31 class TAlienSystem : public TSystem {
32 
33 protected:
34  char fWorkingDirectory[1024];
35 
36 public:
37  TAlienSystem(const char *name = "Generic", const char *title = "Generic System");
38  virtual ~TAlienSystem();
39 
40  //---- Misc
41  virtual Bool_t Init();
42 
43  //---- Directories
44  virtual int MakeDirectory(const char *name);
45  virtual void *OpenDirectory(const char *name);
46  virtual void FreeDirectory(void *dirp);
47  virtual const char *GetDirEntry(void *dirp);
48  virtual void *GetDirPtr() const { return 0; }
49  virtual Bool_t ChangeDirectory(const char *path);
50  virtual const char *WorkingDirectory();
51  virtual const char *HomeDirectory(const char *userName = 0);
52  virtual int mkdir(const char *name, Bool_t recursive = kFALSE);
53  Bool_t cd(const char *path) { return ChangeDirectory(path); }
54  const char *pwd() { return WorkingDirectory(); }
55 
56  //---- Paths & Files
57  virtual int CopyFile(const char *from, const char *to, Bool_t overwrite = kFALSE);
58  virtual int Rename(const char *from, const char *to);
59  virtual int Link(const char *from, const char *to);
60  virtual int Symlink(const char *from, const char *to);
61  virtual int Unlink(const char *name);
62  int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime);
63  int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime);
64  virtual int GetPathInfo(const char *path, FileStat_t &buf);
65  virtual int AlienFilestat(const char *fpath, FileStat_t &buf);
66  virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree);
67  virtual int Chmod(const char *file, UInt_t mode);
68  virtual int Umask(Int_t mask);
69  virtual int Utime(const char *file, Long_t modtime, Long_t actime);
70  virtual const char *FindFile(const char *search, TString& file, EAccessMode mode = kFileExists);
71  virtual Bool_t AccessPathName(const char *path, EAccessMode mode = kFileExists);
72 
73  //---- Users & Groups
74  virtual Int_t GetUid(const char *user = 0);
75  virtual Int_t GetGid(const char *group = 0);
76  virtual Int_t GetEffectiveUid();
77  virtual Int_t GetEffectiveGid();
78  virtual UserGroup_t *GetUserInfo(Int_t uid);
79  virtual UserGroup_t *GetUserInfo(const char *user = 0);
80  virtual UserGroup_t *GetGroupInfo(Int_t gid);
81  virtual UserGroup_t *GetGroupInfo(const char *group = 0);
82 
83  ClassDef(TAlienSystem,0) // System interface to the Alien Catalogue
84 };
85 
86 #endif
char fWorkingDirectory[1024]
Definition: TAlienSystem.h:34
virtual UserGroup_t * GetGroupInfo(Int_t gid)
Returns all group info in the UserGroup_t structure.
virtual int CopyFile(const char *from, const char *to, Bool_t overwrite=kFALSE)
Copy a file.
long long Long64_t
Definition: RtypesCore.h:69
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
virtual int Utime(const char *file, Long_t modtime, Long_t actime)
Set the a files modification and access times.
Basic string class.
Definition: TString.h:137
int Int_t
Definition: RtypesCore.h:41
virtual Int_t GetEffectiveGid()
Returns the effective group id.
bool Bool_t
Definition: RtypesCore.h:59
virtual int Umask(Int_t mask)
Set the process file creation mode mask.
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
virtual int AlienFilestat(const char *fpath, FileStat_t &buf)
Get info about a file.
#define ClassDef(name, id)
Definition: Rtypes.h:254
Bool_t cd(const char *path)
Definition: TAlienSystem.h:53
Int_t bsize[]
Definition: SparseFit4.cxx:31
virtual const char * HomeDirectory(const char *userName=0)
Return the user&#39;s home directory.
virtual int Rename(const char *from, const char *to)
Rename a file.
virtual void FreeDirectory(void *dirp)
Free a directory.
virtual Bool_t Init()
Initialize the OS interface.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual Int_t GetEffectiveUid()
Returns the effective user id.
TAlienSystem(const char *name="Generic", const char *title="Generic System")
Create a new OS interface.
virtual int Symlink(const char *from, const char *to)
Create a symbolic link from file1 to file2.
virtual void * GetDirPtr() const
Definition: TAlienSystem.h:48
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
virtual Int_t GetGid(const char *group=0)
Returns the group&#39;s id. If group = 0, returns current user&#39;s group.
unsigned int UInt_t
Definition: RtypesCore.h:42
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual const char * FindFile(const char *search, TString &file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual Int_t GetUid(const char *user=0)
Returns the user&#39;s id. If user = 0, returns current user&#39;s id.
long Long_t
Definition: RtypesCore.h:50
virtual int Link(const char *from, const char *to)
Create a link from file1 to file2.
virtual int Chmod(const char *file, UInt_t mode)
Set the file permission bits. Returns -1 in case or error, 0 otherwise.
EAccessMode
Definition: TSystem.h:54
virtual ~TAlienSystem()
Delete the OS interface.
Definition: file.py:1
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual int MakeDirectory(const char *name)
Make a directory.
const char * pwd()
Definition: TAlienSystem.h:54
Abstract base class defining a generic interface to the underlying Operating System.
Definition: TSystem.h:258
virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree)
Get info about a file system: fs type, block size, number of blocks, number of free blocks...
char name[80]
Definition: TGX11.cxx:109
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual const char * WorkingDirectory()
Return working directory.