X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2Fdetail%2FEventBinding.hh;h=400d5e49ece095da94f8be11c634a04c1fc74710;hb=e67faa588ac375105c0a6d12c79ef93d5499bcab;hp=addda33b4fae3c17dee8e004d87b6cd4418efa49;hpb=7465ea4f6d3d54622bd783106cf8b60d5f133343;p=senf.git diff --git a/PPI/detail/EventBinding.hh b/PPI/detail/EventBinding.hh index addda33..400d5e4 100644 --- a/PPI/detail/EventBinding.hh +++ b/PPI/detail/EventBinding.hh @@ -27,7 +27,7 @@ #define HH_EventBinding_ 1 // Custom includes -#include +#include "../../Scheduler/ClockService.hh" #include "../predecl.hh" #include "Callback.hh" @@ -38,44 +38,60 @@ namespace senf { namespace ppi { namespace detail { + /** \brief Internal: Association Event - Module - Handler, base-class */ class EventBindingBase { + public: + ~EventBindingBase(); + + EventManager & manager() const; + module::Module & module() const; + protected: EventBindingBase(EventManager & manager, module::Module & module, EventDescriptor & descriptor); - void eventTime(boost::posix_time::ptime time); + void eventTime(ClockService::clock_type time); private: EventManager * manager_; module::Module * module_; EventDescriptor * descriptor_; + + friend class senf::ppi::EventManager; }; + /** \brief Internal: Callback forwarders + */ template class EventBindingHelper { public: typedef typename detail::EventArgType::type EventArg; - void callback(EventArg event, boost::posix_time::ptime time); + void callback(EventArg event, ClockService::clock_type time); void callback(EventArg event); private: Self & self(); }; +#ifndef DOXYGEN + template class EventBindingHelper { public: - void callback(boost::posix_time::ptime time); + void callback(ClockService::clock_type time); void callback(); private: Self & self(); }; +#endif + + /** \brief Internal: Association Event - Module - Handler, event type specific */ template class EventBinding : public EventBindingBase,