00001
00002
00003
00004
00005
00006 #ifndef __WVUNIXLISTENER_H
00007 #define __WVUNIXLISTENER_H
00008
00009 #include "wvlistener.h"
00010 #include "wvaddr.h"
00011
00012 #ifndef _WIN32
00013
00015 class WvUnixListener : public WvListener
00016 {
00017 public:
00018 WvUnixListener(const WvUnixAddr &_addr, int create_mode);
00019 virtual ~WvUnixListener();
00020 virtual void close();
00021
00028 IWvStream *accept();
00029
00038 void auto_accept(WvIStreamList *list, wv::function<void(IWvStream*)> cb);
00039
00044 void auto_accept(wv::function<void(IWvStream*)> cb);
00045
00047 virtual const WvUnixAddr *src() const;
00048
00049 protected:
00050 WvUnixAddr addr;
00051 bool bound_okay;
00052
00053 void accept_callback(WvIStreamList *list,
00054 wv::function<void(IWvStream*)> cb,
00055 IWvStream *_connection);
00056
00057 public:
00058 const char *wstype() const { return "WvUnixListener"; }
00059 };
00060
00061 #endif // _WIN32
00062
00063 #endif // __WVUNIXLISTENER_H