internal override sealed void EncodeOverride(IBerOutput output) { if (IsDirty) { Update(); } output.WriteBytes(_encodedFrameHeader); foreach (var node in this) { node.Encode(output); } output.WriteBytes(BerEncoding.IndefiniteLengthTerminator); output.Flush(); }
/// <summary> /// Writes the binary BER representaion of this node and its children to output. /// </summary> /// <param name="output">The output to write to.</param> internal override void EncodeOverride(IBerOutput output) { if (IsDirty) { Update(); } output.WriteBytes(_encodedHeader); var orderedNodes = OrderChildren(_nodes); foreach (var node in orderedNodes) { node.Encode(output); } if (Parent == null) // root node { output.Flush(); } }
internal override sealed void EncodeOverride(IBerOutput output) { if(IsDirty) Update(); output.WriteBytes(_encodedFrameHeader); foreach(var node in this) node.Encode(output); output.WriteBytes(BerEncoding.IndefiniteLengthTerminator); output.Flush(); }