]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/macros/testTPC/AliTPCjobs.cxx
Updated version of the Test TPC toolkits (Marian)
[u/mrichter/AliRoot.git] / TPC / macros / testTPC / AliTPCjobs.cxx
index 34493d82d2a4599b464552abf26c6db8deeab8fd..08a23ce525f3fe2bd46a733ccb52b22aaa57b407 100644 (file)
@@ -1,12 +1,30 @@
-#include <fstream>
-#include <TFile.h>
-#include <TSystem.h>
+//#include <fstream>
+//#include <TFile.h>
+//#include <TSystem.h>
+
 
 /*
+
+  Process all jobs specified in the job.list file
+  Concurent agents acces the list
+  Once starting to procces given job the jonb is locked 
+
+*/
+
+
+
+/*
+
+
 .L $ALICE_ROOT/TPC/macros/testTPC/AliTPCjobs.cxx+
+
 AliTPCJobs jobs;
 jobs.fJobFile="job.list"
+jobs.ProcessAllJobs();
 */
+
+
 class AliTPCJobs : public TNamed{
 public:
   AliTPCJobs();
@@ -20,8 +38,10 @@ public:
 
   TString  fJobFile;    
   TString  fWorkDir;
+  ClassDef(AliTPCJobs,0)
 };
 
+ ClassImp(AliTPCJobs)
 
 AliTPCJobs::AliTPCJobs(){
   // 
@@ -38,7 +58,7 @@ void AliTPCJobs::ProcessAllJobs(){
   Int_t counter=0;
   while (GetNextJob()){
     //
-    printf("PROCESSING JOB\n",counter);
+    printf("PROCESSING JOB\t%d\n",counter);
     counter++;
     if (!GetNextJob()) break;   
   }
@@ -46,18 +66,21 @@ void AliTPCJobs::ProcessAllJobs(){
 
 
 Bool_t AliTPCJobs::GetNextJob(){
-  ifstream in;
-  in.open(fJobFile);
+  //
+  // GetNextJob  - get job from the list which is not locked
+  //
+  ifstream ins;
+  ins.open(fJobFile);
   TString id;
   TString inputData;
   TString outputDir;
   TString action;
   Bool_t hasJob=kFALSE;
-  while(in.good()) {
-    in>>id;
-    in>>inputData;
-    in>>outputDir;
-    in>>action;
+  while(ins.good()) {
+    ins>>id;
+    ins>>inputData;
+    ins>>outputDir;
+    ins>>action;
     if (!IsLocked(id)){
       hasJob=kTRUE;
       break;
@@ -100,10 +123,29 @@ void AliTPCJobs::ProcessJob(TString jobID, TString inputData, TString outputDir,
   SetLock(jobID);
   if (action.Contains("COPY")){
     char command[10000];
-      sprintf(command,"xrdcp -d 1 -DIFirstConnectMaxCnt 2 -DIConnectTimeout 2 -DIRequestTimeout 2 -DIMaxRedirectcount 2 -DIRedirCntTimeout 2 %s\t%s\n",inputData.Data(), outputDir.Data());
+      sprintf(command,"xrdcp  -DIFirstConnectMaxCnt 4 -DIConnectTimeout 4 -DIRequestTimeout 4 -DIMaxRedirectcount 4 -DIRedirCntTimeout 4 %s\t%s\n",inputData.Data(), outputDir.Data());
     printf("Exec\t%s\n", command);
     gSystem->Exec(command);
     //TFile::Cp(inputData.Data(), outputDir.Data());
+  }else{
+    char command[10000];
+    sprintf(command,"$ALICE_ROOT/TPC/macros/testTPC/action.sh %s %s %s %s", jobID.Data(), inputData.Data(), outputDir.Data(), action.Data());
+    printf("%s\n\n",command);
+    gSystem->Exec(command);
+    printf("\n\n");
+
   }
+  
   SetDone(jobID);
 }
+
+
+
+void AliTPCjobs(){
+  //
+  //
+  //
+  AliTPCJobs jobs;
+  jobs.fJobFile="job.list";
+  jobs.ProcessAllJobs();
+}