00001 /* 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 */ 00005 #ifndef __WVSTREAMCLONE_H 00006 #define __WVSTREAMCLONE_H 00007 00008 #include "wvstream.h" 00009 00023 class WvStreamClone : public WvStream 00024 { 00025 public: 00032 WvStreamClone(WvStream **_cloned) 00033 { cloned = _cloned; force_select(false, false, false); } 00034 virtual ~WvStreamClone(); 00035 00036 virtual void close(); 00037 virtual int getrfd() const; 00038 virtual int getwfd() const; 00039 virtual size_t uread(void *buf, size_t size); 00040 virtual size_t uwrite(const void *buf, size_t size); 00041 virtual bool isok() const; 00042 virtual int geterr() const; 00043 virtual const char *errstr() const; 00044 virtual bool pre_select(SelectInfo &si); 00045 virtual bool post_select(SelectInfo &si); 00046 virtual const WvAddr *src() const; 00047 virtual void execute(); 00048 00049 protected: 00050 WvStream **cloned; 00051 WvStream *s() const 00052 { return cloned ? *cloned : (WvStream*)NULL; } 00053 }; 00054 00055 #endif // __WVSTREAMCLONE_H