00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WVSTREAMCLONE_H
00009 #define __WVSTREAMCLONE_H
00010
00011 #include "wvstream.h"
00012
00023 class WvStreamClone : public WvStream
00024 {
00025 public:
00030 WvStreamClone(IWvStream *_cloned = NULL);
00031
00042 virtual ~WvStreamClone();
00043
00044 IWvStream *cloned;
00045
00062 virtual void setclone(IWvStream *clone);
00063
00069 virtual void close();
00070
00076 virtual bool flush_internal(time_t msec_timeout);
00077 virtual size_t uread(void *buf, size_t size);
00078 virtual size_t uwrite(const void *buf, size_t size);
00079 virtual bool isok() const;
00080 virtual int geterr() const;
00081 virtual WvString errstr() const;
00082 virtual void pre_select(SelectInfo &si);
00083 virtual bool post_select(SelectInfo &si);
00084 virtual const WvAddr *src() const;
00085 virtual void execute();
00086 virtual void noread();
00087 virtual void nowrite();
00088 virtual WvString getattr(WvStringParm name) const;
00089
00090 private:
00091 void close_callback();
00092
00093 protected:
00094 WvString my_type;
00095 public:
00096 const char *wstype() const { return my_type; }
00097 };
00098
00099 #endif // __WVSTREAMCLONE_H