getDebugInstance()->output(sprintf("[%s:] Konstruktor erreicht.
\n",
$this->__toString()
));
// Set description
$this->setPartDescr("BZIP2-Kompressor");
// Create an unique ID
$this->createUniqueID();
}
/**
* Create a new compressor channel based a given compression handler
*
* @return $cInstance An instance of this class
*/
public final static function createBzip2Compressor () {
// Get new instance
if ((function_exists('bzcompress')) && (function_exists('bzdecompress'))) {
// Compressor can maybe be used
$cInstance = new Bzip2Compressor();
// Debug message
if ((defined('DEBUG_COMPRESSOR')) || (defined('DEBUG_ALL'))) $cInstance->getDebugInstance()->output(sprintf("[%s:] BZIP2-Kompression wird verwendet.
\n",
$cInstance->__toString()
));
} else {
// Routines not found!
$cInstance = null;
// Debug message
if ((defined('DEBUG_COMPRESSOR')) || (defined('DEBUG_ALL'))) $cInstance->getDebugInstance()->output(sprintf("[%s:] BZIP2-Kompressionsroutinen nicht gefunden.
\n",
$cInstance->__toString()
));
}
// Return the compressor instance
return $cInstance;
}
/**
* BZIP2 compression stream
*
* @param $streamData Mixed non-object stream data
* @return $streamData The compressed stream data
* @throws InvalidObjectException If the stream is an object
*/
public function compressStream ($streamData) {
if (is_object($streamData)) {
// Throw an exception
throw new InvalidObjectException($streamData, self::EXCEPTION_UNEXPECTED_OBJECT);
}
// Return the compressed stream
return bzcompress($streamData, 1);
}
/**
* BZIP2 decompression stream
*
* @param $streamData Mixed non-object stream data
* @return $streamData The decompressed stream data
* @throws InvalidObjectException If the stream is an object
*/
public function decompressStream ($streamData) {
if (is_object($streamData)) {
// Throw an exception
throw new InvalidObjectException($streamData, self::EXCEPTION_UNEXPECTED_OBJECT);
}
// Return the decompressed stream
return bzdecompress($streamData);
}
/**
* Getter for the file extension of this compressor
*
* @return $string Returns always "bz2"
*/
public final function getCompressorExtension () {
if ((defined('DEBUG_COMPRESSOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:] Dateierweiterung angefordert.
\n",
$this->__toString()
));
return "bz2";
}
}
// [EOF]
?>