Go to the documentation of this file.00001 #ifndef FWCore_Framework_ProcessingController_h
00002 #define FWCore_Framework_ProcessingController_h
00003
00004
00005
00006
00007
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "DataFormats/Provenance/interface/EventID.h"
00026
00027
00028 namespace edm {
00029
00030 class ProcessingController {
00031
00032 public:
00033 enum ForwardState {
00034 kEventsAheadInFile,
00035 kNextFileExists,
00036 kAtLastEvent,
00037 kUnknownForward
00038 };
00039
00040 enum ReverseState {
00041 kEventsBackwardsInFile,
00042 kPreviousFileExists,
00043 kAtFirstEvent,
00044 kUnknownReverse
00045 };
00046
00047 ProcessingController(ForwardState forwardState, ReverseState reverseState, bool iCanRandomAccess);
00048
00049
00050
00051
00053 ForwardState forwardState() const;
00054 ReverseState reverseState() const;
00055
00057 bool canRandomAccess() const;
00058
00059 enum Transition {
00060 kToNextEvent,
00061 kToPreviousEvent,
00062 kToSpecifiedEvent
00063 };
00064
00065 Transition requestedTransition() const;
00066
00069 edm::EventID specifiedEventTransition() const;
00070
00071 bool lastOperationSucceeded() const;
00072
00073
00074
00075
00076
00080 void setTransitionToNextEvent();
00081
00085 void setTransitionToPreviousEvent();
00086
00090 void setTransitionToEvent( edm::EventID const& iID);
00091
00092 void setLastOperationSucceeded(bool value);
00093
00094 private:
00095 ProcessingController(const ProcessingController&);
00096
00097 const ProcessingController& operator=(const ProcessingController&);
00098
00099
00100 ForwardState forwardState_;
00101 ReverseState reverseState_;
00102 Transition transition_;
00103 EventID specifiedEvent_;
00104 bool canRandomAccess_;
00105 bool lastOperationSucceeded_;
00106 };
00107 }
00108 #endif