Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }