Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

wvunixsocket.h

Go to the documentation of this file.
00001 /*
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2002 Net Integration Technologies, Inc.
00004  */ 
00005 #ifndef __WVUNIXSOCKET_H
00006 #define __WVUNIXSOCKET_H
00007 
00008 #include "wvstream.h"
00009 #include "wvaddr.h"
00010 
00011 class WvStreamList;
00012 class WvUnixListener;
00013 
00029 class WvUnixConn : public WvStream
00030 {
00031     friend class WvUnixListener;
00032 protected:
00033     WvUnixAddr addr;
00034     
00038     WvUnixConn(int _fd, const WvUnixAddr &_addr);
00039     
00040 public:
00044     WvUnixConn(const WvUnixAddr &_addr);
00045 
00046     virtual ~WvUnixConn();
00047     
00053     const WvUnixAddr &localaddr() { return addr; }
00054     
00061     virtual const WvUnixAddr *src() const;
00062 };
00063 
00067 class WvUnixListener : public WvStream
00068 {
00069 public:
00070     WvUnixListener(const WvUnixAddr &_addr, int create_mode);
00071     virtual ~WvUnixListener();
00072     
00073     virtual void close();
00074     
00081     WvUnixConn *accept();
00082     
00092     void auto_accept(WvStreamList *list,
00093                      WvStreamCallback callfunc = NULL, void *userdata = NULL);
00094 
00099     virtual size_t uread(void *buf, size_t len);
00100     virtual size_t uwrite(const void *buf, size_t len);
00101     
00105     virtual const WvUnixAddr *src() const;
00106     
00107 protected:
00108     WvUnixAddr addr;
00109     bool bound_okay;
00110     WvStreamList *auto_list;
00111 
00112     WvStreamCallback auto_callback;
00113     void *auto_userdata;
00114 
00115     static void accept_callback(WvStream &s, void *userdata);
00116 };
00117 
00118 
00119 #endif // __WVUNIXSOCKET_H

Generated on Sat Aug 24 23:07:58 2002 for WvStreams by doxygen1.2.15