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