faio_sdl_event.hpp

00001 #line 2736 "./lpsrc/flx_sdl.pak"
00002 #ifndef __FAIO_SDL_EVENT__
00003 #define __FAIO_SDL_EVENT__
00004 #include <flx_sdl_config.hpp>
00005 #include "pthread_work_fifo.hpp"
00006 #include "faio_drv.hpp"      // thread_wakeups,
00007 #include "faio_asyncio.hpp"  // flx_driver_request_base
00008 #include "SDL_mutex.h"
00009 #include "SDL_events.h"
00010 
00011 namespace flx { namespace faio {
00012 
00013 // ONE PROBLEM: this is faio level. It needs to know about fthreads
00014 
00015 // get ONE SDL event
00016 class SDL_EXTERN faio_sdl_event : public flx_driver_request_base,
00017   public flx::pthread::worker_task {
00018    thread_wakeup   fw;
00019    SDL_Event *e;
00020    SDL_mutex *m;
00021 public:
00022   faio_sdl_event() {}     // felix linkage
00023   faio_sdl_event(SDL_Event *_e, SDL_mutex *_m);
00024 
00025   // from flx_driver_request_base
00026   bool start_async_op(demux::demuxer& demux, flx_drv* drv,  void* f);
00027 
00028   // from fifo_worker_task
00029   void doit();
00030   void finished();
00031 };
00032 
00033 }}
00034 #endif
00035 

Generated on Mon Dec 11 17:08:15 2006 for Felix by  doxygen 1.5.1