public override global::MyFlatBuffers.Data?Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            byteSize = 2;
            var hasValue = BinaryUtil.ReadBoolean(ref bytes, offset);

            if (!hasValue)
            {
                return(null);
            }

            return((global::MyFlatBuffers.Data)BinaryUtil.ReadByte(ref bytes, offset + 1));
        }
Esempio n. 2
0
 public Memory <TKey, TElement> ToMemory <TKey, TElement>(DirtyTracker tracker, Func <TElement, TKey> indexSelector)
 {
     return(new Memory <TKey, TElement>(buffer.Array, buffer.Offset, tracker, indexSelector));
 }
Esempio n. 3
0
        public void ObjectFormatter()
        {
            var tracker = new DirtyTracker(0);
            var mc      = new MyClass
            {
                Age       = 999,
                FirstName = "hoge",
                LastName  = "hugahgua",
                MyList    = new List <int> {
                    1, 10, 100, 1000
                }
            };

            Formatter <MyClass> .Register(new MyClassFormatter());

            byte[] bytes = null;
            int    size;

            Formatter <MyClass> .Default.Serialize(ref bytes, 0, mc);

            var mc2 = Formatter <MyClass> .Default.Deserialize(ref bytes, 0, tracker, out size);

            var getAge = mc2.Age;

            mc2.Age.Is(mc.Age);
            mc2.FirstName.Is(mc.FirstName);
            mc2.LastName.Is(mc.LastName);

            bytes = null;
            Formatter <MyClass> .Default.Serialize(ref bytes, 0, mc2);

            var mc3 = Formatter <MyClass> .Default.Deserialize(ref bytes, 0, tracker, out size);

            mc3.Age.Is(mc.Age);
            mc3.FirstName.Is(mc.FirstName);
            mc3.LastName.Is(mc.LastName);

            mc3.Age       = 99999;
            mc3.FirstName = "aiueokakikukekosasisuseso";

            bytes = null;
            Formatter <MyClass> .Default.Serialize(ref bytes, 0, mc3);

            var mc4 = Formatter <MyClass> .Default.Deserialize(ref bytes, 0, tracker, out size);

            mc4.Age.Is(99999);
            mc4.FirstName.Is("aiueokakikukekosasisuseso");
            mc4.LastName.Is("hugahgua");


            mc4.LastName = null;

            bytes = null;
            Formatter <MyClass> .Default.Serialize(ref bytes, 0, mc4);

            var mc5 = Formatter <MyClass> .Default.Deserialize(ref bytes, 0, tracker, out size);

            mc5.Age.Is(99999);
            mc5.FirstName.Is("aiueokakikukekosasisuseso");
            mc5.LastName.IsNull();
        }
Esempio n. 4
0
 public override DictionaryEntry <TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     return(DictionaryEntry.Create <TKey, TValue>(bytes, offset, tracker, out byteSize));
 }
Esempio n. 5
0
 public override T Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     throw exception;
 }
Esempio n. 6
0
 public override Decimal Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 16;
     return(BinaryUtil.ReadDecimal(ref bytes, offset));
 }
