6#include "wvmagicloopback.h"
8WvMagicLoopback::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 void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling select().
virtual size_t uread(void *buf, size_t len)
unbuffered I/O functions; these ignore the buffer, which is handled by read().
virtual size_t uwrite(const void *buf, size_t len)
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.
virtual bool post_select(SelectInfo &si)
post_select() is called after select(), and returns true if this object is now ready.
void drain()
drain the input buffer (read and discard data until select(0) returns false)
the data structure used by pre_select()/post_select() and internally by select().