WvStreams
|
00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * An interface for "listeners", streams that spawn other streams from 00006 * (presumably) incoming connections. 00007 */ 00008 #ifndef __IWVLISTENER_H 00009 #define __IWVLISTENER_H 00010 00011 #include "iwvstream.h" 00012 00013 typedef wv::function<void(IWvStream*)> IWvListenerCallback; 00014 typedef wv::function<IWvStream*(IWvStream*)> IWvListenerWrapper; 00015 00016 class IWvListener : public IWvStream 00017 { 00018 public: 00019 static IWvListener *create(WvString moniker, IObject *obj = NULL); 00020 00025 virtual IWvStream *accept() = 0; 00026 00032 virtual IWvListenerCallback onaccept(IWvListenerCallback _cb) = 0; 00033 00041 virtual void addwrap(IWvListenerWrapper _wrapper) = 0; 00042 }; 00043 00044 DEFINE_IID(IWvListener, {0xe7c2433a, 0x6d5c, 0x4345, {0x83, 00045 0xee, 0xc0, 0x0f, 0xa7, 0xe3, 0x08, 0xeb}}); 00046 00047 #endif // __IWVLISTENER_H