Esempio n. 7
0
 public override T Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 1;
     return(deserializeCast(BinaryUtil.ReadSByte(ref bytes, offset)));
 }
 public override global::MyFlatBuffers.Data Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 1;
     return((global::MyFlatBuffers.Data)BinaryUtil.ReadByte(ref bytes, offset));
 }
 public override FSharpOption <T> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     return(OptionModule.OfObj(innerFormatter.Deserialize(ref bytes, offset, tracker, out byteSize)));
 }
 public override global::MonsterDataBase.VersionType Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 4;
     return((global::MonsterDataBase.VersionType)BinaryUtil.ReadInt32(ref bytes, offset));
 }
        public override global::MonsterDataBase.VersionType?Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            byteSize = 5;
            var hasValue = BinaryUtil.ReadBoolean(ref bytes, offset);

            if (!hasValue)
            {
                return(null);
            }

            return((global::MonsterDataBase.VersionType)BinaryUtil.ReadInt32(ref bytes, offset + 1));
        }
        public override global::Test3.SettingData Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            byteSize = 1;
            if (!BinaryUtil.ReadBoolean(ref bytes, offset))
            {
                return(null);
            }

            offset += 1;
            int size;
            var unionKey = Formatter <global::Test3.FileVersion> .Default.Deserialize(ref bytes, offset, tracker, out size);

            byteSize += size;
            offset   += size;

            global::Test3.SettingData result;
            if (comparer.Equals(unionKey, unionKeys[0]))
            {
                result = Formatter <global::Test3.SettingDataVer1> .Default.Deserialize(ref bytes, offset, tracker, out size);
            }
            else if (comparer.Equals(unionKey, unionKeys[1]))
            {
                result = Formatter <global::Test3.SettingDataVer2> .Default.Deserialize(ref bytes, offset, tracker, out size);
            }
            else
            {
                throw new Exception("Unknown unionKey type of Union: " + unionKey.ToString());
            }

            byteSize += size;
            return(result);
        }
 public override global::Test3.SettingDataVer2 Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = BinaryUtil.ReadInt32(ref bytes, offset);
     if (byteSize == -1)
     {
         byteSize = 4;
         return(null);
     }
     return(new SettingDataVer2ObjectSegment(tracker, new ArraySegment <byte>(bytes, offset, byteSize)));
 }
 public override global::Test3.LanguageType Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 4;
     return((global::Test3.LanguageType)BinaryUtil.ReadInt32(ref bytes, offset));
 }
Esempio n. 15
0
 public override Single Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 4;
     return(BinaryUtil.ReadSingle(ref bytes, offset));
 }
        public override KeyValuePair <TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            int size;

            byteSize = 0;

            var key = Formatter <TTypeResolver, TKey> .Default.Deserialize(ref bytes, offset, tracker, out size);

            offset   += size;
            byteSize += size;

            var value = Formatter <TTypeResolver, TValue> .Default.Deserialize(ref bytes, offset, tracker, out size);

            offset   += size;
            byteSize += size;

            return(new KeyValuePair <TKey, TValue>(key, value));
        }
Esempio n. 17
0
 public override Char Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 2;
     return(BinaryUtil.ReadChar(ref bytes, offset));
 }
Esempio n. 18
0
        public override ILookup <TKey, TElement> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            // tracker.Dirty(); // ilookup is immutable

            var length = BinaryUtil.ReadInt32(ref bytes, offset);

            if (length == -1)
            {
                byteSize = 4;
                return(null);
            }
            BinaryUtil.ValidateNewSize(length); // size is not strict(Marshal.SizeOf<T>()) but okay to use.

            var startOffset = offset;

            offset += 4;
            var lastOffset = offset;
            var lookup     = DeserializeSequence(bytes, offset, tracker, length).ToLookup(x => x.Item1, x =>
            {
                lastOffset = x.Item3; // capture in lambda is overhead but lookup can only create from ToLookup
                return(x.Item2);
            });

            byteSize = lastOffset - startOffset;
            return(lookup);
        }
Esempio n. 19
0
 public override TimeSpan Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 12;
     return(BinaryUtil.ReadTimeSpan(ref bytes, offset));
 }
Esempio n. 20
0
        IEnumerable <KeyTuple <TKey, TElement, int> > DeserializeSequence(byte[] bytes, int offset, DirtyTracker tracker, int length)
        {
            int size;

            for (int i = 0; i < length; i++)
            {
                var key = keyFormatter.Deserialize(ref bytes, offset, tracker, out size);
                offset += size;

                // no use valuesFormatter(avoid intermediate array allocate)
                var valuesLength = BinaryUtil.ReadInt32(ref bytes, offset);
                offset += 4;

                for (int j = 0; j < valuesLength; j++)
                {
                    var value = valueFormatter.Deserialize(ref bytes, offset, tracker, out size);
                    offset += size;
                    yield return(new KeyTuple <TKey, TElement, int>(key, value, offset));
                }
            }
        }
