|
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 } |