first pass at adding required changes
diff --git a/src/ProtocolBuffers.Serialization/AbstractWriter.cs b/src/ProtocolBuffers.Serialization/AbstractWriter.cs
index 6592c1d..50dfe67 100644
--- a/src/ProtocolBuffers.Serialization/AbstractWriter.cs
+++ b/src/ProtocolBuffers.Serialization/AbstractWriter.cs
@@ -44,6 +44,26 @@
public abstract void WriteMessage(IMessageLite message);
/// <summary>
+ /// Used to write any nessary root-message preamble. After this call you can call
+ /// IMessageLite.MergeTo(...) and complete the message with a call to EndMessage().
+ /// These three calls are identical to just calling WriteMessage(message);
+ /// </summary>
+ /// <example>
+ /// AbstractWriter writer;
+ /// writer.StartMessage();
+ /// message.WriteTo(writer);
+ /// writer.EndMessage();
+ /// // ... or, but not both ...
+ /// writer.WriteMessage(message);
+ /// </example>
+ public abstract void StartMessage();
+
+ /// <summary>
+ /// Used to complete a root-message previously started with a call to StartMessage()
+ /// </summary>
+ public abstract void EndMessage();
+
+ /// <summary>
/// Writes a Boolean value
/// </summary>
protected abstract void Write(string field, Boolean value);