demux_quitter.hpp
00001 #line 251 "./lpsrc/flx_demux.pak"
00002
00003 #ifndef __FLX_DEMUX_QUITTER_H__
00004 #define __FLX_DEMUX_QUITTER_H__
00005
00006 #include <flx_demux_config.hpp>
00007 #include "demux_demuxer.hpp"
00008
00009 #if FLX_WIN32
00010 #include "demux_wself_piper.hpp"
00011 #else
00012 #include "demux_self_piper.hpp"
00013 #endif
00014
00015 #include "pthread_waitable_bool.hpp"
00016
00017 namespace flx { namespace demux {
00018
00019
00020 class DEMUX_EXTERN demux_quitter
00021 : public demux_callback, public demux_quit_flag {
00022
00023 #if FLX_WIN32
00024 wself_piper sp;
00025 #else
00026 self_piper sp;
00027 #endif
00028 pthread::waitable_bool finished;
00029 void callback(demuxer* demux);
00030 virtual void signal_true();
00031 public:
00032 void quit(demuxer* demux);
00033 };
00034
00035 } }
00036
00037 #endif
00038