public static DataViewRowCursor Create(DatabaseLoader parent, DatabaseSource source, bool[] active) { Contracts.AssertValue(parent); Contracts.AssertValue(source); Contracts.Assert(active == null || active.Length == parent._bindings.OutputSchema.Count); return(new Cursor(parent, source, active)); }
public BoundLoader(DatabaseLoader loader, DatabaseSource source) { _loader = loader; _host = loader._host.Register(nameof(BoundLoader)); _host.CheckValue(source, nameof(source)); _source = source; }
private Cursor(DatabaseLoader parent, DatabaseSource source, bool[] active) : base(parent._host) { Ch.Assert(active == null || active.Length == parent._bindings.OutputSchema.Count); Ch.CheckValue(source, nameof(source)); _total = -1; _bindings = parent._bindings; _active = active; _source = source; _getters = new Delegate[_bindings.Infos.Length]; for (int i = 0; i < _getters.Length; i++) { if (_active != null && !_active[i]) { continue; } _getters[i] = CreateGetterDelegate(i); Ch.Assert(_getters[i] != null); } }