00001 #line 309 "./lpsrc/flx_poll_demux.ipk"
00002 #ifndef __FLX_DEMUX_TS_POLL_DEMUXER_H__
00003 #define __FLX_DEMUX_TS_POLL_DEMUXER_H__
00004
00005
00006
00007 #include "demux_poll_demuxer.hpp"
00008 #include "demux_self_piper.hpp"
00009 #include "pthread_mutex.hpp"
00010
00011 namespace flx { namespace demux {
00012
00013 class ts_poll_demuxer : public posix_demuxer {
00014
00015 flx::pthread::flx_mutex_t ham_fist;
00016
00017 poll_demuxer demux;
00018
00019 self_piper sp;
00020 protected:
00021 virtual void get_evts(bool poll);
00022 public:
00023 ts_poll_demuxer();
00024 ~ts_poll_demuxer();
00025
00026 virtual int add_socket_wakeup(socket_wakeup* sv, int flags);
00027
00028
00029 virtual demux_quit_flag* get_quit_flag() { return demux.get_quit_flag(); }
00030 virtual void set_quit_flag(demux_quit_flag* f) { demux.set_quit_flag(f); }
00031 };
00032
00033 }}
00034
00035 #endif
00036