9#include "wvistreamlist.h"
22 IWvListener *l = wvcreate<IWvListener>(moniker, obj);
26 l->seterr_both(EINVAL,
"Unknown moniker '%s'", moniker);
39WvListener::~WvListener()
43 WvIStreamList::globallist.unlink(
this);
47static IWvStream *wrapper_runner(IWvListenerWrapper wrapper,
62 wrapper = wv::bind(&wrapper_runner, _wrapper, _1);
68void WvListener::callback()
89 IWvListenerCallback old = acceptor;
95void WvListener::runonce(time_t msec_delay)
102const WvAddr *WvNullListener::src()
const
110 if (ret.
isnull() && cloned)
111 return cloned->getattr(name);
The basic interface which is included by all other XPLC interfaces and objects.
virtual IWvStream * accept()=0
Accept a connection from this stream.
Base class for different address types, each of which will have the ability to convert itself to/from...
A WvFastString acts exactly like a WvString, but can take (const char *) strings without needing to a...
bool isnull() const
returns true if this string is null
virtual void addwrap(IWvListenerWrapper _wrapper)
Add a wrapper function for this stream: something that accept() will call to possibly wrap the stream...
virtual IWvListenerCallback onaccept(IWvListenerCallback _cb)
Set a user-defined function to be called when a new connection is available.
This is a listener that doesn't work.
A WvAddr that simply contains a printable string with a user-defined encapsulation type.
WvString is an implementation of a simple and efficient printable-string class.
#define UUID_MAP_END
Marks the end of an interface map.
#define UUID_MAP_BEGIN(component)
Start the interface map for "component".
#define UUID_MAP_ENTRY(iface)
Add an entry to an interface map.