diff options
Diffstat (limited to 'h-source/External/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php')
-rwxr-xr-x | h-source/External/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/h-source/External/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php b/h-source/External/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php deleted file mode 100755 index 599fd6c..0000000 --- a/h-source/External/swiftmailer/lib/classes/Swift/KeyCache/DiskKeyCache.php +++ /dev/null @@ -1,316 +0,0 @@ -<?php - -/* - * This file is part of SwiftMailer. - * (c) 2004-2009 Chris Corbyn - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -//@require 'Swift/KeyCache.php'; -//@require 'Swift/KeyCacheInputStream.php'; -//@require 'Swift/InputByteStream.php'; -//@require 'Swift/OutputByteStrean.php'; -//@require 'Swift/SwiftException.php'; -//@require 'Swift/IoException.php'; - -/** - * A KeyCache which streams to and from disk. - * @package Swift - * @subpackage KeyCache - * @author Chris Corbyn - */ -class Swift_KeyCache_DiskKeyCache implements Swift_KeyCache -{ - - /** Signal to place pointer at start of file */ - const POSITION_START = 0; - - /** Signal to place pointer at end of file */ - const POSITION_END = 1; - - /** - * An InputStream for cloning. - * @var Swift_KeyCache_KeyCacheInputStream - * @access private - */ - private $_stream; - - /** - * A path to write to. - * @var string - * @access private - */ - private $_path; - - /** - * Stored keys. - * @var array - * @access private - */ - private $_keys = array(); - - /** - * Will be true if magic_quotes_runtime is turned on. - * @var boolean - * @access private - */ - private $_quotes = false; - - /** - * Create a new DiskKeyCache with the given $stream for cloning to make - * InputByteStreams, and the given $path to save to. - * @param Swift_KeyCache_KeyCacheInputStream $stream - * @param string $path to save to - */ - public function __construct(Swift_KeyCache_KeyCacheInputStream $stream, $path) - { - $this->_stream = $stream; - $this->_path = $path; - $this->_quotes = get_magic_quotes_runtime(); - } - - /** - * Set a string into the cache under $itemKey for the namespace $nsKey. - * @param string $nsKey - * @param string $itemKey - * @param string $string - * @param int $mode - * @throws Swift_IoException - * @see MODE_WRITE, MODE_APPEND - */ - public function setString($nsKey, $itemKey, $string, $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) - { - case self::MODE_WRITE: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - break; - case self::MODE_APPEND: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - break; - } - fwrite($fp, $string); - } - - /** - * Set a ByteStream into the cache under $itemKey for the namespace $nsKey. - * @param string $nsKey - * @param string $itemKey - * @param Swift_OutputByteStream $os - * @param int $mode - * @see MODE_WRITE, MODE_APPEND - * @throws Swift_IoException - */ - public function importFromByteStream($nsKey, $itemKey, Swift_OutputByteStream $os, - $mode) - { - $this->_prepareCache($nsKey); - switch ($mode) - { - case self::MODE_WRITE: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - break; - case self::MODE_APPEND: - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); - break; - default: - throw new Swift_SwiftException( - 'Invalid mode [' . $mode . '] used to set nsKey='. - $nsKey . ', itemKey=' . $itemKey - ); - break; - } - while (false !== $bytes = $os->read(8192)) - { - fwrite($fp, $bytes); - } - } - - /** - * Provides a ByteStream which when written to, writes data to $itemKey. - * NOTE: The stream will always write in append mode. - * @param string $nsKey - * @param string $itemKey - * @return Swift_InputByteStream - */ - public function getInputByteStream($nsKey, $itemKey, - Swift_InputByteStream $writeThrough = null) - { - $is = clone $this->_stream; - $is->setKeyCache($this); - $is->setNsKey($nsKey); - $is->setItemKey($itemKey); - if (isset($writeThrough)) - { - $is->setWriteThroughStream($writeThrough); - } - return $is; - } - - /** - * Get data back out of the cache as a string. - * @param string $nsKey - * @param string $itemKey - * @return string - * @throws Swift_IoException - */ - public function getString($nsKey, $itemKey) - { - $this->_prepareCache($nsKey); - if ($this->hasKey($nsKey, $itemKey)) - { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - if ($this->_quotes) - { - set_magic_quotes_runtime(0); - } - $str = ''; - while (!feof($fp) && false !== $bytes = fread($fp, 8192)) - { - $str .= $bytes; - } - if ($this->_quotes) - { - set_magic_quotes_runtime(1); - } - return $str; - } - } - - /** - * Get data back out of the cache as a ByteStream. - * @param string $nsKey - * @param string $itemKey - * @param Swift_InputByteStream $is to write the data to - */ - public function exportToByteStream($nsKey, $itemKey, Swift_InputByteStream $is) - { - if ($this->hasKey($nsKey, $itemKey)) - { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_START); - if ($this->_quotes) - { - set_magic_quotes_runtime(0); - } - while (!feof($fp) && false !== $bytes = fread($fp, 8192)) - { - $is->write($bytes); - } - if ($this->_quotes) - { - set_magic_quotes_runtime(1); - } - } - } - - /** - * Check if the given $itemKey exists in the namespace $nsKey. - * @param string $nsKey - * @param string $itemKey - * @return boolean - */ - public function hasKey($nsKey, $itemKey) - { - return is_file($this->_path . '/' . $nsKey . '/' . $itemKey); - } - - /** - * Clear data for $itemKey in the namespace $nsKey if it exists. - * @param string $nsKey - * @param string $itemKey - */ - public function clearKey($nsKey, $itemKey) - { - if ($this->hasKey($nsKey, $itemKey)) - { - $fp = $this->_getHandle($nsKey, $itemKey, self::POSITION_END); - fclose($fp); - unlink($this->_path . '/' . $nsKey . '/' . $itemKey); - } - unset($this->_keys[$nsKey][$itemKey]); - } - - /** - * Clear all data in the namespace $nsKey if it exists. - * @param string $nsKey - */ - public function clearAll($nsKey) - { - if (array_key_exists($nsKey, $this->_keys)) - { - foreach ($this->_keys[$nsKey] as $itemKey=>$null) - { - $this->clearKey($nsKey, $itemKey); - } - rmdir($this->_path . '/' . $nsKey); - unset($this->_keys[$nsKey]); - } - } - - // -- Private methods - - /** - * Initialize the namespace of $nsKey if needed. - * @param string $nsKey - * @access private - */ - private function _prepareCache($nsKey) - { - $cacheDir = $this->_path . '/' . $nsKey; - if (!is_dir($cacheDir)) - { - if (!mkdir($cacheDir)) - { - throw new Swift_IoException('Failed to create cache directory ' . $cacheDir); - } - $this->_keys[$nsKey] = array(); - } - } - - /** - * Get a file handle on the cache item. - * @param string $nsKey - * @param string $itemKey - * @param int $position - * @return resource - * @access private - */ - private function _getHandle($nsKey, $itemKey, $position) - { - if (!isset($this->_keys[$nsKey]) || !array_key_exists($itemKey, $this->_keys[$nsKey])) - { - $fp = fopen($this->_path . '/' . $nsKey . '/' . $itemKey, 'w+b'); - $this->_keys[$nsKey][$itemKey] = $fp; - } - if (self::POSITION_START == $position) - { - fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_SET); - } - else - { - fseek($this->_keys[$nsKey][$itemKey], 0, SEEK_END); - } - return $this->_keys[$nsKey][$itemKey]; - } - - /** - * Destructor. - */ - public function __destruct() - { - foreach ($this->_keys as $nsKey=>$null) - { - $this->clearAll($nsKey); - } - } - -} |