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     
00031     virtual const WvUnixAddr *src() const;
00032     
00033 protected:
00034     WvUnixAddr addr;
00035     bool bound_okay;
00036 
00037     void accept_callback(WvIStreamList *list,
00038                          wv::function<void(IWvStream*)> cb,
00039                          IWvStream *_connection);
00040 
00041 public:
00042     const char *wstype() const { return "WvUnixListener"; }
00043 };
00044 
00045 #endif // _WIN32
00046 
00047 #endif // __WVUNIXLISTENER_H