25 ClassImp(TAlienMasterJobStatus);
30 TAlienMasterJobStatus::~TAlienMasterJobStatus()
41 void TAlienMasterJobStatus::Browse(TBrowser* b)
51 TIterator* iter = fJobs.MakeIterator();
54 while ((obj = iter->Next()) != 0) {
55 TObjString* keyStr =
dynamic_cast<TObjString*
>(obj);
56 TObject* value = fJobs.GetValue(obj);
59 b->Add(value, keyStr->GetString().Data());
69 TGridJobStatus::EGridJobStatus TAlienMasterJobStatus::GetStatus()
const
74 return fMasterJob->GetStatus();
81 Float_t TAlienMasterJobStatus::PercentFinished()
83 if (fJobs.GetSize() == 0)
86 TIterator* iter = fJobs.MakeIterator();
91 while ((obj = iter->Next()) != 0) {
92 TObject* value = fJobs.GetValue(obj);
93 TAlienJobStatus* jobStatus =
dynamic_cast<TAlienJobStatus*
>(value);
96 if (jobStatus->GetStatus() == kDONE)
103 return (Float_t) done / fJobs.GetSize();
109 void TAlienMasterJobStatus::Print(Option_t *)
const
112 printf(
"Printing information for the master job: ");
113 fMasterJob->PrintJob(kFALSE);
116 TIterator* iter = fJobs.MakeIterator();
119 while ((obj = iter->Next()) != 0) {
120 TObjString* keyStr =
dynamic_cast<TObjString*
>(obj);
122 TObject* value = fJobs.GetValue(obj);
123 TAlienJobStatus* jobStatus =
dynamic_cast<TAlienJobStatus*
>(value);
125 if (keyStr && jobStatus) {
126 printf(
"Printing info for subjob %s: ", keyStr->GetString().Data());
127 jobStatus->PrintJob(kFALSE);