vendor/swiftmailer/lib/classes/Swift/InputByteStream.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 
       
     3 /*
       
     4  * This file is part of SwiftMailer.
       
     5  * (c) 2004-2009 Chris Corbyn
       
     6  *
       
     7  * For the full copyright and license information, please view the LICENSE
       
     8  * file that was distributed with this source code.
       
     9  */
       
    10 
       
    11 /**
       
    12  * An abstract means of writing data.
       
    13  * Classes implementing this interface may use a subsystem which requires less
       
    14  * memory than working with large strings of data.
       
    15  * @package Swift
       
    16  * @subpackage ByteStream
       
    17  * @author Chris Corbyn
       
    18  */
       
    19 interface Swift_InputByteStream
       
    20 {
       
    21   
       
    22   /**
       
    23    * Writes $bytes to the end of the stream.
       
    24    * 
       
    25    * Writing may not happen immediately if the stream chooses to buffer.  If
       
    26    * you want to write these bytes with immediate effect, call {@link commit()}
       
    27    * after calling write().
       
    28    * 
       
    29    * This method returns the sequence ID of the write (i.e. 1 for first, 2 for
       
    30    * second, etc etc).
       
    31    *
       
    32    * @param string $bytes
       
    33    * @return int
       
    34    * @throws Swift_IoException
       
    35    */
       
    36   public function write($bytes);
       
    37   
       
    38   /**
       
    39    * For any bytes that are currently buffered inside the stream, force them
       
    40    * off the buffer.
       
    41    * 
       
    42    * @throws Swift_IoException
       
    43    */
       
    44   public function commit();
       
    45   
       
    46   /**
       
    47    * Attach $is to this stream.
       
    48    * The stream acts as an observer, receiving all data that is written.
       
    49    * All {@link write()} and {@link flushBuffers()} operations will be mirrored.
       
    50    * 
       
    51    * @param Swift_InputByteStream $is
       
    52    */
       
    53   public function bind(Swift_InputByteStream $is);
       
    54   
       
    55   /**
       
    56    * Remove an already bound stream.
       
    57    * If $is is not bound, no errors will be raised.
       
    58    * If the stream currently has any buffered data it will be written to $is
       
    59    * before unbinding occurs.
       
    60    * 
       
    61    * @param Swift_InputByteStream $is
       
    62    */
       
    63   public function unbind(Swift_InputByteStream $is);
       
    64   
       
    65   /**
       
    66    * Flush the contents of the stream (empty it) and set the internal pointer
       
    67    * to the beginning.
       
    68    * @throws Swift_IoException
       
    69    */
       
    70   public function flushBuffers();
       
    71   
       
    72 }