public static IRowCursor CreateKeyRowCursor(RangeFilter filter, IRowCursor input, bool[] active) { Contracts.Assert(filter._type.IsKey); Func <RangeFilter, IRowCursor, bool[], IRowCursor> del = CreateKeyRowCursor <int>; var methodInfo = del.GetMethodInfo().GetGenericMethodDefinition().MakeGenericMethod(filter._type.RawType); return((IRowCursor)methodInfo.Invoke(null, new object[] { filter, input, active })); }
public DoubleRowCursor(RangeFilter parent, DataViewRowCursor input, bool[] active) : base(parent, input, active) { Ch.Assert(Parent._type == NumberDataViewType.Double); _srcGetter = Input.GetGetter <Double>(Input.Schema[Parent._index]); _getter = (ref Double value) => { Ch.Check(IsGood, RowCursorUtils.FetchValueStateError); value = _value; }; }
public DoubleRowCursor(RangeFilter parent, RowCursor input, bool[] active) : base(parent, input, active) { Ch.Assert(Parent._type == NumberType.R8); _srcGetter = Input.GetGetter <Double>(Parent._index); _getter = (ref Double value) => { Ch.Check(IsGood); value = _value; }; }
public SingleRowCursor(RangeFilter parent, RowCursor input, bool[] active) : base(parent, input, active) { Ch.Assert(Parent._type == NumberType.R4); _srcGetter = Input.GetGetter <Single>(Parent._index); _getter = (ref Single value) => { Ch.Check(IsGood, RowCursorUtils.FetchValueStateError); value = _value; }; }
public KeyRowCursor(RangeFilter parent, DataViewRowCursor input, bool[] active) : base(parent, input, active) { Ch.Assert(Parent._type.GetKeyCount() > 0); _count = Parent._type.GetKeyCount(); _srcGetter = Input.GetGetter<T>(Input.Schema[Parent._index]); _getter = (ref T dst) => { Ch.Check(IsGood, RowCursorUtils.FetchValueStateError); dst = _value; }; bool identity; _conv = Data.Conversion.Conversions.Instance.GetStandardConversion<T, ulong>(Parent._type, NumberDataViewType.UInt64, out identity); }
public KeyRowCursor(RangeFilter parent, RowCursor input, bool[] active) : base(parent, input, active) { Ch.Assert(Parent._type.GetKeyCount() > 0); _count = Parent._type.GetKeyCount(); _srcGetter = Input.GetGetter <T>(Parent._index); _getter = (ref T dst) => { Ch.Check(IsGood); dst = _value; }; bool identity; _conv = Data.Conversion.Conversions.Instance.GetStandardConversion <T, ulong>(Parent._type, NumberType.U8, out identity); }
protected RowCursorBase(RangeFilter parent, DataViewRowCursor input, bool[] active) : base(parent.Host, input, parent.OutputSchema, active) { Parent = parent; _min = Parent._min; _max = Parent._max; if (Parent._includeMin) { if (Parent._includeMax) CheckBounds = Parent._complement ? (Func<Double, bool>)TestNotCC : TestCC; else CheckBounds = Parent._complement ? (Func<Double, bool>)TestNotCO : TestCO; } else { if (Parent._includeMax) CheckBounds = Parent._complement ? (Func<Double, bool>)TestNotOC : TestOC; else CheckBounds = Parent._complement ? (Func<Double, bool>)TestNotOO : TestOO; } }
private static DataViewRowCursor CreateKeyRowCursor <TSrc>(RangeFilter filter, DataViewRowCursor input, bool[] active) { Contracts.Assert(filter._type is KeyDataViewType); return(new KeyRowCursor <TSrc>(filter, input, active)); }
private static RowCursor CreateKeyRowCursor <TSrc>(RangeFilter filter, RowCursor input, bool[] active) { Contracts.Assert(filter._type.IsKey); return(new KeyRowCursor <TSrc>(filter, input, active)); }