WvTimeOutStream - timed out

WvTimeoutStream is a stream that becomes !isok() after a configurable number of milliseconds. It will wake up a select(). It will return true if select()ed and that the timeout has expired. But using it in a WvStreamList will not have it call the callback/execute because the WvStreamList checks whether isok() is true before doing the select().

	  
/*
 * A WvTimeOut example.
 *
 * Should only fire once.
 */

#include "wvtimeoutstream.h"
#include "wvlog.h"
#include <sys/time.h>

WvLog log("timeout", WvLog::Info);

void timeout(WvStream &s, void *userdata)
{
    static int count = 0;
    count++;
    log("Fire %s\n", count);
}

int main()
{
    WvTimeoutStream t(1000);
    t.setcallback(timeout, NULL);

    for (int i = 0; i < 3 && t.isok(); i++)
    {
        if (t.select(-1))
            t.callback();
    }

    return 0;
}