Esempio n. 21
0
    public override ReplayDataV1 Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
    {
        Encoding enc = Encoding.GetEncoding("UTF-8");

        ReplayDataV1 value = new ReplayDataV1();

        value.Version = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset  += 4;
        value.Id = Formatter <TTypeResolver, string> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset            += 4 + enc.GetByteCount(value.Id);
        value.PlayDateTime = Formatter <TTypeResolver, long> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 8;
        value.ScoreKindValue = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset    += 4;
        value.Seed = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.FrameCount = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.InputCount = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.InputFrame = Formatter <TTypeResolver, int[]> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;
        if (value.InputFrame != null)
        {
            offset += value.InputFrame.Length * 4;
        }
        value.InputType = Formatter <TTypeResolver, byte[]> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;
        if (value.InputType != null)
        {
            offset += value.InputType.Length;
        }
        value.InputData1 = Formatter <TTypeResolver, byte[]> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;
        if (value.InputData1 != null)
        {
            offset += value.InputData1.Length;
        }

        value.InputData2 = Formatter <TTypeResolver, byte[]> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;
        if (value.InputData2 != null)
        {
            offset += value.InputData2.Length;
        }
        value.Row = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset   += 4;
        value.Col = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset     += 4;
        value.Color = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset    += 4;
        value.Link = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset         += 4;
        value.Direction = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset    += 4;
        value.Time = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset    += 4;
        value.Stop = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset         += 4;
        value.CountDisp = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset       += 4;
        value.Garbage = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;

        value.Name = Formatter <TTypeResolver, string> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4 + enc.GetByteCount(value.Name);
        value.ScoreCategoryValue = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved22 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved23 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved24 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved25 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved26 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved27 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved28 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset          += 4;
        value.Reserved29 = Formatter <TTypeResolver, int> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        offset += 4;

        return(value);
    }
Esempio n. 22
0
        public override IReadOnlyCollection <T> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            // tracker.Dirty(); // immutable

            var length = BinaryUtil.ReadInt32(ref bytes, offset);

            if (length == -1)
            {
                byteSize = 4;
                return(null);
            }
            BinaryUtil.ValidateNewSize(length); // size is not strict(Marshal.SizeOf<T>()) but okay to use.

            var startOffset = offset;

            offset += 4;
            int size;
            var result = new T[length];

            for (int i = 0; i < length; i++)
            {
                result[i] = formatter.Deserialize(ref bytes, offset, tracker, out size);
                offset   += size;
            }

            byteSize = offset - startOffset;
            return(result);
        }
Esempio n. 23
0
 public override ILazyReadOnlyDictionary <TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     return(DictionarySegment <TKey, TValue> .Create(tracker, bytes, offset, out byteSize));
 }
Esempio n. 24
0
        public override IReadOnlyDictionary <TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            // tracker.Dirty(); // immutable

            var length = BinaryUtil.ReadInt32(ref bytes, offset);

            if (length == -1)
            {
                byteSize = 4;
                return(null);
            }
            BinaryUtil.ValidateNewSize(length); // size is not strict(Marshal.SizeOf<T>()) but okay to use.

            var startOffset = offset;

            offset += 4;
            int size;
            var comparer = ZeroFormatterEqualityComparer <TKey> .NondeterministicSafeFallbacked;
            var result   = new Dictionary <TKey, TValue>(length, comparer);

            for (int i = 0; i < length; i++)
            {
                var kvp = formatter.Deserialize(ref bytes, offset, tracker, out size);
                result.Add(kvp.Key, kvp.Value);
                offset += size;
            }

            byteSize = offset - startOffset;
            return(result);
        }
Esempio n. 25
0
 public abstract T Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize);
Esempio n. 26
0
    public T DeserializePrimitive <T>(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
    {
        T item = Formatter <DefaultResolver, T> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

        return(item);
    }
Esempio n. 27
0
 private void InitDirtyTracker()
 {
     dirtyTracker = new DirtyTracker(audioHkDataGrid, controlHkDataGrid, fadingDataGrid);
 }
Esempio n. 28
0
 public override UInt64 Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     byteSize = 8;
     return(BinaryUtil.ReadUInt64(ref bytes, offset));
 }
 public override GroupingSegment <TTypeResolver, TKey, TValue> Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
 {
     return(GroupingSegment <TTypeResolver, TKey, TValue> .Create(tracker, bytes, offset, out byteSize));
 }
Esempio n. 30
0
        public override Uri Deserialize(ref byte[] bytes, int offset, DirtyTracker tracker, out int byteSize)
        {
            var uriString = Formatter <string> .Default.Deserialize(ref bytes, offset, tracker, out byteSize);

            return((uriString == null) ? null : new Uri(uriString));
        }