6 #include "wvmagicloopback.h"
8 WvMagicLoopback::WvMagicLoopback(
size_t size)
20 if ((si.wants.readable && circle.used() > 0) ||
21 (si.wants.writable && circle.left() > 0))
30 if ((si.wants.readable && circle.used() > 0) ||
31 (si.wants.writable && circle.left() > 0))
40 return circle.get(buf, len);
46 len = circle.put(buf, len);
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling ::select().
virtual size_t uwrite(const void *buf, size_t count)
unbuffered I/O functions; these ignore the buffer, which is handled by write().
virtual bool post_select(SelectInfo &si)
post_select() is called after ::select(), and returns true if this object is now ready.
the data structure used by pre_select()/post_select() and internally by select().
virtual bool post_select(SelectInfo &si)
post_select() is called after ::select(), and returns true if this object is now ready.
virtual size_t uwrite(const void *buf, size_t len)
unbuffered I/O functions; these ignore the buffer, which is handled by write().
virtual size_t uread(void *buf, size_t len)
unbuffered I/O functions; these ignore the buffer, which is handled by read().
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling ::select().
void drain()
drain the input buffer (read and discard data until select(0) returns false)