Пример #1
0
        public override EsfNode CreateCopy()
        {
            RecordArrayNode node = new RecordArrayNode(Codec, OriginalTypeCode);

            CopyMembers(node);
            return(node);
        }
Пример #2
0
        protected virtual EsfNode ReadRecordArrayNode(BinaryReader reader, byte typeCode)
        {
            RecordArrayNode result = new RecordArrayNode(this);

            result.Decode(reader, EsfType.RECORD_BLOCK);
            return(result);
        }
Пример #3
0
//        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();
            }
        }