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

wvfdstream.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2002 Net Integration Technologies, Inc.
00004  *
00005  * Base class for streams built on Unix file descriptors.
00006  */ 
00007 #ifndef __WVFDSTREAM_H
00008 #define __WVFDSTREAM_H
00009 
00010 #include "wvstream.h"
00011 
00020 class WvFdStream : public WvStream
00021 {
00022 protected:
00024     int rfd;
00025 
00027     int wfd;
00028     
00030     bool shutdown_read, shutdown_write;
00031 
00036     void setfd(int fd)
00037         { rfd = wfd = fd; }
00038 
00039 public:
00044     WvFdStream(int rwfd = -1);
00045     
00054     WvFdStream(int rfd, int wfd);
00055 
00057     virtual ~WvFdStream();
00058 
00063     int getrfd() const
00064         { return rfd; }
00065     
00070     int getwfd() const
00071         { return wfd; }
00072 
00081     int getfd() const
00082     {
00083         assert(rfd == wfd);
00084         return rfd;
00085     }
00086 
00087     /***** Overridden members *****/
00088     
00097     virtual void close();
00098     virtual bool isok() const;
00099     virtual size_t uread(void *buf, size_t count);
00100     virtual size_t uwrite(const void *buf, size_t count);
00101     virtual bool pre_select(SelectInfo &si);
00102     virtual bool post_select(SelectInfo &si);
00103     virtual void maybe_autoclose();
00104 };
00105 
00106 typedef WvFdStream WvFDStream;
00107 
00108 #endif // __WVFDSTREAM_H

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