Yate
Compressor Class Referenceabstract

An abstract data (de)compressor. More...

#include <yateclass.h>

Inheritance diagram for Compressor:
String GenObject

Public Member Functions

 Compressor (const char *format, const char *name=0)
virtual ~Compressor ()
const Stringformat () const
virtual bool init (bool comp=true, bool decomp=true, const NamedList &params=NamedList::empty())
virtual void finalize (bool comp)
virtual int compress (const void *buf, unsigned int len, DataBlock &dest)
virtual int decompress (const void *buf, unsigned int len, DataBlock &dest)
virtual int writeComp (const void *buf, unsigned int len, bool flush)=0
int writeComp (const DataBlock &data, bool flush)
int writeComp (const String &data, bool flush)
virtual int readComp (DataBlock &buf, bool flush)=0
virtual int writeDecomp (const void *buf, unsigned int len, bool flush)=0
int writeDecomp (const DataBlock &data, bool flush)
int writeDecomp (const String &data, bool flush)
virtual int readDecomp (DataBlock &buf, bool flush)=0
Public Member Functions inherited from String
 String ()
 String (const char *value, int len=-1)
 String (char value, unsigned int repeat=1)
 String (int32_t value)
 String (uint32_t value)
 String (int64_t value)
 String (uint64_t value)
 String (bool value)
 String (double value)
 String (const String &value)
 String (const String *value)
virtual ~String ()
virtual void * getObject (const String &name) const
const char * c_str () const
const char * safe () const
const char * safe (const char *defStr) const
unsigned int length () const
bool null () const
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
unsigned int encodeFlags (const TokenDict *tokens) const
uint64_t encodeFlags (const TokenDict64 *tokens) const
StringdecodeFlags (unsigned int flags, const TokenDict *tokens, bool unknownflag=true)
StringdecodeFlags (uint64_t flags, const TokenDict64 *tokens, bool unknownflag=true)
bool checkBOM () const
bool stripBOM ()
unsigned int hash () const
void clear ()
char at (int index) const
String substr (int offs, int len=-1) const
StringtrimBlanks ()
StringtrimSpaces ()
virtual const StringtoString () const
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
int toInteger (const TokenDictStr *tokens, int defvalue=0, int base=0) const
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
int64_t toInt64Dict (const TokenDict64 *tokens, int64_t defvalue=0, int base=0) const
int64_t toInt64Dict (const TokenDictStr64 *tokens, int64_t defvalue=0, int base=0) const
uint64_t toUInt64 (uint64_t defvalue=0, int base=0, uint64_t minvalue=0, uint64_t maxvalue=ULLONG_MAX, bool clamp=true) const
double toDouble (double defvalue=0.0) const
bool toBoolean (bool defvalue=false) const
bool isBoolean () const
StringtoUpper ()
StringtoLower ()
char operator[] (signed int index) const
char operator[] (unsigned int index) const
 operator const char * () const
