Utils/Exception: Allow to disable ErrnoExceptions via SENF_NO_ERRNOEXC
[senf.git] / PPI / Events.cti
index a7db87c..b1bd1fc 100644 (file)
 ///////////////////////////////cti.p///////////////////////////////////////
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::ppi::EventImplementation<EventType>
+// senf::ppi::EventImplementationHelper<EventType,Self>
 
 ////////////////////////////////////////
 // protected members
 
-template <class EventType>
-prefix_ senf::ppi::EventImplementation<EventType>::EventImplementation()
-    : binding_(0)
-{}
+template <class EventType, class Self>
+prefix_ void
+senf::ppi::EventImplementationHelper<EventType,Self>::callback(EventArg event,
+                                                               ClockService::clock_type time)
+{
+    binding().callback(event,time);
+}
+
+template <class EventType, class Self>
+prefix_ void senf::ppi::EventImplementationHelper<EventType,Self>::callback(EventArg event)
+{
+    binding().callback(event);
+}
+
+////////////////////////////////////////
+// private members
+
+template <class EventType, class Self>
+prefix_ senf::ppi::detail::EventBinding<EventType> &
+senf::ppi::EventImplementationHelper<EventType,Self>::binding()
+{
+    BOOST_ASSERT( static_cast<Self*>(this)->binding_ );
+    return * static_cast<Self*>(this)->binding_;
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::ppi::EventImplementationHelper<void,Self>
+
+////////////////////////////////////////
+// protected members
+
+template <class Self>
+prefix_ void
+senf::ppi::EventImplementationHelper<void,Self>::callback(ClockService::clock_type time)
+{
+    binding().callback(time);
+}
+
+template <class Self>
+prefix_ void senf::ppi::EventImplementationHelper<void,Self>::callback()
+{
+    binding().callback();
+}
+
+////////////////////////////////////////
+// private members
+
+template <class Self>
+prefix_ senf::ppi::detail::EventBinding<void> &
+senf::ppi::EventImplementationHelper<void,Self>::binding()
+{
+    BOOST_ASSERT( static_cast<Self*>(this)->binding_ );
+    return * static_cast<Self*>(this)->binding_;
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::ppi::EventImplementation<EventType>
 
 template <class EventType>
-prefix_ void senf::ppi::EventImplementation<EventType>::callback(EventArg event,
-                                                                 boost::posix_time::ptime time)
+prefix_ senf::ppi::module::Module & senf::ppi::EventImplementation<EventType>::module()
+    const
 {
-    BOOST_ASSERT(binding_);
-    binding_->callback(event,time);
+    return binding_->module();
 }
 
 template <class EventType>
-prefix_ void senf::ppi::EventImplementation<EventType>::callback(EventArg event)
+prefix_ senf::ppi::EventManager & senf::ppi::EventImplementation<EventType>::manager()
+    const
 {
-    BOOST_ASSERT(binding_);
-    binding_->callback(event);
+    return binding_->manager();
 }
 
 ////////////////////////////////////////
+// protected members
+
+template <class EventType>
+prefix_ senf::ppi::EventImplementation<EventType>::EventImplementation()
+    : binding_(0)
+{}
+
+////////////////////////////////////////
 // private members
 
 template <class EventType>