8#ifndef __WVISTREAMLIST_H
9#define __WVISTREAMLIST_H
14DeclareWvList2(WvIStreamListBase,
IWvStream);
24 virtual ~WvIStreamList();
30 void unlink(IWvStream *data)
31 { sure_thing.unlink(data); WvIStreamListBase::unlink(data); }
36 WvIStreamListBase::add_after(after, data, autofree,
id);
38 void add(IWvStream *data,
bool autofree,
const char *
id)
40 WvIStreamListBase::add(data, autofree,
id);
42 void prepend(IWvStream *data,
bool autofree,
const char *
id)
44 WvIStreamListBase::prepend(data, autofree,
id);
49 static WvIStreamList globallist;
52 WvIStreamListBase sure_thing;
58 void add_after(WvLink *after, IWvStream *data,
bool autofree, WvString
id);
59 void add(IWvStream *data,
bool autofree, WvString
id);
60 void prepend(IWvStream *data,
bool autofree, WvString
id);
67 static void onfork(pid_t p);
71 void append(IWvStream *s,
bool auto_free,
const char *
id)
73 if (s->wsname() == NULL)
75 WvIStreamListBase::append(s, auto_free,
id);
77 void append(IWvStream *s,
bool auto_free, WVSTRING_FORMAT_DECL)
79 if (s->wsname() == NULL)
80 s->set_wsname(WvString(WVSTRING_FORMAT_CALL));
81 WvIStreamListBase::append(s, auto_free, s->wsname());
85 const char *wstype()
const {
return "WvIStreamList"; }
88 static void add_debugger_commands();
90 static WvString debugger_globallist_run_cb(WvStringParm cmd,
92 WvStreamsDebugger::ResultCallback result_cb,
void *);
WvStreamList holds a list of WvStream objects – and its select() and callback() functions know how to...
virtual bool isok() const
return true if the stream is actually usable right now
virtual bool post_select(SelectInfo &si)
post_select() is called after select(), and returns true if this object is now ready.
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling select().
virtual void execute()
The callback() function calls execute(), and then calls the user- specified callback if one is define...
WvLink is one element of a WvList<T>.
Unified support for streams, that is, sequences of bytes that may or may not be ready for read/write ...
the data structure used by pre_select()/post_select() and internally by select().