public virtual void Encode(IMessageTree tree, ChannelBuffer buf) { int count = 0; buf.WriteInt(0); // place-holder count += EncodeHeader(tree, buf); if (tree.Message != null) { count += EncodeMessage(tree.Message, buf); } buf.SetInt(0, count); }