ROOT logo
//Example of use of the TAlien class (an implementation of TGrid)
//Author: Andreas Peters
   
void alien()
{
   TString testdir = "root-test3";
   int nfiles      = 10;

   // connect to AliEn
   TGrid *alien = TGrid::Connect("alien", gSystem->Getenv("USER"), "",
                                 "-domain=cern.ch");
   if (alien->IsZombie()) {
      delete alien;
      return;
   }

   // get info on AliEn version
   printf("Using AliEn version %s\n", alien->GetInfo());

   // print current working directory
   printf("Current directory is %s\n", alien->Pwd());

   // check if directory exists
   Long_t size, flags, modtime;
   if (alien->GetPathInfo(testdir, &size, &flags, &modtime) == 0) {
      // delete existing directory
      alien->Rmdir(testdir);
   }

   // create a directory
   alien->Mkdir(testdir);

   // change directory
   alien->Cd(testdir);

   printf("Current directory is %s\n", alien->Pwd());

   // insert nfiles into the catalog
   Int_t i;
   char lfn[32], pfn[256];
   for (i = 0; i < nfiles; i++) {
      sprintf(lfn, "test-%d.root", i);
      sprintf(pfn, "rfio:/castor/cern.ch/user/r/rdm/mytest-%d.root", i);
      alien->AddFile(lfn, pfn, 1000000000);
   }

   // list the contents of a directory
   alien->ls("", "l");

   // get physical file name from lfn
   for (i = 0; i < nfiles; i++) {
      sprintf(lfn, "test-%d.root", i);
      char *pf = alien->GetPhysicalFileName(lfn);
      if (i == nfiles-1)
         printf("last pfn retrieved is: %s\n", pf);
      delete [] pf;
   }

   delete alien;
}

 alien.C:1
 alien.C:2
 alien.C:3
 alien.C:4
 alien.C:5
 alien.C:6
 alien.C:7
 alien.C:8
 alien.C:9
 alien.C:10
 alien.C:11
 alien.C:12
 alien.C:13
 alien.C:14
 alien.C:15
 alien.C:16
 alien.C:17
 alien.C:18
 alien.C:19
 alien.C:20
 alien.C:21
 alien.C:22
 alien.C:23
 alien.C:24
 alien.C:25
 alien.C:26
 alien.C:27
 alien.C:28
 alien.C:29
 alien.C:30
 alien.C:31
 alien.C:32
 alien.C:33
 alien.C:34
 alien.C:35
 alien.C:36
 alien.C:37
 alien.C:38
 alien.C:39
 alien.C:40
 alien.C:41
 alien.C:42
 alien.C:43
 alien.C:44
 alien.C:45
 alien.C:46
 alien.C:47
 alien.C:48
 alien.C:49
 alien.C:50
 alien.C:51
 alien.C:52
 alien.C:53
 alien.C:54
 alien.C:55
 alien.C:56
 alien.C:57
 alien.C:58
 alien.C:59
 alien.C:60
 alien.C:61
 alien.C:62