source: sandbox/2.5.1-evolucao/phpgwapi/inc/adodb/session/adodb-compress-bzip2.php @ 8222

Revision 8222, 2.0 KB checked in by angelo, 11 years ago (diff)

Ticket #3491 - Compatibilizar Expresso com novas versoes do PHP

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2
3/*
4V5.18 3 Sep 2012  (c) 2000-2012 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.