00001 00002 00003 00004 00005 00006 #ifndef __EventMultiSplitter__ 00007 #define __EventMultiSplitter__ 00008 00009 00010 #include "cafe/Controller.hpp" 00011 00012 namespace cafe { 00013 class Stat; 00014 class PermuterBase; 00015 00016 class EventMultiSplitter : public cafe::Controller { 00017 public: 00018 00019 EventMultiSplitter (const char *name); 00020 ~EventMultiSplitter (void); 00021 00022 bool processEvent (cafe::Event &event); 00023 00024 void finish (void); 00025 00027 class callback { 00028 friend class EventMultiSplitter; 00029 public: 00030 void operator() (double weight); 00031 inline Event &event() {return _event;}; 00032 private: 00033 cafe::Event &_event; 00034 callback (cafe::EventMultiSplitter &splitter, Event &event); 00035 cafe::EventMultiSplitter &_splitter; 00036 }; 00037 00038 private: 00039 ClassDef (EventMultiSplitter,1); 00040 00041 cafe::PermuterBase *_perm; 00042 cafe::Stat *_local_stat; 00043 00044 void processPermutation (double weight, Event &event); 00045 }; 00046 } 00047 00048 #endif
1.3.4