CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IEventProcessor.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_IEventProcessor_h
2 #define FWCore_Framework_IEventProcessor_h
3 
4 /*
5 Abstract base class for Event Processors
6 
7 Original Authors: W. David Dagenhart, Marc Paterno
8 */
9 
11 
12 #include <string>
13 
14 namespace statemachine {
15  class Restart;
16  class Run;
17 }
18 
19 namespace edm {
21  public:
22 
23  // Status codes:
24  // 0 successful completion
25  // 1 exception of unknown type caught
26  // 2 everything else
27  // 3 signal received
28  // 4 input complete
29  // 5 call timed out
30  // 6 input count complete
33 
34  // Eventually, we might replace StatusCode with a class. This
35  // class should have an automatic conversion to 'int'.
36  typedef Status StatusCode ;
37 
38  virtual ~IEventProcessor();
39 
40  virtual StatusCode runToCompletion(bool onlineStateTransitions) = 0;
41  virtual StatusCode runEventCount(int numberOfEventsToProcess) = 0;
42 
43  virtual void readFile() = 0;
44  virtual void closeInputFile(bool cleaningUpAfterException) = 0;
45  virtual void openOutputFiles() = 0;
46  virtual void closeOutputFiles() = 0;
47 
48  virtual void respondToOpenInputFile() = 0;
49  virtual void respondToCloseInputFile() = 0;
50  virtual void respondToOpenOutputFiles() = 0;
51  virtual void respondToCloseOutputFiles() = 0;
52 
53  virtual void startingNewLoop() = 0;
54  virtual bool endOfLoop() = 0;
55  virtual void rewindInput() = 0;
56  virtual void prepareForNextLoop() = 0;
57  virtual bool shouldWeCloseOutput() const = 0;
58 
59  virtual void doErrorStuff() = 0;
60 
61  virtual void beginRun(statemachine::Run const& run) = 0;
62  virtual void endRun(statemachine::Run const& run, bool cleaningUpAfterException) = 0;
63 
64  virtual void beginLumi(ProcessHistoryID const& phid, int run, int lumi) = 0;
65  virtual void endLumi(ProcessHistoryID const& phid, int run, int lumi, bool cleaningUpAfterException) = 0;
66 
67  virtual statemachine::Run readAndCacheRun(bool merge) = 0;
68  virtual int readAndCacheLumi(bool merge) = 0;
69  virtual void writeRun(statemachine::Run const& run) = 0;
70  virtual void deleteRunFromCache(statemachine::Run const& run) = 0;
71  virtual void writeLumi(ProcessHistoryID const& phid, int run, int lumi) = 0;
72  virtual void deleteLumiFromCache(ProcessHistoryID const& phid,int run, int lumi) = 0;
73 
74  virtual void readAndProcessEvent() = 0;
75  virtual bool shouldWeStop() const = 0;
76 
77  virtual void setExceptionMessageFiles(std::string& message) = 0;
78  virtual void setExceptionMessageRuns(std::string& message) = 0;
79  virtual void setExceptionMessageLumis(std::string& message) = 0;
80 
81  virtual bool alreadyHandlingException() const = 0;
82  };
83 }
84 
85 #endif
virtual StatusCode runEventCount(int numberOfEventsToProcess)=0
virtual void respondToCloseOutputFiles()=0
virtual void endRun(statemachine::Run const &run, bool cleaningUpAfterException)=0
virtual void setExceptionMessageFiles(std::string &message)=0
virtual void writeLumi(ProcessHistoryID const &phid, int run, int lumi)=0
virtual void endLumi(ProcessHistoryID const &phid, int run, int lumi, bool cleaningUpAfterException)=0
tuple lumi
Definition: fjr2json.py:35
virtual int readAndCacheLumi(bool merge)=0
virtual bool shouldWeStop() const =0
virtual void openOutputFiles()=0
virtual void readAndProcessEvent()=0
virtual void setExceptionMessageLumis(std::string &message)=0
virtual void rewindInput()=0
virtual void startingNewLoop()=0
virtual statemachine::Run readAndCacheRun(bool merge)=0
virtual void readFile()=0
virtual void deleteRunFromCache(statemachine::Run const &run)=0
virtual bool shouldWeCloseOutput() const =0
virtual void closeOutputFiles()=0
virtual void respondToOpenOutputFiles()=0
virtual void deleteLumiFromCache(ProcessHistoryID const &phid, int run, int lumi)=0
virtual void respondToOpenInputFile()=0
virtual void respondToCloseInputFile()=0
bool merge(LuminosityBlockRange &lh, LuminosityBlockRange &rh)
virtual bool alreadyHandlingException() const =0
virtual void setExceptionMessageRuns(std::string &message)=0
virtual bool endOfLoop()=0
virtual void closeInputFile(bool cleaningUpAfterException)=0
virtual void doErrorStuff()=0
virtual void beginRun(statemachine::Run const &run)=0
virtual void writeRun(statemachine::Run const &run)=0
virtual StatusCode runToCompletion(bool onlineStateTransitions)=0
virtual void beginLumi(ProcessHistoryID const &phid, int run, int lumi)=0
virtual void prepareForNextLoop()=0