Stringassign (const char *value, int len=-1)
Stringassign (char value, unsigned int repeat=1)
Stringhexify (const void *data, unsigned int len, char sep=0, bool upCase=false)
Stringoperator= (const String &value)
Stringoperator= (const String *value)
Stringoperator= (const char *value)
Stringoperator= (char value)
Stringoperator= (int32_t value)
Stringoperator= (uint32_t value)
Stringoperator= (int64_t value)
Stringoperator= (uint64_t value)
Stringoperator= (bool value)
Stringoperator= (double value)
Stringoperator+= (const char *value)
Stringoperator+= (char value)
Stringoperator+= (int32_t value)
Stringoperator+= (uint32_t value)
Stringoperator+= (int64_t value)
Stringoperator+= (uint64_t value)
Stringoperator+= (bool value)
Stringoperator+= (double value)
bool operator== (const char *value) const
bool operator!= (const char *value) const
bool operator== (const String &value) const
bool operator!= (const String &value) const
bool operator&= (const char *value) const
bool operator|= (const char *value) const
Stringoperator<< (const char *value)
Stringoperator<< (char value)
Stringoperator<< (int32_t value)
Stringoperator<< (uint32_t value)
Stringoperator<< (int64_t value)
Stringoperator<< (uint64_t value)
Stringoperator<< (bool value)
Stringoperator<< (double value)
Stringoperator>> (const char *skip)
Stringoperator>> (char &store)
Stringoperator>> (UChar &store)
Stringoperator>> (int &store)
Stringoperator>> (unsigned int &store)
Stringoperator>> (bool &store)
Stringappend (const char *value, int len)
Stringappend (const char *value, const char *separator=0, bool force=false)
Stringappend (const ObjList *list, const char *separator=0, bool force=false)
Stringappend (const ObjList &list, const char *separator=0, bool force=false)
Stringappend (char value, unsigned int len=1)
Stringappend (double value, unsigned int decimals=3)
Stringinsert (unsigned int pos, const char *value, int len=-1)
Stringinsert (unsigned int pos, char value, unsigned int len=1)
Stringprintf (const char *format,...)
Stringprintf (unsigned int length, const char *format,...)
StringprintfAppend (const char *format,...)
StringprintfAppend (unsigned int length, const char *format,...)
StringappendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill=' ', int align=Left)
StringappendFixed (unsigned int fixedLength, const String &str, char fill=' ', int align=Left)
int find (char what, unsigned int offs=0) const
int find (const char *what, unsigned int offs=0) const
int rfind (char what) const
int rfind (const char *what) const
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
StringreplaceChars (const char *what, const char *repl, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
StringremoveChars (const char *what, int wLen=-1, bool *chg=0)
StringextractTo (const char *sep, String &store)
StringextractTo (const char *sep, bool &store)
StringextractTo (const char *sep, int &store, int base=0)
StringextractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
StringextractTo (const char *sep, double &store)
virtual bool matches (const String &value) const
bool matches (const Regexp &rexp)
int matchOffset (int index=0) const
int matchLength (int index=0) const
String matchString (int index=0) const
String replaceMatches (const String &templ) const
int matchCount () const
ObjListsplit (ObjList &list, char separator, bool emptyOK=true) const
ObjListsplit (ObjList &list, const Regexp &reg, bool emptyOK=true) const
ObjListsplit (char separator, bool emptyOK=true) const
ObjListsplit (const Regexp &reg, bool emptyOK=true) const
String msgEscape (char extraEsc=0) const
String msgUnescape (int *errptr=0, char extraEsc=0) const
String sqlEscape (char extraEsc=0) const
StringuriEscapeTo (String &buf, char extraEsc=0, const char *noEsc=0) const
String uriEscape (char extraEsc=0, const char *noEsc=0) const
StringuriUnescapeTo (String &buf, bool setPartial=false, int *errptr=0) const
StringuriUnescapeStr (bool setPartial=false, int *errptr=0)
String uriUnescape (int *errptr=0, bool setPartial=true) const
Public Member Functions inherited from GenObject
 GenObject ()
virtual ~GenObject ()
virtual bool alive () const
virtual void destruct ()
virtual const StringtraceId () const
NamedCountergetObjCounter () const
NamedCountersetObjCounter (NamedCounter *counter)

Protected Attributes

String m_format

Additional Inherited Members

Public Types inherited from String
enum  Align { Left = 0 , Center , Right }
Static Public Member Functions inherited from String
static const Stringempty ()
static const char * boolText (bool value)
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
static bool checkBOM (const char *str)
static bool stripBOM (const char *&str)
static bool stripBOM (char *&str)
static unsigned int hash (const char *value, unsigned int h=0)
static String msgEscape (const char *str, char extraEsc=0)
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
static String sqlEscape (const char *str, char extraEsc=0)
static StringuriEscapeTo (String &buf, const char *str, char extraEsc=0, const char *noEsc=0)
static StringuriEscapeTo (String &buf, const char *str, const char *extraEsc, const char *noEsc=0)
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
static StringuriUnescapeTo (String &buf, const char *str, bool setPartial=false, int *errptr=0)
static String uriUnescape (const char *str, int *errptr=0, bool setPartial=true)
static const Stringatom (const String *&str, const char *val)
static unsigned int c_starts_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_ends_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_skip (const char *&str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int c_skip_chars (const char *&str, const char *what, int len=-1, bool skipFound=true)
static char * c_replace_chars (const char *str, const char *what, const char *repl=0, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
static bool getObjCounting ()
static void setObjCounting (bool enable)
static NamedCountergetObjCounter (const String &name, bool create=true)
static ObjListgetObjCounters ()
Protected Member Functions inherited from String
virtual void changed ()

Detailed Description

An abstract data (de)compressor.

The Compressor class provides an abstraction for data (de)compressor classes. The String component keeps an optional object name to be used for debug purposes

Constructor & Destructor Documentation

◆ Compressor()

Compressor ( const char * format,
const char * name = 0 )
inline

Constructor

Parameters
formatCompression format
nameOptional object name

References format(), and String::String().

◆ ~Compressor()

virtual ~Compressor ( )
inlinevirtual

Destructor

Member Function Documentation

◆ compress()

virtual int compress ( const void * buf,
unsigned int len,
DataBlock & dest )
virtual

Compress the input buffer, flush all pending data, append compressed data to the received data block

Parameters
bufPointer to input data
lenLength of input in bytes
destDestination buffer
Returns
The number of bytes wrote to compressor, negative on error

◆ decompress()

virtual int decompress ( const void * buf,
unsigned int len,
DataBlock & dest )
virtual

Decompress the input buffer, flush all pending data, append decompressed data to the received data block

Parameters
bufPointer to input data
lenLength of input in bytes
destDestination buffer
Returns
The number of bytes wrote to decompressor, negative on error

◆ finalize()

virtual void finalize ( bool comp)
inlinevirtual

Finalize the (de)compression

Parameters
compTrue to finalize compression, false to finalize decompression

◆ format()

const String & format ( ) const
inline

Retrieve (de)compressor format

Returns
The format of this (de)compressor

References String::String().

Referenced by Compressor().

◆ init()

virtual bool init ( bool comp = true,
bool decomp = true,
const NamedList & params = NamedList::empty() )
inlinevirtual

Initialize

Parameters
compTrue to initialize compressor
decompTrue to initialize decompressor
paramsOptional parameters
Returns
True on success

References NamedList::empty().

◆ readComp()

virtual int readComp ( DataBlock & buf,
bool flush )
pure virtual

Read data from compressor. Append it to 'buf'

Parameters
bufDestination data block
flushTrue to flush all compressor input data
Returns
The number of bytes read, negative on error

◆ readDecomp()

virtual int readDecomp ( DataBlock & buf,
bool flush )
pure virtual

Read data from decompressor. Append it to 'buf'

Parameters
bufDestination data block
flushTrue to flush all decompressor input data
Returns
The number of bytes read, negative on error

References String::String().

◆ writeComp() [1/3]

int writeComp ( const DataBlock & data,
bool flush )
inline

Push data to compressor

Parameters
dataInput data block
flushTrue to compress all now, false to let the compressor accumulate more data for better compression
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

References DataBlock::data(), DataBlock::length(), and writeComp().

◆ writeComp() [2/3]

int writeComp ( const String & data,
bool flush )
inline

Push data to compressor

Parameters
dataInput string
flushTrue to compress all now, false to let the compressor accumulate more data for better compression
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

References String::c_str(), String::length(), String::String(), and writeComp().

◆ writeComp() [3/3]

virtual int writeComp ( const void * buf,
unsigned int len,
bool flush )
pure virtual

Push data to compressor. Flush compressor input if input buffer is NULL or the length is 0 and flush is true

Parameters
bufPointer to input data
lenLength of input in bytes
flushTrue to compress all now, false to let the compressor accumulate more data for better compression
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

Referenced by writeComp(), and writeComp().

◆ writeDecomp() [1/3]

int writeDecomp ( const DataBlock & data,
bool flush )
inline

Push data to decompressor

Parameters
dataInput data block
flushTrue to try to decompress all data
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

References DataBlock::data(), DataBlock::length(), and writeDecomp().

◆ writeDecomp() [2/3]

int writeDecomp ( const String & data,
bool flush )
inline

Push data to decompressor

Parameters
dataInput string
flushTrue to try to decompress all data
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

References String::c_str(), String::length(), String::String(), and writeDecomp().

◆ writeDecomp() [3/3]

virtual int writeDecomp ( const void * buf,
unsigned int len,
bool flush )
pure virtual

Push data to decompressor

Parameters
bufPointer to input data
lenLength of input in bytes
flushTrue to try to decompress all data
Returns
The number of bytes written, negative on error. An incomplete write may occur if the output buffer is full

Referenced by writeDecomp(), and writeDecomp().


The documentation for this class was generated from the following file: