| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- <?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.
 -  */
 - 
 - 
 - /**
 -  * Provides fixed-width byte sizes for reading fixed-width character sets.
 -  * @package Swift
 -  * @subpackage Encoder
 -  * @author Chris Corbyn
 -  * @author Xavier De Cock <xdecock@gmail.com>
 -  */
 - class Swift_CharacterReader_GenericFixedWidthReader
 -   implements Swift_CharacterReader
 - {
 -    
 -   /**
 -    * The number of bytes in a single character.
 -    * @var int
 -    * @access private
 -    */
 -   private $_width;
 - 	
 -   /**
 -    * Creates a new GenericFixedWidthReader using $width bytes per character.
 -    * @param int $width
 -    */
 -   public function __construct($width)
 -   {
 -     $this->_width = $width;
 -   }
 - 
 -   /**
 -    * Returns the complete charactermap
 -    *
 -    * @param string $string
 -    * @param int $startOffset
 -    * @param array $currentMap
 -    * @param mixed $ignoredChars
 -    * @return $int
 -    */
 -   public function getCharPositions($string, $startOffset, &$currentMap, &$ignoredChars)
 -   {
 -   	$strlen = strlen($string);
 -   	// % and / are CPU intensive, so, maybe find a better way
 -   	$ignored = $strlen%$this->_width;
 -   	$ignoredChars = substr($string, - $ignored);
 -   	$currentMap = $this->_width;
 -   	return ($strlen - $ignored)/$this->_width;
 -   	
 -   }
 -   
 -   /**
 -    * Returns mapType
 -    * @int mapType
 -    */
 -   public function getMapType()
 -   {
 -   	return self::MAP_TYPE_FIXED_LEN;
 -   }
 - 
 -   /**
 -    * Returns an integer which specifies how many more bytes to read.
 -    * A positive integer indicates the number of more bytes to fetch before invoking
 -    * this method again.
 -    * A value of zero means this is already a valid character.
 -    * A value of -1 means this cannot possibly be a valid character.
 -    * @param string $bytes
 -    * @return int
 -    */
 -   public function validateByteSequence($bytes, $size)
 -   {
 -     $needed = $this->_width - $size;
 -     return ($needed > -1)
 -       ? $needed
 -       : -1
 -       ;
 -   }
 - 
 -   /**
 -    * Returns the number of bytes which should be read to start each character.
 -    * @return int
 -    */
 -   public function getInitialByteSize()
 -   {
 -     return $this->_width;
 -   }
 - 
 - }
 
 
  |