00001
00002
00003
00004
00005
00006
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