wvstreamclone.h

00001 /* -*- Mode: C++ -*-
00002  * Worldvisions Weaver Software:
00003  *   Copyright (C) 1997-2002 Net Integration Technologies, Inc.
00004  * 
00005  * Provides support for constructing streams that wrap other streams.
00006  * This can turn a (relatively useless) IWvStream into a useful WvStream.
00007  */ 
00008 #ifndef __WVSTREAMCLONE_H
00009 #define __WVSTREAMCLONE_H
00010 
00011 #include "wvstream.h"
00012 
00026 class WvStreamClone : public WvStream
00027 {
00028 public:
00039     WvStreamClone(IWvStream *_cloned = NULL);
00040     virtual ~WvStreamClone();
00041 
00042     IWvStream *cloned;
00043     bool disassociate_on_close; // defaults to false
00044     
00045     virtual void setclone(IWvStream *clone);
00046     virtual void close();
00047     virtual bool flush_internal(time_t msec_timeout);
00048     virtual size_t uread(void *buf, size_t size);
00049     virtual size_t uwrite(const void *buf, size_t size);
00050     virtual bool isok() const;
00051     virtual int geterr() const;
00052     virtual WvString errstr() const;
00053     virtual void pre_select(SelectInfo &si);
00054     virtual bool post_select(SelectInfo &si);
00055     virtual const WvAddr *src() const;
00056     virtual void execute();
00057     virtual void noread();
00058     virtual void nowrite();
00059 
00060 private:
00061     void close_callback(WvStream &s);
00062 
00063 protected:
00064     WvString my_type;
00065 public:
00066     const char *wstype() const { return my_type; }
00067 };
00068 
00069 #endif // __WVSTREAMCLONE_H

Generated on Thu Jan 24 16:50:57 2008 for WvStreams by  doxygen 1.5.4