X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2Fdetail%2FEventBinding.hh;h=d976236b6cb87f31ca8109506ad8d32b05eac241;hb=ea8b2923c29a6902f507db2b485a44a58e9406f0;hp=468e713e66f2a9e438d5cbdcfee19d11d1c91d3d;hpb=122719831e4d0ce7c335a66ed7c80a7ffc2e00e8;p=senf.git diff --git a/PPI/detail/EventBinding.hh b/PPI/detail/EventBinding.hh index 468e713..d976236 100644 --- a/PPI/detail/EventBinding.hh +++ b/PPI/detail/EventBinding.hh @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -27,7 +27,7 @@ #define HH_EventBinding_ 1 // Custom includes -#include +#include "../../Scheduler/ClockService.hh" #include "../predecl.hh" #include "Callback.hh" @@ -38,16 +38,20 @@ 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_; @@ -57,30 +61,37 @@ namespace detail { 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,