WvStreams
debian/libwvstreams-dev/usr/include/wvstreams/wvfdstream.h
1/* -*- Mode: C++ -*-
2 * Worldvisions Weaver Software:
3 * Copyright (C) 1997-2002 Net Integration Technologies, Inc.
4 *
5 * Base class for streams built on Unix file descriptors.
6 */
7#ifndef __WVFDSTREAM_H
8#define __WVFDSTREAM_H
9
10#include "wvstream.h"
11
20class WvFdStream : public WvStream
21{
22protected:
24 int rfd;
25
27 int wfd;
28
30 bool shutdown_read, shutdown_write;
31
36 void setfd(int fd)
37 { rfd = wfd = fd; }
38
39public:
44 WvFdStream(int rwfd = -1);
45
54 WvFdStream(int rfd, int wfd);
55
57 virtual ~WvFdStream();
58
63 int getrfd() const
64 { return rfd; }
65
70 int getwfd() const
71 { return wfd; }
72
81 int getfd() const
82 {
83 assert(rfd == wfd);
84 return rfd;
85 }
86
88 void set_nonblock(bool nonblock);
89
91 void set_close_on_exec(bool close_on_exec);
92
93 /***** Overridden members *****/
94
103 virtual void close();
104 virtual bool isok() const;
105 virtual size_t uread(void *buf, size_t count);
106 virtual size_t uwrite(const void *buf, size_t count);
107 virtual void pre_select(SelectInfo &si);
108 virtual bool post_select(SelectInfo &si);
109 virtual void maybe_autoclose();
110
111public:
112 const char *wstype() const { return "WvFdStream"; }
113};
114
115typedef WvFdStream WvFDStream;
116
117#endif // __WVFDSTREAM_H
Base class for streams built on Unix file descriptors.
bool shutdown_read
Have we actually shut down the read/write sides?
void setfd(int fd)
Sets the file descriptor for both reading and writing.
virtual void maybe_autoclose()
Auto-close the stream if the time is right.
int getrfd() const
Returns the Unix file descriptor for reading from this stream.
int getfd() const
Returns the Unix file descriptor for reading and writing.
virtual size_t uread(void *buf, size_t count)
unbuffered I/O functions; these ignore the buffer, which is handled by read().
virtual bool isok() const
return true if the stream is actually usable right now
int getwfd() const
Returns the Unix file descriptor for writing to this stream.
void set_nonblock(bool nonblock)
Make the fds on this stream blocking or non-blocking.
Definition wvfdstream.cc:97
virtual void close()
Closes the file descriptors.
virtual ~WvFdStream()
Destroys the stream and invokes close().
Definition wvfdstream.cc:68
void set_close_on_exec(bool close_on_exec)
Make the fds on this stream close-on-exec or not.
virtual bool post_select(SelectInfo &si)
post_select() is called after select(), and returns true if this object is now ready.
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling select().
virtual size_t uwrite(const void *buf, size_t count)
unbuffered I/O functions; these ignore the buffer, which is handled by write().
Unified support for streams, that is, sequences of bytes that may or may not be ready for read/write ...