ProtocolBuffers.SerializerCode.GenerateWriter C# (CSharp) Method

GenerateWriter() static private method

Generates code for writing a class/message
static private GenerateWriter ( Message m ) : string
m Message
return string
        static string GenerateWriter(Message m)
        {
            string code = m.OptionAccess + " static void Serialize(Stream stream, " + m.CSType + " instance)\n";
            code += "{\n";
            if (m.OptionTriggers) {
                code += "	instance.BeforeSerialize();\n";
                code += "\n";
            }
            if (GenerateBinaryWriter (m))
                code += "	BinaryWriter bw = new BinaryWriter(stream);\n";

            foreach (Field f in m.Fields.Values) {
                code += Code.Indent (FieldCode.GenerateFieldWriter (m, f));
            }
            code += "}\n\n";

            code += m.OptionAccess + " static byte[] SerializeToBytes(" + m.CSType + " instance)\n";
            code += "{\n";
            code += "	using(MemoryStream ms = new MemoryStream())\n";
            code += "	{\n";
            code += "		Serialize(ms, instance);\n";
            code += "		return ms.ToArray();\n";
            code += "	}\n";
            code += "}\n";

            return code;
        }