00001 00009 #include <atoms/io_poller.hh> 00010 #include <atoms/epoll_poller.hh> 00011 #include <atoms/select_poller.hh> 00012 #include <atoms/kqueue_poller.hh> 00013 00014 using namespace std; 00015 using namespace boost; 00016 00017 namespace atoms { 00018 00019 boost::shared_ptr<IOPoller> IOPoller::create() { 00020 #ifdef HAVE_EPOLL 00021 try { 00022 return EpollPoller::create(); 00023 } catch (UnsupportedError&) {} 00024 #endif 00025 #ifdef HAVE_KQUEUE 00026 try { 00027 return KqueuePoller::create(); 00028 } catch (UnsupportedError&) {} 00029 #endif 00030 return SelectPoller::create(); 00031 } 00032 00033 } // namespace atoms
1.3.5