Removed dep on API
[ninja.git] / application / vendor / swiftmailer / classes / Swift / InputByteStream.php
blobe8f45f4a3f36f2bed92399e87ea67f238e3c61cc
1 <?php
3 /*
4 * This file is part of SwiftMailer.
5 * (c) 2004-2009 Chris Corbyn
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
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
19 interface Swift_InputByteStream
22 /**
23 * Writes $bytes to the end of the stream.
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().
29 * This method returns the sequence ID of the write (i.e. 1 for first, 2 for
30 * second, etc etc).
32 * @param string $bytes
33 * @return int
34 * @throws Swift_IoException
36 public function write($bytes);
38 /**
39 * For any bytes that are currently buffered inside the stream, force them
40 * off the buffer.
42 * @throws Swift_IoException
44 public function commit();
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.
51 * @param Swift_InputByteStream $is
53 public function bind(Swift_InputByteStream $is);
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.
61 * @param Swift_InputByteStream $is
63 public function unbind(Swift_InputByteStream $is);
65 /**
66 * Flush the contents of the stream (empty it) and set the internal pointer
67 * to the beginning.
68 * @throws Swift_IoException
70 public function flushBuffers();