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)); } }
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)); } }
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); }
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)); } }
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))); }
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 } }
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)); }
protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.Ints.Values); }
protected override IEnumerable <double> ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.Doubles.Values); }
protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper) { box.Bools = new RepeatedBoolBox(); box.Bools.Values.AddRange((IEnumerable <bool>)values); }
protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper) { box.Ints = new RepeatedIntBox(); box.Ints.Values.AddRange((IEnumerable <int>)values); }
protected override void AddRange(IEnumerable <short> values, RepeatedValueBox box, Mapper mapper) { box.Ints = new RepeatedIntBox(); box.Ints.Values.AddRange(values.Select(v => (int)v)); }
protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.UInts.Values.Select(l => mapper.GetString(l))); }
protected override IEnumerable <short> ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.Ints.Values.Select(i => (short)i)); }
protected override IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.UInts.Values.Select(mapper.GetObject)); }
protected override void AddRange(IEnumerable <float> values, RepeatedValueBox box, Mapper mapper) { box.Floats = new RepeatedFloatBox(); box.Floats.Values.AddRange(values); }
protected override IEnumerable <char> ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.UInts.Values.Select(i => (char)i)); }
protected override void AddRange(IEnumerable values, RepeatedValueBox repValueBox, Mapper mapper) { repValueBox.UInts = new RepeatedUIntBox(); repValueBox.UInts.Values.AddRange(((IEnumerable <object>)values).Select(mapper.GetBoxId)); }
protected abstract IEnumerable ExtractValues(RepeatedValueBox box, Mapper mapper);
protected abstract void AddRange(IEnumerable values, RepeatedValueBox repValueBox, Mapper mapper);
protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper) { box.Doubles = new RepeatedDoubleBox(); box.Doubles.Values.AddRange((IEnumerable <double>)values); }
protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper) { box.ULongs = new RepeatedULongBox(); box.ULongs.Values.AddRange((IEnumerable <ulong>)values); }
protected override void AddRange(IEnumerable values, RepeatedValueBox box, Mapper mapper) { box.Ints = new RepeatedIntBox(); box.Ints.Values.AddRange(((IEnumerable <decimal>)values).SelectMany(decimal.GetBits)); }
protected override IEnumerable <ulong> ExtractValues(RepeatedValueBox box, Mapper mapper) { return(box.ULongs.Values); }