#line 55 "/home/ubuntu/felix/src/packages/faio.fdoc"
#ifndef __FLX_FAIO_POSIXIO_H__
#define __FLX_FAIO_POSIXIO_H__
#include <flx_faio_config.hpp>
#include "flx_async.hpp"
#include "demux_posix_demuxer.hpp"
#include "demux_timer_queue.hpp"
namespace flx { namespace faio {
class FAIO_EXTERN socketio_wakeup : public demux::socket_wakeup {
public:
demux::sel_param pb; int sio_flags; class socketio_request *request;
virtual void wakeup(demux::posix_demuxer& demux);
};
class FAIO_EXTERN socketio_request : public ::flx::async::flx_driver_request_base {
public:
socketio_wakeup sv;
demux::posix_demuxer *pd;
socketio_request() {} socketio_request(socketio_request const&);
void operator = (socketio_request const&);
socketio_request(demux::posix_demuxer *pd_a, int s, char* buf, long len, bool r);
bool start_async_op_impl();
};
class FAIO_EXTERN connect_request
: public ::flx::async::flx_driver_request_base, public demux::connect_control_block {
public:
demux::posix_demuxer *pd;
connect_request() {}
connect_request(demux::posix_demuxer *pd_a,const char* addr, int port);
bool start_async_op_impl();
virtual void wakeup(demux::posix_demuxer&);
};
class FAIO_EXTERN accept_request
: public ::flx::async::flx_driver_request_base, public demux::accept_control_block {
public:
demux::posix_demuxer *pd;
accept_request() {}
accept_request(demux::posix_demuxer *pd_a, int listener) : pd(pd_a) { s = listener; }
bool start_async_op_impl();
virtual void wakeup(demux::posix_demuxer& demux);
};
}}
#endif