Added feature #15998: Create a new API to send mails based on SwiftMailer to replace...
[Packages/TYPO3.CMS.git] / typo3 / contrib / swiftmailer / classes / Swift / InputByteStream.php
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 }