1 #ifndef Notification_SimActivityRegistryEnroller_h 2 #define Notification_SimActivityRegistryEnroller_h 22 #include "boost/mpl/pop_back.hpp" 23 #include "boost/mpl/begin_end.hpp" 24 #include "boost/mpl/copy_if.hpp" 25 #include "boost/mpl/deref.hpp" 26 #include "boost/mpl/prior.hpp" 27 #include "boost/mpl/vector.hpp" 28 #include "boost/mpl/eval_if.hpp" 29 #include "boost/mpl/empty.hpp" 52 template<
class T,
class TVector>
62 typedef typename boost::mpl::eval_if<boost::mpl::empty<TVector>,
63 boost::mpl::identity<LastEnrollerHelper<T> >,
66 NextEnroller::enroll(iReg,iT);
78 typedef boost::mpl::vector<BeginOfJob,DDDWorld,BeginOfRun,BeginOfEvent,BeginOfTrack,BeginOfStep,G4Step,EndOfTrack,EndOfEvent,EndOfRun>
Signals;
void connect(Observer< const BeginOfJob * > *iObject)
boost::mpl::pop_back< TVector >::type RemainingVector
static void enroll(SimActivityRegistry &iReg, T *iObj)
static void enroll(SimActivityRegistry &iReg, T *iT)
SimActivityRegistryEnroller()
static void enroll(SimActivityRegistry &, T *)
static void enroll(SimActivityRegistry &iReg, Observer< const T * > *iObs)
boost::mpl::vector< BeginOfJob, DDDWorld, BeginOfRun, BeginOfEvent, BeginOfTrack, BeginOfStep, G4Step, EndOfTrack, EndOfEvent, EndOfRun > Signals
static void enroll(SimActivityRegistry &, void *)