10#include "wvstreamclone.h"
36class PWvStream :
public wv::shared_ptr<WvStream>
38 static WvStream *clean_stream(IWvStream *s)
40 WvStream *ss =
dynamic_cast<WvStream *
>(s);
44 return new WvStreamClone(s);
47 static WvStream *make_stream(WvStringParm moniker, IObject *obj)
49 IWvStream *s = IWvStream::create(moniker, obj);
51 s = wvcreate<IWvStream>(
"null:");
53 return clean_stream(s);
63 PWvStream(IWvStream *s)
64 : wv::shared_ptr<WvStream>(clean_stream(s),
65 wv::bind(&IWvStream::release, _1))
69 PWvStream(WvStringParm moniker, IObject *obj = 0)
70 : wv::shared_ptr<WvStream>(make_stream(moniker, obj),
71 wv::bind(&IWvStream::release, _1))
77 WvStream *addRef()
const
PWvStream is a smart pointer to an IWvStream object.
Interface * get(IObject *aObj)
XPLC equivalent to dynamic_cast.