blob: 9ff33b05d6617ede45c370f819978c4784545d9a [file] [log] [blame]
Jon Skeet68036862008-10-22 13:30:34 +01001using System;
2using System.Collections.Generic;
3using System.Text;
4using System.IO;
5
6namespace Google.ProtocolBuffers {
7 /// <summary>
8 /// Writes multiple messages to the same stream. Each message is written
9 /// as if it were an element of a repeated field 1 in a larger protocol buffer.
10 /// This class takes no ownership of the stream it is given; it never closes the
11 /// stream.
12 /// </summary>
13 public sealed class MessageStreamWriter<T> where T : IMessage<T> {
14
15 private readonly CodedOutputStream codedOutput;
16
17 /// <summary>
18 /// Creates an instance which writes to the given stream.
19 /// </summary>
20 /// <param name="output">Stream to write messages to.</param>
21 public MessageStreamWriter(Stream output) {
22 codedOutput = CodedOutputStream.CreateInstance(output);
23 }
24
25 public void Write(T message) {
26 codedOutput.WriteMessage(1, message);
27 }
28
29 public void Flush() {
30 codedOutput.Flush();
31 }
32 }
33}