public override EsfNode CreateCopy() { RecordArrayNode node = new RecordArrayNode(Codec, OriginalTypeCode); CopyMembers(node); return(node); }
protected virtual EsfNode ReadRecordArrayNode(BinaryReader reader, byte typeCode) { RecordArrayNode result = new RecordArrayNode(this); result.Decode(reader, EsfType.RECORD_BLOCK); return(result); }
// protected virtual void WriteRecordArrayNode(BinaryWriter writer, EsfNode node) { // NamedNode recordBlockNode = node as NamedNode; // ushort nameIndex = (ushort)nodeNames.IndexOfValue(recordBlockNode.Name); // WriteRecordInfo(writer, (byte) EsfType.RECORD_BLOCK, nameIndex, recordBlockNode.Version); // long beforePosition = writer.BaseStream.Position; // writer.Seek(4, SeekOrigin.Current); // // write number of entries // WriteSize(writer, recordBlockNode.AllNodes.Count); // foreach (EsfNode child in recordBlockNode.AllNodes) { // EncodeSized(writer, (child as ParentNode).AllNodes); // } //// EncodeSized(writer, recordBlockNode.AllNodes); // long afterPosition = writer.BaseStream.Position; // writer.BaseStream.Seek(beforePosition, SeekOrigin.Begin); // WriteSize(writer, afterPosition); // writer.BaseStream.Seek(afterPosition, SeekOrigin.Begin); // } protected void WriteRecordArrayNode(BinaryWriter writer, EsfNode node) { RecordArrayNode recordBlockNode = node as RecordArrayNode; if (recordBlockNode != null) { recordBlockNode.Encode(writer); } else { throw new InvalidOperationException(); } }