MessageStreamWriter.cs 966 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.IO;
  5. namespace Google.ProtocolBuffers {
  6. /// <summary>
  7. /// Writes multiple messages to the same stream. Each message is written
  8. /// as if it were an element of a repeated field 1 in a larger protocol buffer.
  9. /// This class takes no ownership of the stream it is given; it never closes the
  10. /// stream.
  11. /// </summary>
  12. public sealed class MessageStreamWriter<T> where T : IMessage<T> {
  13. private readonly CodedOutputStream codedOutput;
  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. public void Write(T message) {
  22. codedOutput.WriteMessage(1, message);
  23. }
  24. public void Flush() {
  25. codedOutput.Flush();
  26. }
  27. }
  28. }