| 
<?php
 /*
 V5.18 3 Sep 2012  (c) 2000-2012 John Lim (jlim#natsoft.com). All rights reserved.
 Contributed by Ross Smith ([email protected]).
 Released under both BSD license and Lesser GPL library license.
 Whenever there is any discrepancy between the two licenses,
 the BSD license will take precedence.
 Set tabs to 4 for best viewing.
 
 */
 
 if (!function_exists('bzcompress')) {
 trigger_error('bzip2 functions are not available', E_USER_ERROR);
 return 0;
 }
 
 /*
 */
 class ADODB_Compress_Bzip2 {
 /**
 */
 var $_block_size = null;
 
 /**
 */
 var $_work_level = null;
 
 /**
 */
 var $_min_length = 1;
 
 /**
 */
 function getBlockSize() {
 return $this->_block_size;
 }
 
 /**
 */
 function setBlockSize($block_size) {
 assert('$block_size >= 1');
 assert('$block_size <= 9');
 $this->_block_size = (int) $block_size;
 }
 
 /**
 */
 function getWorkLevel() {
 return $this->_work_level;
 }
 
 /**
 */
 function setWorkLevel($work_level) {
 assert('$work_level >= 0');
 assert('$work_level <= 250');
 $this->_work_level = (int) $work_level;
 }
 
 /**
 */
 function getMinLength() {
 return $this->_min_length;
 }
 
 /**
 */
 function setMinLength($min_length) {
 assert('$min_length >= 0');
 $this->_min_length = (int) $min_length;
 }
 
 /**
 */
 function ADODB_Compress_Bzip2($block_size = null, $work_level = null, $min_length = null) {
 if (!is_null($block_size)) {
 $this->setBlockSize($block_size);
 }
 
 if (!is_null($work_level)) {
 $this->setWorkLevel($work_level);
 }
 
 if (!is_null($min_length)) {
 $this->setMinLength($min_length);
 }
 }
 
 /**
 */
 function write($data, $key) {
 if (strlen($data) < $this->_min_length) {
 return $data;
 }
 
 if (!is_null($this->_block_size)) {
 if (!is_null($this->_work_level)) {
 return bzcompress($data, $this->_block_size, $this->_work_level);
 } else {
 return bzcompress($data, $this->_block_size);
 }
 }
 
 return bzcompress($data);
 }
 
 /**
 */
 function read($data, $key) {
 return $data ? bzdecompress($data) : $data;
 }
 
 }
 
 return 1;
 
 ?>
 
 |