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"
36 namespace enroller_helper {
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;
boost::mpl::pop_back< TVector >::type RemainingVector
static void enroll(SimActivityRegistry &iReg, T *iObj)
const SimActivityRegistryEnroller & operator=(const SimActivityRegistryEnroller &)
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
void connect(SimActivityRegistry &iOther)
forwards our signals to slots connected to iOther
static void enroll(SimActivityRegistry &, void *)