![]() |
![]() |
00001 #ifndef VIS_FRAMEWORK_BASE_VIS_QUEUE_PROCESSOR_H 00002 # define VIS_FRAMEWORK_BASE_VIS_QUEUE_PROCESSOR_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "Iguana/Framework/interface/IgStateElement.h" 00007 # include "Iguana/Framework/interface/IgDispatcher.h" 00008 # include "FWCore/Framework/interface/Event.h" 00009 # include "FWCore/Framework/interface/EventSetup.h" 00010 00011 //<<<<<< PUBLIC DEFINES >>>>>> 00012 //<<<<<< PUBLIC CONSTANTS >>>>>> 00013 //<<<<<< PUBLIC TYPES >>>>>> 00014 00015 namespace edm { class Event; class EventSetup; } 00016 00017 //<<<<<< PUBLIC VARIABLES >>>>>> 00018 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00019 //<<<<<< CLASS DECLARATIONS >>>>>> 00020 00022 struct VisEventMessage 00023 { 00024 const edm::Event *event; 00025 const edm::EventSetup *eventSetup; 00026 }; 00027 00049 class VisQueueProcessor : public IgStateElement 00050 { 00051 IG_DECLARE_STATE_ELEMENT (VisQueueProcessor); 00052 public: 00053 typedef IgDispatcher<VisEventMessage&> VisEventDispatcher; 00054 00055 VisQueueProcessor (IgState *state); 00056 ~VisQueueProcessor (void); 00057 // implicit copy constructor 00058 // implicit assignment operator 00059 00060 // FIXME: Temporary hack code, clean this up later 00061 // This is just for conceptual model for now. 00062 VisEventDispatcher eventDispatcher (void); 00063 00064 virtual void process (void); 00065 00066 virtual void scheduleAbort (void); 00067 virtual void scheduleNextEvent (void); 00068 00069 private: 00070 void doAbort (void); 00071 void doNextEvent (void); 00072 00073 IgState *m_state; 00074 bool m_done; 00075 VisEventDispatcher *m_dispatcher; 00076 }; 00077 00078 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00079 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00080 00081 #endif // VIS_FRAMEWORK_BASE_VIS_QUEUE_PROCESSOR_H