X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2Fdetail%2FEventBinding.hh;h=f4898797c880a10dbd93149ee70d7f517e32f39c;hb=5443435c4c2b6e4386c5334b5b8358273f2bae93;hp=addda33b4fae3c17dee8e004d87b6cd4418efa49;hpb=7465ea4f6d3d54622bd783106cf8b60d5f133343;p=senf.git diff --git a/PPI/detail/EventBinding.hh b/PPI/detail/EventBinding.hh index addda33..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,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,