コード例 #1
0
            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 }));
            }
コード例 #2
0
 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;
     };
 }
コード例 #3
0
 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;
     };
 }
コード例 #4
0
 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;
     };
 }
コード例 #5
0
 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);
 }
コード例 #6
0
            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);
            }
コード例 #7
0
 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;
     }
 }
コード例 #8
0
 private static DataViewRowCursor CreateKeyRowCursor <TSrc>(RangeFilter filter, DataViewRowCursor input, bool[] active)
 {
     Contracts.Assert(filter._type is KeyDataViewType);
     return(new KeyRowCursor <TSrc>(filter, input, active));
 }
コード例 #9
0
 private static RowCursor CreateKeyRowCursor <TSrc>(RangeFilter filter, RowCursor input, bool[] active)
 {
     Contracts.Assert(filter._type.IsKey);
     return(new KeyRowCursor <TSrc>(filter, input, active));
 }