11 #include "wvlinklist.h"
299 bool flushmemmem(
const void *inmem,
size_t inlen,
void *outmem,
300 size_t *outlen,
bool finish =
false);
434 {
return WvString::null; }
559 : enc(enc), autofree(autofree) { }
560 ~ChainElem() {
if (autofree)
delete enc; }
562 DeclareWvList(ChainElem);
564 ChainElemList encoders;
646 virtual bool _isok()
const;
702 bool do_encode(
WvBuf &in,
WvBuf &out, ChainElem *start_after,
Specialization of WvBufBase for unsigned char type buffers intended for use with raw memory buffers.
An encoder chain owns a list of encoders that are used in sequence to transform data from a source bu...
virtual WvString _geterror() const
Returns the error message, if any.
size_t buffered()
Returns true if there is data in an internal buffer.
bool get_autofree(WvEncoder *enc) const
Gets the autofree state of a particular encoder in the chain.
bool continue_encode(WvBuf &inbuf, WvBuf &outbuf)
"Continues" encoding a buffer.
void unlink(WvEncoder *enc)
Unlinks the encoder from the chain.
WvEncoderChain()
Creates an initially empty chain of encoders.
void zap()
Clears the encoder chain.
void set_autofree(WvEncoder *enc, bool autofree)
Sets the autofree state of a particular encoder in the chain.
virtual ~WvEncoderChain()
Destroys the encoder chain.
virtual bool _reset()
Resets the chain of encoders.
virtual bool _encode(WvBuf &in, WvBuf &out, bool flush)
Passes the data through the entire chain of encoders.
void prepend(WvEncoder *enc, bool autofree)
Prepends an encoder to the head of the chain.
void append(WvEncoder *enc, bool autofree)
Appends an encoder to the tail of the chain.
virtual bool _isfinished() const
Returns true if the encoder can no longer encode data.
virtual bool _isok() const
Returns true if the encoder has not encountered an error.
virtual bool _finish(WvBuf &out)
Finishes the chain of encoders.
bool finish(WvBuf &outbuf)
Tells the encoder that NO MORE DATA will ever be encoded.
bool isok() const
Returns true if the encoder has not encountered an error.
bool reset()
Asks an encoder to reset itself to its initial state at creation time, if supported.
WvString strflushstr(WvStringParm instr, bool finish=false)
Flushes data through the encoder from a string to a string.
bool encode(WvBuf &inbuf, WvBuf &outbuf, bool flush=false, bool finish=false)
Reads data from the input buffer, encodes it, and writes the result to the output buffer.
void seterror(WVSTRING_FORMAT_DECL)
Sets an error condition, then setnotok().
void seterror(WvStringParm message)
Sets an error condition, then setnotok().
virtual ~WvEncoder()
Destroys the encoder.
virtual bool _finish(WvBuf &outbuf)
Template method implementation of finish().
bool flushbufmem(WvBuf &inbuf, void *outmem, size_t *outlen, bool finish=false)
Flushes data through the encoder from a buffer to memory.
bool encodebufmem(WvBuf &inbuf, void *outmem, size_t *outlen, bool flush=false, bool finish=false)
Encodes data from a buffer to memory.
bool flushmembuf(const void *inmem, size_t inlen, WvBuf &outbuf, bool finish=false)
Flushes data through the encoder from memory to a buffer.
bool flushmemmem(const void *inmem, size_t inlen, void *outmem, size_t *outlen, bool finish=false)
Flushes data through the encoder from memory to memory.
bool flushstrbuf(WvStringParm instr, WvBuf &outbuf, bool finish=false)
Flushes data through the encoder from a string to a buffer.
bool isfinished() const
Returns true if the encoder can no longer encode data.
void setnotok()
Sets 'okay' to false explicitly.
WvEncoder()
Creates a new WvEncoder.
virtual bool _isok() const
Template method implementation of isok().
bool encodebufstr(WvBuf &inbuf, WvString &outstr, bool flush=false, bool finish=false)
Encodes data from a buffer to a string.
bool flush(WvBuf &inbuf, WvBuf &outbuf, bool finish=false)
Flushes the encoder and optionally finishes it.
bool flushstrmem(WvStringParm instr, void *outmem, size_t *outlen, bool finish=false)
Flushes data through the encoder from a string to memory.
bool flushstrstr(WvStringParm instr, WvString &outstr, bool finish=false)
Flushes data through the encoder from a string to a string.
virtual WvString _geterror() const
Template method implementation of geterror().
WvString strflushmem(const void *inmem, size_t inlen, bool finish=false)
Flushes data through the encoder from memory to a string.
bool flushbufstr(WvBuf &inbuf, WvString &outstr, bool finish=false)
Flushes data through the encoder from a buffer to a string.
void setfinished()
Sets 'finished' to true explicitly.
virtual bool _reset()
Template method implementation of reset().
virtual bool _isfinished() const
Template method implementation of isfinished().
WvString geterror() const
Returns an error message if any is available.
WvString strflushbuf(WvBuf &inbuf, bool finish=false)
Flushes data through the encoder from a buffer to a string.
virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf, bool flush)=0
Template method implementation of encode().
A WvFastString acts exactly like a WvString, but can take (const char *) strings without needing to a...
An encoder that discards all of its input.
virtual bool _encode(WvBuf &in, WvBuf &out, bool flush)
Template method implementation of encode().
virtual bool _reset()
Template method implementation of reset().
A very efficient passthrough encoder that just merges the input buffer into the output buffer.
virtual bool _encode(WvBuf &in, WvBuf &out, bool flush)
Template method implementation of encode().
virtual bool _reset()
Template method implementation of reset().
size_t bytes_processed()
Returns the number of bytes processed so far.
WvString is an implementation of a simple and efficient printable-string class.