Annotation of embedaddon/php/ext/spl/examples/dbareader.inc, revision 1.1

1.1     ! misho       1: <?php
        !             2: 
        !             3: /** @file dbareader.inc
        !             4:  * @ingroup Examples
        !             5:  * @brief class DbaReader
        !             6:  * @author  Marcus Boerger
        !             7:  * @date    2003 - 2005
        !             8:  *
        !             9:  * SPL - Standard PHP Library
        !            10:  */
        !            11: 
        !            12: /** @ingroup Examples
        !            13:  * @brief   This implements a DBA Iterator.
        !            14:  * @author  Marcus Boerger
        !            15:  * @version 1.0
        !            16:  */
        !            17: class DbaReader implements Iterator
        !            18: {
        !            19: 
        !            20:        protected $db = NULL;
        !            21:        private $key = false;
        !            22:        private $val = false;
        !            23: 
        !            24:        /**
        !            25:         * Open database $file with $handler in read only mode.
        !            26:         *
        !            27:         * @param file    Database file to open.
        !            28:         * @param handler Handler to use for database access.
        !            29:         */
        !            30:        function __construct($file, $handler) {
        !            31:                if (!$this->db = dba_open($file, 'r', $handler)) {
        !            32:                    throw new exception('Could not open file ' . $file);
        !            33:                }
        !            34:        }
        !            35:        
        !            36:        /**
        !            37:         * Close database.
        !            38:         */
        !            39:        function __destruct() {
        !            40:                dba_close($this->db);
        !            41:        }
        !            42: 
        !            43:        /**
        !            44:         * Rewind to first element.
        !            45:         */
        !            46:        function rewind() {
        !            47:                $this->key = dba_firstkey($this->db);
        !            48:                $this->fetch_data();
        !            49:        }
        !            50: 
        !            51:        /**
        !            52:         * Move to next element.
        !            53:         *
        !            54:         * @return void
        !            55:         */
        !            56:        function next() {
        !            57:                $this->key = dba_nextkey($this->db);
        !            58:                $this->fetch_data();
        !            59:        }
        !            60: 
        !            61:     /**
        !            62:      * Fetches the current data if $key is valid
        !            63:      */        
        !            64:        private function fetch_data() {
        !            65:                if ($this->key !== false) {
        !            66:                        $this->val = dba_fetch($this->key, $this->db);
        !            67:                }
        !            68:        }
        !            69: 
        !            70:        /**
        !            71:         * @return Current data.
        !            72:         */
        !            73:        function current() {
        !            74:                return $this->val;
        !            75:        }
        !            76: 
        !            77:        /**
        !            78:         * @return Whether more elements are available.
        !            79:         */
        !            80:        function valid() {
        !            81:                if ($this->db && $this->key !== false) {
        !            82:                        return true;
        !            83:                } else {
        !            84:                        return false;
        !            85:                }
        !            86:        }
        !            87: 
        !            88:        /**
        !            89:         * @return Current key.
        !            90:         */
        !            91:        function key() {
        !            92:                return $this->key;
        !            93:        }
        !            94: }
        !            95: 
        !            96: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>