9 #include "wvencoderstream.h"
18 WvEncoderStream::~WvEncoderStream()
32 if (is_closing)
return;
56 if (!cloned || cloned->
geterr() != 0)
74 inbuf.
merge(readoutbuf);
81 bool success = push(
true ,
false );
92 inbuf.
merge(readoutbuf);
100 return push(
true ,
true );
104 void WvEncoderStream::pull(
size_t size)
113 cloned->read(readinbuf, size);
120 tmpbuf.
merge(readoutbuf);
148 bool WvEncoderStream::push(
bool flush,
bool finish)
154 writeinbuf.
merge(outbuf);
163 size_t size = writeoutbuf.
used();
166 const unsigned char *writeout = writeoutbuf.
get(size);
168 writeoutbuf.
unget(size - len);
172 cloned->write(writeoutbuf, writeoutbuf.
used());
181 if (size && readoutbuf.
used() == 0)
183 size_t avail = readoutbuf.
used();
186 readoutbuf.move(buf, size);
193 writeinbuf.put(buf, size);
194 push(
false ,
false );
203 if (si.wants.readable && readoutbuf.
used() != 0)
215 if (si.wants.readable && readoutbuf.
used() != 0)
218 if (readoutbuf.
used() != 0)
224 push(
false ,
false );
233 void WvEncoderStream::checkreadisok()
243 void WvEncoderStream::checkwriteisok()