File indexing completed on 2024-05-12 06:02:47

0001 <?php
0002 /**
0003  * Zend Framework
0004  *
0005  * LICENSE
0006  *
0007  * This source file is subject to the new BSD license that is bundled
0008  * with this package in the file LICENSE.txt.
0009  * It is also available through the world-wide-web at this URL:
0010  * http://framework.zend.com/license/new-bsd
0011  * If you did not receive a copy of the license and are unable to
0012  * obtain it through the world-wide-web, please send an email
0013  * to license@zend.com so we can send you a copy immediately.
0014  *
0015  * @category  Zend
0016  * @package   Zend_Measure
0017  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0018  * @license   http://framework.zend.com/license/new-bsd     New BSD License
0019  * @version   $Id$
0020  */
0021 
0022 /**
0023  * Implement needed classes
0024  */
0025 // require_once 'Zend/Measure/Abstract.php';
0026 // require_once 'Zend/Locale.php';
0027 
0028 /**
0029  * Class for handling binary conversions
0030  *
0031  * @category   Zend
0032  * @package    Zend_Measure
0033  * @subpackage Zend_Measure_Binary
0034  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0035  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0036  */
0037 class Zend_Measure_Binary extends Zend_Measure_Abstract
0038 {
0039     const STANDARD = 'BYTE';
0040 
0041     const BIT               = 'BIT';
0042     const CRUMB             = 'CRUMB';
0043     const NIBBLE            = 'NIBBLE';
0044     const BYTE              = 'BYTE';
0045     const KILOBYTE          = 'KILOBYTE';
0046     const KIBIBYTE          = 'KIBIBYTE';
0047     const KILO_BINARY_BYTE  = 'KILO_BINARY_BYTE';
0048     const KILOBYTE_SI       = 'KILOBYTE_SI';
0049     const MEGABYTE          = 'MEGABYTE';
0050     const MEBIBYTE          = 'MEBIBYTE';
0051     const MEGA_BINARY_BYTE  = 'MEGA_BINARY_BYTE';
0052     const MEGABYTE_SI       = 'MEGABYTE_SI';
0053     const GIGABYTE          = 'GIGABYTE';
0054     const GIBIBYTE          = 'GIBIBYTE';
0055     const GIGA_BINARY_BYTE  = 'GIGA_BINARY_BYTE';
0056     const GIGABYTE_SI       = 'GIGABYTE_SI';
0057     const TERABYTE          = 'TERABYTE';
0058     const TEBIBYTE          = 'TEBIBYTE';
0059     const TERA_BINARY_BYTE  = 'TERA_BINARY_BYTE';
0060     const TERABYTE_SI       = 'TERABYTE_SI';
0061     const PETABYTE          = 'PETABYTE';
0062     const PEBIBYTE          = 'PEBIBYTE';
0063     const PETA_BINARY_BYTE  = 'PETA_BINARY_BYTE';
0064     const PETABYTE_SI       = 'PETABYTE_SI';
0065     const EXABYTE           = 'EXABYTE';
0066     const EXBIBYTE          = 'EXBIBYTE';
0067     const EXA_BINARY_BYTE   = 'EXA_BINARY_BYTE';
0068     const EXABYTE_SI        = 'EXABYTE_SI';
0069     const ZETTABYTE         = 'ZETTABYTE';
0070     const ZEBIBYTE          = 'ZEBIBYTE';
0071     const ZETTA_BINARY_BYTE = 'ZETTA_BINARY_BYTE';
0072     const ZETTABYTE_SI      = 'ZETTABYTE_SI';
0073     const YOTTABYTE         = 'YOTTABYTE';
0074     const YOBIBYTE          = 'YOBIBYTE';
0075     const YOTTA_BINARY_BYTE = 'YOTTA_BINARY_BYTE';
0076     const YOTTABYTE_SI      = 'YOTTABYTE_SI';
0077 
0078     /**
0079      * Calculations for all binary units
0080      *
0081      * @var array
0082      */
0083     protected $_units = array(
0084         'BIT'              => array('0.125',                     'b'),
0085         'CRUMB'            => array('0.25',                      'crumb'),
0086         'NIBBLE'           => array('0.5',                       'nibble'),
0087         'BYTE'             => array('1',                         'B'),
0088         'KILOBYTE'         => array('1024',                      'kB'),
0089         'KIBIBYTE'         => array('1024',                      'KiB'),
0090         'KILO_BINARY_BYTE' => array('1024',                      'KiB'),
0091         'KILOBYTE_SI'      => array('1000',                      'kB.'),
0092         'MEGABYTE'         => array('1048576',                   'MB'),
0093         'MEBIBYTE'         => array('1048576',                   'MiB'),
0094         'MEGA_BINARY_BYTE' => array('1048576',                   'MiB'),
0095         'MEGABYTE_SI'      => array('1000000',                   'MB.'),
0096         'GIGABYTE'         => array('1073741824',                'GB'),
0097         'GIBIBYTE'         => array('1073741824',                'GiB'),
0098         'GIGA_BINARY_BYTE' => array('1073741824',                'GiB'),
0099         'GIGABYTE_SI'      => array('1000000000',                'GB.'),
0100         'TERABYTE'         => array('1099511627776',             'TB'),
0101         'TEBIBYTE'         => array('1099511627776',             'TiB'),
0102         'TERA_BINARY_BYTE' => array('1099511627776',             'TiB'),
0103         'TERABYTE_SI'      => array('1000000000000',             'TB.'),
0104         'PETABYTE'         => array('1125899906842624',          'PB'),
0105         'PEBIBYTE'         => array('1125899906842624',          'PiB'),
0106         'PETA_BINARY_BYTE' => array('1125899906842624',          'PiB'),
0107         'PETABYTE_SI'      => array('1000000000000000',          'PB.'),
0108         'EXABYTE'          => array('1152921504606846976',       'EB'),
0109         'EXBIBYTE'         => array('1152921504606846976',       'EiB'),
0110         'EXA_BINARY_BYTE'  => array('1152921504606846976',       'EiB'),
0111         'EXABYTE_SI'       => array('1000000000000000000',       'EB.'),
0112         'ZETTABYTE'        => array('1180591620717411303424',    'ZB'),
0113         'ZEBIBYTE'         => array('1180591620717411303424',    'ZiB'),
0114         'ZETTA_BINARY_BYTE'=> array('1180591620717411303424',    'ZiB'),
0115         'ZETTABYTE_SI'     => array('1000000000000000000000',    'ZB.'),
0116         'YOTTABYTE'        => array('1208925819614629174706176', 'YB'),
0117         'YOBIBYTE'         => array('1208925819614629174706176', 'YiB'),
0118         'YOTTA_BINARY_BYTE'=> array('1208925819614629174706176', 'YiB'),
0119         'YOTTABYTE_SI'     => array('1000000000000000000000000', 'YB.'),
0120         'STANDARD'         => 'BYTE'
0121     );
0122 }