source: branches/comu-ver2/data/module/adodb/session/adodb-compress-bzip2.php @ 18701

Revision 18701, 2.0 KB checked in by nanasess, 14 years ago (diff)

Copyright の更新(#601)

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id Revision Date
  • Property svn:mime-type set to text/x-httpd-php
Line 
1<?php
2
3/*
4v4.992 10 Nov 2009  (c) 2000-2010 John Lim (jlim#natsoft.com). All rights reserved.
5         Contributed by Ross Smith (adodb@netebb.com).
6  Released under both BSD license and Lesser GPL library license.
7  Whenever there is any discrepancy between the two licenses,
8  the BSD license will take precedence.
9      Set tabs to 4 for best viewing.
10
11*/
12
13if (!function_exists('bzcompress')) {
14    trigger_error('bzip2 functions are not available', E_USER_ERROR);
15    return 0;
16}
17
18/*
19*/
20class ADODB_Compress_Bzip2 {
21    /**
22     */
23    var $_block_size = null;
24
25    /**
26     */
27    var $_work_level = null;
28
29    /**
30     */
31    var $_min_length = 1;
32
33    /**
34     */
35    function getBlockSize() {
36        return $this->_block_size;
37    }
38
39    /**
40     */
41    function setBlockSize($block_size) {
42        assert('$block_size >= 1');
43        assert('$block_size <= 9');
44        $this->_block_size = (int) $block_size;
45    }
46
47    /**
48     */
49    function getWorkLevel() {
50        return $this->_work_level;
51    }
52
53    /**
54     */
55    function setWorkLevel($work_level) {
56        assert('$work_level >= 0');
57        assert('$work_level <= 250');
58        $this->_work_level = (int) $work_level;
59    }
60
61    /**
62     */
63    function getMinLength() {
64        return $this->_min_length;
65    }
66
67    /**
68     */
69    function setMinLength($min_length) {
70        assert('$min_length >= 0');
71        $this->_min_length = (int) $min_length;
72    }
73
74    /**
75     */
76    function ADODB_Compress_Bzip2($block_size = null, $work_level = null, $min_length = null) {
77        if (!is_null($block_size)) {
78            $this->setBlockSize($block_size);
79        }
80
81        if (!is_null($work_level)) {
82            $this->setWorkLevel($work_level);
83        }
84
85        if (!is_null($min_length)) {
86            $this->setMinLength($min_length);
87        }
88    }
89
90    /**
91     */
92    function write($data, $key) {
93        if (strlen($data) < $this->_min_length) {
94            return $data;
95        }
96
97        if (!is_null($this->_block_size)) {
98            if (!is_null($this->_work_level)) {
99                return bzcompress($data, $this->_block_size, $this->_work_level);
100            } else {
101                return bzcompress($data, $this->_block_size);
102            }
103        }
104
105        return bzcompress($data);
106    }
107
108    /**
109     */
110    function read($data, $key) {
111        return $data ? bzdecompress($data) : $data;
112    }
113
114}
115
116return 1;
117
118?>
Note: See TracBrowser for help on using the repository browser.