4. Timer

Start cpp section to faio/faio_timer.hpp[1 /1 ]
     1: #line 4 "./lpsrc/flx_timer.ipk"
     2: #ifndef __FLX_FAIO_TIMER_H__
     3: #define __FLX_FAIO_TIMER_H__
     4: #include <flx_faio_config.hpp>
     5: 
     6: #include "demux_demuxer.hpp"        // sel_param, demuxer base
     7: #include "faio_asyncio.hpp"
     8: #include "demux_timer_queue.hpp"
     9: 
    10: #include "flx_rtl.hpp"
    11: 
    12: namespace flx { namespace faio {
    13: 
    14: 
    15: // sleeping
    16: class FAIO_EXTERN sleep_request
    17:   : public flx_driver_request_base, public demux::sleep_task
    18: {
    19:   demux::timer_queue *sleepers;
    20:   double      delta;
    21: public:
    22:   sleep_request() {}        // flx linkage
    23: 
    24:   sleep_request(demux::timer_queue *sleepers_a, double d) :
    25:     sleepers(sleepers_a), delta(d)
    26:   {}
    27: 
    28:   // from driver request
    29:   bool start_async_op_impl();
    30: 
    31:   void fire();
    32: 
    33: };
    34: 
    35: }} // namespace faio, flx
    36: #endif
    37: 
End cpp section to faio/faio_timer.hpp[1]
Start cpp section to faio/faio_timer.cpp[1 /1 ]
     1: #line 42 "./lpsrc/flx_timer.ipk"
     2: #include "faio_timer.hpp"
     3: 
     4: using namespace flx::demux;
     5: namespace flx { namespace faio {
     6: bool
     7: sleep_request::start_async_op_impl()
     8: {
     9:   //fprintf(stderr,"Sleep: start async_op_impl %p\n",this);
    10:   sleepers->add_sleep_request(this, delta);
    11:   return false;   // no wakeup
    12: }
    13: 
    14: void sleep_request::fire() {
    15:   //fprintf (stderr,"FIRE req=%p\n",this);
    16:   notify_finished();
    17: }
    18: 
    19: }}
    20: 
    21: 
End cpp section to faio/faio_timer.cpp[1]