Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

wvunixsocket.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2002 Net Integration Technologies, Inc.
00004  *
00005  */ 
00006 #ifndef __WVUNIXSOCKET_H
00007 #define __WVUNIXSOCKET_H
00008 
00009 #include "wvfdstream.h"
00010 #include "wvaddr.h"
00011 
00012 class WvIStreamList;
00013 class WvUnixListener;
00014 
00030 class WvUnixConn : public WvFDStream
00031 {
00032     friend class WvUnixListener;
00033 protected:
00034     WvUnixAddr addr;
00035     
00037     WvUnixConn(int _fd, const WvUnixAddr &_addr);
00038     
00039 public:
00041     WvUnixConn(const WvUnixAddr &_addr);
00042 
00043     virtual ~WvUnixConn();
00044     
00050     const WvUnixAddr &localaddr() { return addr; }
00051     
00058     virtual const WvUnixAddr *src() const;
00059 };
00060 
00062 class WvUnixListener : public WvFDStream
00063 {
00064 public:
00065     WvUnixListener(const WvUnixAddr &_addr, int create_mode);
00066     virtual ~WvUnixListener();
00067     
00068     virtual void close();
00069     
00076     WvUnixConn *accept();
00077     
00087     void auto_accept(WvIStreamList *list,
00088                      WvStreamCallback callfunc = NULL, void *userdata = NULL);
00089 
00094     virtual size_t uread(void *buf, size_t len);
00095     virtual size_t uwrite(const void *buf, size_t len);
00096     
00098     virtual const WvUnixAddr *src() const;
00099     
00100 protected:
00101     WvUnixAddr addr;
00102     bool bound_okay;
00103     WvIStreamList *auto_list;
00104 
00105     WvStreamCallback auto_callback;
00106     void *auto_userdata;
00107 
00108     static void accept_callback(WvStream &s, void *userdata);
00109 };
00110 
00111 
00112 #endif // __WVUNIXSOCKET_H

Generated on Sun Jul 10 14:05:53 2005 for WvStreams by  doxygen 1.4.0