Ejemplo n.º 1
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox repValueBox, Mapper mapper)
 {
     repValueBox.UInts = new RepeatedUIntBox();
     foreach (var v in values)
     {
         repValueBox.UInts.Values.Add(mapper.GetBoxId(v));
     }
 }
Ejemplo n.º 2
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.UInts = new RepeatedUIntBox();
     foreach (string val in values)
     {
         box.UInts.Values.Add(mapper.GetStringId(val));
     }
 }
Ejemplo n.º 3
0
        protected override void Populate(Box box, Point value, Mapper mapper)
        {
            var b = new RepeatedValueBox();

            b.Longs    = new RepeatedLongBox();
            box.Values = b;
            b.Longs.Values.Add(value.X);
            b.Longs.Values.Add(value.Y);
        }
Ejemplo n.º 4
0
        protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper)
        {
            int[] bits = new int[4];
            int   i    = 0;

            while (i <= box.Ints.Values.Count - 4)
            {
                for (int j = 0; j < 4; j++)
                {
                    bits[j] = box.Ints.Values[i++];
                }
                yield return(new decimal(bits));
            }
        }
Ejemplo n.º 5
0
        protected override void Populate(Box box, object value, Mapper mapper)
        {
            var b = new RepeatedValueBox();

            b.Kvps     = new RepeatedKeyValuePairsBox();
            box.Values = b;

            var type = value.GetType();

            b.Kvps.Keys.Add(
                mapper.GetBoxId(type.GetProperty("Key").GetValue(value)));
            b.Kvps.Values.Add(
                mapper.GetBoxId(type.GetProperty("Value").GetValue(value)));
        }
Ejemplo n.º 6
0
        protected override void Populate(Box box, object value, Mapper mapper)
        {
            var type = value.GetType();
            var b    = new RepeatedValueBox();

            b.ULongs   = new RepeatedULongBox();
            box.Values = b;
            var ulongs = b.ULongs.Values;

            for (int i = 1; i <= type.GetGenericArguments().Length; i++)
            {
                string name = string.Format("Item{0}", i);
                ulongs.Add(mapper.GetBoxId(type.GetProperty(name).GetValue(value)));
            }
        }
        protected override void Populate(Box box, object value, Mapper mapper)
        {
            var kvpBox = new RepeatedValueBox();

            kvpBox.Kvps = new RepeatedKeyValuePairsBox();
            box.Values  = kvpBox;

            var keys   = kvpBox.Kvps.Keys;
            var values = kvpBox.Kvps.Values;

            foreach (DictionaryEntry item in (IDictionary)value)
            {
                if (mapper.CancellationToken.IsCancellationRequested)
                {
                    return;
                }
                keys.Add(mapper.GetBoxId(item.Key));
                values.Add(mapper.GetBoxId(item.Value));
            }

            var type         = value.GetType();
            var propertyInfo = type.GetProperty("Comparer");
            var comparer     = propertyInfo.GetValue(value);

            var comparerType = comparer.GetType();

            if (StorableTypeAttribute.IsStorableType(comparerType))
            {
                kvpBox.ComparerId = mapper.GetBoxId(comparer);
            }
            else if (comparerType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy).Any())
            {
                throw new NotSupportedException("Cannot serialize non-storable equality comparers with fields");
            }
            else
            {
                kvpBox.ComparerTypeId = mapper.GetTypeMetadataId(comparerType, transformer: null); // there is no transformer for the comparer type
            }
        }
Ejemplo n.º 8
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.UInts = new RepeatedUIntBox();
     box.UInts.Values.AddRange(((IEnumerable <char>)values).Select(v => (uint)v));
 }
Ejemplo n.º 9
0
 protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.Ints.Values);
 }
Ejemplo n.º 10
0
 protected override IEnumerable <double> ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.Doubles.Values);
 }
Ejemplo n.º 11
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.Bools = new RepeatedBoolBox();
     box.Bools.Values.AddRange((IEnumerable <bool>)values);
 }
Ejemplo n.º 12
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.Ints = new RepeatedIntBox();
     box.Ints.Values.AddRange((IEnumerable <int>)values);
 }
Ejemplo n.º 13
0
 protected override void AddRange(IEnumerable <short> values, RepeatedValueBox box, Mapper mapper)
 {
     box.Ints = new RepeatedIntBox();
     box.Ints.Values.AddRange(values.Select(v => (int)v));
 }
Ejemplo n.º 14
0
 protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.UInts.Values.Select(l => mapper.GetString(l)));
 }
Ejemplo n.º 15
0
 protected override IEnumerable <short> ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.Ints.Values.Select(i => (short)i));
 }
Ejemplo n.º 16
0
 protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.UInts.Values.Select(mapper.GetObject));
 }
Ejemplo n.º 17
0
 protected override void AddRange(IEnumerable <float> values, RepeatedValueBox box, Mapper mapper)
 {
     box.Floats = new RepeatedFloatBox();
     box.Floats.Values.AddRange(values);
 }
Ejemplo n.º 18
0
 protected override IEnumerable <char> ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.UInts.Values.Select(i => (char)i));
 }
Ejemplo n.º 19
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox repValueBox, Mapper mapper)
 {
     repValueBox.UInts = new RepeatedUIntBox();
     repValueBox.UInts.Values.AddRange(((IEnumerable <object>)values).Select(mapper.GetBoxId));
 }
Ejemplo n.º 20
0
 protected abstract IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper);
Ejemplo n.º 21
0
 protected abstract void AddRange(IEnumerable values, RepeatedValueBox repValueBox, Mapper mapper);
Ejemplo n.º 22
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.Doubles = new RepeatedDoubleBox();
     box.Doubles.Values.AddRange((IEnumerable <double>)values);
 }
Ejemplo n.º 23
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.ULongs = new RepeatedULongBox();
     box.ULongs.Values.AddRange((IEnumerable <ulong>)values);
 }
Ejemplo n.º 24
0
 protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper)
 {
     box.Ints = new RepeatedIntBox();
     box.Ints.Values.AddRange(((IEnumerable <decimal>)values).SelectMany(decimal.GetBits));
 }
Ejemplo n.º 25
0
 protected override IEnumerable <ulong> ExtractValues(RepeatedValueBox box, Mapper mapper)
 {
     return(box.ULongs.Values);
 }