public void ObjectBegin() { SubObjectInstance subObjectInstance; if (this.subObjectInstances.Count > 0) this.parentOffset += this.subObjectInstances.Peek().Stream.Position; subObjectInstance = new SubObjectInstance(this.fieldIndex); this.subObjectInstances.Push(subObjectInstance); }
private void CopyToParent(SubObjectInstance subObjectInstance) { subObjectInstance.Writer.Close(); subObjectInstance.Stream.Seek(0, SeekOrigin.Begin); if (this.subObjectInstances.Count == 0) { subObjectInstance.Stream.CopyTo(this.stream); } else { ProtoWriter destWriter; destWriter = this.subObjectInstances.Peek().Writer; ProtoWriter.WriteFieldHeader(subObjectInstance.Index, WireType.String, destWriter); ProtoWriter.WriteBytes(subObjectInstance.Stream.ToArray(), destWriter); } }