WvStreams
|
00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 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