From d13c36941c585e84c8986e1eb47a296646cc7a21 Mon Sep 17 00:00:00 2001 From: svncommit Date: Wed, 26 Oct 2005 07:18:10 +0000 Subject: missing mdb2 files --- program/lib/MDB2/LOB.php | 146 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100755 program/lib/MDB2/LOB.php (limited to 'program/lib/MDB2/LOB.php') diff --git a/program/lib/MDB2/LOB.php b/program/lib/MDB2/LOB.php new file mode 100755 index 000000000..c17abc9fb --- /dev/null +++ b/program/lib/MDB2/LOB.php @@ -0,0 +1,146 @@ + | +// +----------------------------------------------------------------------+ +// +// $Id$ + +/** + * @package MDB2 + * @category Database + * @author Lukas Smith + */ + +require_once 'MDB2.php'; + +class MDB2_LOB +{ + var $db_index; + var $lob_index; + var $lob; + + function stream_open($path, $mode, $options, &$opened_path) + { + if (!preg_match('/^rb?\+?$/', $mode)) { + return false; + } + $url = parse_url($path); + if (!array_key_exists('host', $url) && !array_key_exists('user', $url)) { + return false; + } + $this->db_index = $url['host']; + if (!isset($GLOBALS['_MDB2_databases'][$this->db_index])) { + return false; + } + $db =& $GLOBALS['_MDB2_databases'][$this->db_index]; + $this->lob_index = $url['user']; + if (!isset($db->datatype->lobs[$this->lob_index])) { + return false; + } + $this->lob =& $db->datatype->lobs[$this->lob_index]; + $db->datatype->_retrieveLOB($this->lob); + return true; + } + + function stream_read($count) + { + if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) { + $db =& $GLOBALS['_MDB2_databases'][$this->db_index]; + + $data = $db->datatype->_readLOB($this->lob, $count); + $length = strlen($data); + if ($length == 0) { + $this->lob['endOfLOB'] = true; + } + $this->lob['position'] += $length; + return $data; + } + } + + function stream_write($data) + { + return 0; + } + + function stream_tell() + { + return $this->lob['position']; + } + + function stream_eof() + { + if (!isset($GLOBALS['_MDB2_databases'][$this->db_index])) { + return true; + } + $db =& $GLOBALS['_MDB2_databases'][$this->db_index]; + $result = $db->datatype->_endOfLOB($this->lob); + if (version_compare(phpversion(), "5.0", ">=") + && version_compare(phpversion(), "5.1", "<") + ) { + return !$result; + } + return $result; + } + + function stream_seek($offset, $whence) + { + return false; + } + + function stream_close() + { + if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) { + $db =& $GLOBALS['_MDB2_databases'][$this->db_index]; + if (isset($db->datatype->lobs[$this->lob_index])) { + $db->datatype->_destroyLOB($this->lob_index); + unset($db->datatype->lobs[$this->lob_index]); + } + } + } +} + +if (!stream_wrapper_register("MDB2LOB", "MDB2_LOB")) { + MDB2::raiseError(); + return false; +} + +?> \ No newline at end of file -- cgit v1.2.3