X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2Fdetail%2FEventBinding.hh;h=f4898797c880a10dbd93149ee70d7f517e32f39c;hb=82e8df5de8b11448423388632e8602ad97bc7885;hp=468e713e66f2a9e438d5cbdcfee19d11d1c91d3d;hpb=122719831e4d0ce7c335a66ed7c80a7ffc2e00e8;p=senf.git diff --git a/PPI/detail/EventBinding.hh b/PPI/detail/EventBinding.hh index 468e713..f489879 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) +// Copyright (C) 2007 +// 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 @@ -23,11 +23,11 @@ /** \file \brief EventBinding public header */ -#ifndef HH_EventBinding_ -#define HH_EventBinding_ 1 +#ifndef HH_SENF_PPI_detail_EventBinding_ +#define HH_SENF_PPI_detail_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,