00001
00002
00003
00004
00005
00006
00007 #include "wvfdstream.h"
00008
00009
00010 class _WvConStream : public WvFDStream
00011 {
00012 public:
00013 bool isopen;
00014
00015 _WvConStream(int _rfd, int _wfd);
00016 virtual ~_WvConStream();
00017 virtual void close();
00018 virtual bool isok() const;
00019 };
00020
00021
00022 _WvConStream::_WvConStream(int _rfd, int _wfd) : WvFDStream(_rfd, _wfd)
00023 {
00024 isopen = true;
00025 }
00026
00027
00028 _WvConStream::~_WvConStream()
00029 {
00030 close();
00031 }
00032
00033
00034 void _WvConStream::close()
00035 {
00036 isopen = false;
00037 setfd(-1);
00038 WvFDStream::close();
00039 }
00040
00041
00042 bool _WvConStream::isok() const
00043 {
00044 return isopen;
00045 }
00046
00047
00048
00049 #ifdef _WIN32
00050
00051 #include "../Win32WvStreams/streams/streams.h"
00052 SocketFromFDMaker _zero(0, fd2socket_fwd);
00053 SocketFromFDMaker _one(1, socket2fd_fwd);
00054 SocketFromFDMaker _two(2, socket2fd_fwd);
00055
00056 static WvFDStream _wvcon(_zero.GetSocket(), _one.GetSocket());
00057 static WvFDStream _wvin(_zero.GetSocket(), -1);
00058 static WvFDStream _wvout(-1, _one.GetSocket());
00059 static WvFDStream _wverr(-1, _two.GetSocket());
00060
00061 #else // _WIN32
00062
00063 static _WvConStream _wvcon(0, 1);
00064 static _WvConStream _wvin(0, -1);
00065 static _WvConStream _wvout(-1, 1);
00066 static _WvConStream _wverr(-1, 2);
00067
00068 #endif // !_WIN32
00069
00070 WvStream *wvcon = &_wvcon;
00071 WvStream *wvin = &_wvin;
00072 WvStream *wvout = &_wvout;
00073 WvStream *wverr = &_wverr;
00074