Scheduler: Fix retrieve_filehandle ADL lookup problems
g0dil [Thu, 25 Sep 2008 23:07:01 +0000 (23:07 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@919 270642c3-0616-0410-b53a-bc976706d245

PPI/IOEvent.cti
Scheduler/FdEvent.cci
Scheduler/FdEvent.ct
Scheduler/FdEvent.cti
Scheduler/FdEvent.hh
Scheduler/FdEvent.ih

index 29c0fbb..7372e36 100644 (file)
@@ -36,7 +36,7 @@
 
 template <class Handle>
 prefix_ senf::ppi::IOEvent::IOEvent(Handle handle, unsigned events)
-    : fd_ (retrieve_filehandle(handle)),
+    : fd_ (senf::scheduler::get_descriptor(handle)),
       event_ ("senf::ppi::IOEvent", boost::bind(&IOEvent::cb,this,_1), fd_, events, false) 
 {}
 
index 2231de9..93dded7 100644 (file)
@@ -109,7 +109,7 @@ prefix_ bool senf::scheduler::detail::FileDispatcher::empty()
 
 ///////////////////////////////////////////////////////////////////////////
 
-prefix_ int retrieve_filehandle(int fd)
+prefix_ int senf::scheduler::detail::retrieve_filehandle(int fd)
 {
     return fd;
 }
index c6dfbf9..f70a35c 100644 (file)
@@ -37,7 +37,7 @@ template <class Handle>
 prefix_ senf::scheduler::FdEvent & senf::scheduler::FdEvent::handle(Handle const & handle)
 {
     bool en (enabled());
-    fd_ = retrieve_filehandle(handle);
+    fd_ = detail::get_descriptor(handle);
     pollable_ = true;
     if (en)
         enable();
index 44b7299..317a4eb 100644 (file)
@@ -37,13 +37,27 @@ template <class Handle>
 prefix_ senf::scheduler::FdEvent::FdEvent(std::string const & name, Callback const & cb,
                                           Handle const & handle, int events,
                                           bool initiallyEnabled)
-    : detail::FIFORunner::TaskInfo (name), cb_ (cb), fd_ (retrieve_filehandle(handle)), pollable_ (true),
-      events_ (events)
+    : detail::FIFORunner::TaskInfo (name), cb_ (cb), fd_ (detail::get_descriptor(handle)), 
+      pollable_ (true), events_ (events)
 {
     if (initiallyEnabled)
        enable();
 }
 
+///////////////////////////////////////////////////////////////////////////
+
+template <class Handle>
+prefix_ int senf::scheduler::get_descriptor(Handle const & handle)
+{
+    return detail::get_descriptor(handle);
+}
+
+template <class Handle>
+prefix_ int senf::scheduler::detail::get_descriptor(Handle const & handle)
+{
+    return retrieve_filehandle(handle);
+}
+
 ///////////////////////////////cti.e///////////////////////////////////////
 #undef prefix_
 
index 75e3f52..90ddc7a 100644 (file)
@@ -171,10 +171,10 @@ namespace scheduler {
         friend class detail::FileDispatcher;
     };
 
+    template <class Handle>
+    int get_descriptor(Handle const & handle);
 }}
 
-int retrieve_filehandle(int fd);
-
 ///////////////////////////////hh.e////////////////////////////////////////
 #include "FdEvent.cci"
 #include "FdEvent.ct"
index d958436..bcb98a9 100644 (file)
@@ -115,6 +115,11 @@ namespace detail {
         friend class singleton<FileDispatcher>;
     };
 
+    template <class Handle>
+    int get_descriptor(Handle const & handle);
+
+    int retrieve_filehandle(int fd);
+
 }}}
 
 ///////////////////////////////ih.e////////////////////////////////////////