26 #include "gapi_dir_operations.h" 27 #include "gapi_file_operations.h" 28 #include "gapi_stat.h" 66 Error(
"TAlienSystem",
"You are not connected to AliEn");
73 Info(
"OpenDirectory",
"Assuming an AliEn URL alien://%s",dirname);
76 return gapi_mkdir(url.
GetUrl(),0);
87 Info(
"OpenDirectory",
"Assuming an AliEn URL alien://%s",name);
90 return (
void*) gapi_opendir(url.
GetUrl());
98 gapi_closedir( (GAPI_DIR*)ptr);
107 struct dirent* retdir;
108 retdir = gapi_readdir( (GAPI_DIR*) ptr);
111 return retdir->d_name;
125 Info(
"OpenDirectory",
"Assuming an AliEn URL alien://%s",dirname);
128 return gapi_chdir(url.
GetUrl());
149 Error(
"TAlienSystem",
"You are not connected to AliEn");
165 if (dirname.
Length()==0) {
198 return gapi_rename(oldname,newname);
226 return gapi_unlink(filename);
247 int res =
GetPathInfo(path,
id, &lsize, flags, modtime);
249 if (res == 0 && size) {
251 Error(
"GetPathInfo",
"file %s > 2 GB, use GetPathInfo() with Long64_t size", path);
323 Info(
"AlienFilestat",
"Assuming an AliEn URL alien://%s",fpath);
326 #if defined(R__SEEK64) 328 if ((gapi_lstat(url.
GetUrl(), (GAPI_STAT*)(&sbuf))) == 0) {
331 if ((gapi_lstat(url.
GetUrl(), (GAPI_STAT*)(&sbuf))) == 0) {
333 buf.
fIsLink = S_ISLNK(sbuf.st_mode);
334 buf.
fDev = sbuf.st_dev;
335 buf.
fIno = sbuf.st_ino;
336 buf.
fMode = sbuf.st_mode;
337 buf.
fUid = sbuf.st_uid;
338 buf.
fGid = sbuf.st_gid;
339 buf.
fSize = sbuf.st_size;
340 buf.
fMtime = sbuf.st_mtime;
365 Info(
"AlienFilestat",
"Assuming an AliEn URL alien://%s",file);
368 return gapi_chmod(url.
GetUrl(),mode);
412 Error(
"TAlienSystem",
"You are not connected to AliEn");
423 Info(
"AccessPathName",
"Assuming an AliEn URL alien://%s",path);
426 if(!gapi_access(url.
GetUrl(),mode)) {
char fWorkingDirectory[1024]
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.
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
void SetProtocol(const char *proto, Bool_t setDefaultPort=kFALSE)
Set protocol and, optionally, change the port accordingly.
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.
This class represents a WWW compatible URL.
const char * GetProtocol() const
virtual int Utime(const char *file, Long_t modtime, Long_t actime)
Set the a files modification and access times.
virtual Int_t GetEffectiveGid()
Returns the effective group id.
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
virtual int Umask(Int_t mask)
Set the process file creation mode mask.
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
Bool_t R_ISREG(Int_t mode)
const char * GetUrl(Bool_t withDeflt=kFALSE) const
Return full URL.
virtual int AlienFilestat(const char *fpath, FileStat_t &buf)
Get info about a file.
virtual const char * HomeDirectory(const char *userName=0)
Return the user's home directory.
virtual int Rename(const char *from, const char *to)
Rename a file.
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
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 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's id. If group = 0, returns current user's group.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
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's id. If user = 0, returns current user's id.
virtual const char * GetHomeDirectory()
TString & Remove(Ssiz_t pos)
virtual int Link(const char *from, const char *to)
Create a link from file1 to file2.
const char * GetGrid() const
virtual int Chmod(const char *file, UInt_t mode)
Set the file permission bits. Returns -1 in case or error, 0 otherwise.
virtual ~TAlienSystem()
Delete the OS interface.
Bool_t R_ISDIR(Int_t mode)
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.
Abstract base class defining a generic interface to the underlying Operating System.
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...
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract...
void CleanRelativePath()
Recompute the path removing all relative directory jumps via '..'.
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
virtual const char * WorkingDirectory()
Return working directory.