WvStreams
wvunixlistener.h
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