Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Stack.cxx

Go to the documentation of this file.
00001 
00002 // $Id: Stack.cxx,v 1.1 2007/02/09 04:44:14 fmwk Exp $
00003 //
00004 // messier@indiana.edu
00006 #include "JobControl/Stack.h"
00007 #include <iostream>
00008 #include "JobControl/Job.h"
00009 using namespace jobc;
00010 
00011 Stack* Stack::fInstance = 0;
00012 
00013 Stack& Stack::Instance() 
00014 {
00015   if (fInstance==0) fInstance = new Stack();
00016   return *fInstance;
00017 }
00018 
00019 //......................................................................
00020 
00021 void Stack::PrintAll() 
00022 {
00023   std::list<Job*>::iterator itr(fJobStack.begin());
00024   std::list<Job*>::iterator itrEnd(fJobStack.end());
00025   for (; itr!=itrEnd; ++itr) {
00026     (*itr)->Print();
00027   }
00028 }
00029 
00030 //......................................................................
00031 
00032 void Stack::CleanUp()
00033 {
00034   std::list<Job*>::iterator itr(fJobStack.begin());
00035   std::list<Job*>::iterator itrEnd(fJobStack.end());
00036   for (; itr!=itrEnd; ++itr) {
00037     if (*itr) delete *itr;
00038   }
00039 }
00040 
00041 //......................................................................
00042 
00043 void Stack::Exec(edm::EventHandle& e) 
00044 {
00045   std::list<Job*>::iterator itr(fJobStack.begin());
00046   std::list<Job*>::iterator itrEnd(fJobStack.end());
00047   for (; itr!=itrEnd; ++itr) {
00048     if (*itr) {
00049       (*itr)->CheckStatus(std::string(""),&e);
00050       (*itr)->Exec(e);
00051     }
00052   }
00053 }
00054 
00055 //......................................................................
00056 
00057 void Stack::AdoptJob(Job* j) { fJobStack.push_back(j); }
00058 
00059 //......................................................................
00060 
00061 void Stack::Run() 
00062 {
00063   std::list<Job*>::iterator itr(fJobStack.begin());
00064   std::list<Job*>::iterator itrEnd(fJobStack.end());
00065   for (; itr!=itrEnd; ++itr) {
00066     (*itr)->Run(-1); // -1 is flag for "all events"
00067   }
00068 }
00069 
00070 //......................................................................
00071 
00072 void Stack::RunOne() 
00073 {
00074   std::list<Job*>::iterator itr(fJobStack.begin());
00075   std::list<Job*>::iterator itrEnd(fJobStack.end());
00076   for (; itr!=itrEnd; ++itr) (*itr)->Run(0);
00077 }
00078 

Generated on Wed Oct 15 02:35:27 2008 for NOvA Offline by  doxygen 1.3.9.1