00001 00002 // $Id: Sequence.h,v 1.1 2007/02/09 04:44:14 fmwk Exp $ 00003 // 00004 // 00005 // messier@indiana.edu 00007 #ifndef JOBC_SEQUENCE_H 00008 #define JOBC_SEQUENCE_H 00009 #include <list> 00010 #include <string> 00011 #ifndef JOBC_NODE_H 00012 #include "JobControl/Node.h" 00013 #endif 00014 00015 namespace jobc { 00018 // 00022 class Sequence : public Node { 00023 public: 00024 Sequence(); 00025 Sequence(const char* name); 00026 Sequence(const Sequence& s); 00027 ~Sequence(); 00028 00029 Node* GetNode(const char* name); 00030 bool Exec(edm::EventHandle& evt); 00031 void NewFile(const char* filename); 00032 void EndFile(const char* filename); 00033 void NewRun(int run, int subrun); 00034 void EndRun(int run, int subrun); 00035 void NewSubrun(int run, int subrun); 00036 void EndSubrun(int run, int subrun); 00037 void Print(const char* indent=0); 00038 void ResourceReport(bool printheader=false) const; 00039 00040 Node* PushFront(const Node& n); 00041 Node* PushBack (const Node& n); 00042 00043 Sequence* PushFront(const Sequence& s); 00044 Sequence* PushBack (const Sequence& s); 00045 00046 Sequence& operator=(const Sequence& rhs); 00047 00048 static void PrintCurrentNode(); 00049 00050 private: 00051 void Clear(); 00052 00053 private: 00054 typedef std::list<Node*> NodeList; 00055 00056 NodeList fNodeList; 00057 static std::string fsCurrentNode; 00058 static int fsCurrentEvent; 00059 }; 00060 } 00061 00062 #endif // JOBCSEQUENCE_H 00063
1.3.5