Пример #1
0
 public EsfFile(Stream stream, EsfCodec codec)
 {
     using (var reader = new BinaryReader(stream)) {
         Codec    = codec;
         RootNode = Codec.Parse(reader);
     }
 }
Пример #2
0
 public EsfArrayNode(EsfCodec codec, EsfType code) : base(delegate(string s) { throw new InvalidOperationException(); }) {
     Codec       = codec;
     Separator   = " ";
     TypeCode    = code;
     ConvertItem = DefaultFromString;
     Value       = new T[0];
 }
 public MemoryMappedRecordNode(EsfCodec codec, byte[] bytes, int start) : base(codec, bytes[start - 1])
 {
     Codec              = codec;
     buffer             = bytes;
     mapStart           = start - 1;
     InvalidateSiblings = true;
     // byteCount = count;
 }
Пример #4
0
        public static EsfCodec GetCodec(Stream stream)
        {
            EsfCodec codec = null;

            byte[] magicBuffer = new byte[4];
            stream.Read(magicBuffer, 0, 4);
            using (BinaryReader reader = new BinaryReader(new MemoryStream(magicBuffer))) {
                uint magic = reader.ReadUInt32();
                codec = CodecFromCode(magic);
            }
            return(codec);
        }
Пример #5
0
        static EsfCodec CodecFromCode(uint code)
        {
            EsfCodec codec = null;

            switch (code)
            {
            case 0xABCE:
                codec = new AbceCodec();
                break;

            case 0xABCF:
                codec = new AbcfFileCodec();
                break;

            case 0xABCA:
                codec = new AbcaFileCodec();
                break;
            }
            return(codec);
        }
 public CompressedNode(EsfCodec codec, RecordNode rootNode) : base(codec)
 {
     Name           = TAG_NAME;
     compressedNode = rootNode;
 }
Пример #7
0
 public RawDataNode(EsfCodec codec) : base(delegate(string s) { throw new InvalidOperationException(); }) {
     Codec    = codec;
     TypeCode = EsfType.UINT8_ARRAY;
 }
 protected DelegatingNode(EsfCodec codec, byte originalCode = 0) : base(codec, originalCode)
 {
 }
Пример #9
0
 public RecordEntryNode(EsfCodec codec)
 {
     TypeCode = EsfType.RECORD_BLOCK_ENTRY;
     Codec    = codec;
 }
Пример #10
0
 public RecordArrayNode(EsfCodec codec, byte originalCode = 0) : base(originalCode)
 {
     Codec = codec;
 }
Пример #11
0
 public EsfFile(EsfNode rootNode, EsfCodec codec)
 {
     Codec    = codec;
     RootNode = rootNode;
 }
 public OptimizedArrayNode(EsfCodec codec, EsfType typeCode, NodeFactory <T> factory) : base(codec, typeCode)
 {
     CreateNode    = factory;
     optimizedType = typeCode;
 }