demux_kqueue_demuxer.hpp
00001 #line 3 "./lpsrc/flx_kqueue_demux.ipk"
00002 #ifndef __FLX_DEMUX_KQUEUE_DEMUXER_H__
00003 #define __FLX_DEMUX_KQUEUE_DEMUXER_H__
00004
00005 #include "demux_posix_demuxer.hpp"
00006
00007 namespace flx { namespace demux {
00008
00009
00010
00011
00012 class DEMUX_EXTERN kqueue_demuxer : public posix_demuxer {
00013 int kq;
00014 protected:
00015
00016
00017
00018
00019 int add_kqueue_filter(socket_wakeup* sv, short filter);
00020 int remove_kqueue_filter(int s, short filter);
00021
00022 int remove_socket_wakeup(int s, int flags);
00023 void get_evts(bool poll);
00024 public:
00025 kqueue_demuxer();
00026 virtual ~kqueue_demuxer();
00027
00028 virtual int add_socket_wakeup(socket_wakeup* sv, int flags);
00029 };
00030
00031 }}
00032 #endif
00033