Documentation TYPO3 par Ameos |
00001 <?php 00002 00003 /* 00004 V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved. 00005 Contributed by Ross Smith (adodb@netebb.com). 00006 Released under both BSD license and Lesser GPL library license. 00007 Whenever there is any discrepancy between the two licenses, 00008 the BSD license will take precedence. 00009 Set tabs to 4 for best viewing. 00010 00011 */ 00012 00013 if (!function_exists('bzcompress')) { 00014 trigger_error('bzip2 functions are not available', E_USER_ERROR); 00015 return 0; 00016 } 00017 00018 /* 00019 */ 00020 class ADODB_Compress_Bzip2 { 00023 var $_block_size = null; 00024 00027 var $_work_level = null; 00028 00031 var $_min_length = 1; 00032 00035 function getBlockSize() { 00036 return $this->_block_size; 00037 } 00038 00041 function setBlockSize($block_size) { 00042 assert('$block_size >= 1'); 00043 assert('$block_size <= 9'); 00044 $this->_block_size = (int) $block_size; 00045 } 00046 00049 function getWorkLevel() { 00050 return $this->_work_level; 00051 } 00052 00055 function setWorkLevel($work_level) { 00056 assert('$work_level >= 0'); 00057 assert('$work_level <= 250'); 00058 $this->_work_level = (int) $work_level; 00059 } 00060 00063 function getMinLength() { 00064 return $this->_min_length; 00065 } 00066 00069 function setMinLength($min_length) { 00070 assert('$min_length >= 0'); 00071 $this->_min_length = (int) $min_length; 00072 } 00073 00076 function ADODB_Compress_Bzip2($block_size = null, $work_level = null, $min_length = null) { 00077 if (!is_null($block_size)) { 00078 $this->setBlockSize($block_size); 00079 } 00080 00081 if (!is_null($work_level)) { 00082 $this->setWorkLevel($work_level); 00083 } 00084 00085 if (!is_null($min_length)) { 00086 $this->setMinLength($min_length); 00087 } 00088 } 00089 00092 function write($data, $key) { 00093 if (strlen($data) < $this->_min_length) { 00094 return $data; 00095 } 00096 00097 if (!is_null($this->_block_size)) { 00098 if (!is_null($this->_work_level)) { 00099 return bzcompress($data, $this->_block_size, $this->_work_level); 00100 } else { 00101 return bzcompress($data, $this->_block_size); 00102 } 00103 } 00104 00105 return bzcompress($data); 00106 } 00107 00110 function read($data, $key) { 00111 return $data ? bzdecompress($data) : $data; 00112 } 00113 00114 } 00115 00116 return 1; 00117 00118 ?>