101 for (
int i = 0; i <
array.Length; i++)
386 dataRow._newRecord =
record;
389 dataRow._oldRecord =
record;
412 return Array.Empty<
object>();
416 return list.ToArray();
554 return default(
Range);
619 if (
array.Length != 0)
622 for (
int i = 0; i <
array.Length; i++)
637 bool append = _indexFields.Length == 0;
643 if (
row._oldRecord ==
row._newRecord)
647 num =
row._oldRecord;
650 else if (
row._oldRecord == -1)
654 num =
row._newRecord;
657 else if (
row._newRecord == -1)
661 num =
row._oldRecord;
666 num =
row._newRecord;
670 num =
row._oldRecord;
818 DataCommonEventSource.
Log.Trace(
"<ds.Index.RecordStateChanged|API> {0}, oldRecord={1}, oldOldState={2}, oldNewState={3}, newRecord={4}, newOldState={5}, newNewState={6}",
ObjectID,
oldRecord,
oldOldState,
oldNewState,
newRecord,
newOldState,
newNewState);
869 for (
int i = 0; i <
array.Length; i++)
882 for (
int i = 0; i <
list.Count; i++)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
object ConvertValue(object value)
int Compare(int record1, int record2)
bool CompareValueTo(int record1, object value, bool checkType)
static readonly DataCommonEventSource Log
int IndexOf(DataRow? row)
readonly ReaderWriterLockSlim _indexesLock
readonly List< Index > _indexes
bool AreIndexEventsSuspended
DataRow[] NewRowArray(int size)
readonly RecordManager _recordManager
void MaintainDataView(ListChangedType changedType, DataRow row, bool trackAddRemove)
void IndexListChanged(ListChangedEventArgs e)
static ListChangedEventArgs s_resetEventArgs
static Exception IndexKeyLength(int length, int keyLength)
static Exception RecordStateRange()
override int CompareNode(int record1, int record2)
override int CompareSateliteTreeNode(int record1, int record2)
delegate int ComparisonBySelector< TKey, TRow >(TKey key, TRow row)
void InitRecords(IFilter filter)
void ApplyChangeAction(int record, int action, int changeRecord)
static int IndexOfReference< T >(List< T > list, T item)
static int s_objectTypeCount
Index(DataTable table, IndexField[] indexFields, DataViewRowState recordStates, IFilter rowFilter)
int CompareDataRows(int record1, int record2)
void OnListChanged(ListChangedType changedType, int newIndex, int oldIndex)
int GetIndex(int record, int changeRecord)
void DeleteRecord(int recordIndex, bool fireEvent)
readonly bool _hasRemoteAggregate
bool IsKeyRecordInIndex(int record)
bool AcceptRecord(int record)
void RecordStateChanged(int oldRecord, DataViewRowState oldOldState, DataViewRowState oldNewState, int newRecord, DataViewRowState newOldState, DataViewRowState newNewState)
static int GetReplaceAction(DataViewRowState oldState)
int CompareRecords(int record1, int record2)
int CompareRecordToKey(int record1, object[] vals)
RBTree< int >.RBTreeEnumerator GetEnumerator(int startIndex)
bool Equal(IndexField[] indexDesc, DataViewRowState recordStates, IFilter rowFilter)
bool IsKeyInIndex(object[] key)
bool IsKeyInIndex(object key)
void RecordChanged(int oldIndex, int newIndex)
void ListChangedRemove(DataViewListener listener)
readonly IndexField[] _indexFields
void DeleteRecordFromIndex(int recordIndex)
readonly DataViewRowState _recordStates
int InsertRecordToIndex(int record)
int FindRecord(int record)
int FindRecordByKey(object[] key)
Index(DataTable table, IndexField[] indexFields, Comparison< DataRow > comparison, DataViewRowState recordStates, IFilter rowFilter)
readonly DataTable _table
int CompareDuplicateRecords(int record1, int record2)
Index(DataTable table, Comparison< DataRow > comparison, DataViewRowState recordStates, IFilter rowFilter)
void RecordChanged(int record)
void GetUniqueKeyValues(List< object[]> list, int curNodeId)
void DeleteRecord(int recordIndex)
void MaintainDataView(ListChangedType changedType, int record, bool trackAddRemove)
int FindRecordByKey(object key)
Range FindRecords< TKey, TRow >(ComparisonBySelector< TKey, TRow > comparison, TKey key)
DataRow[] GetRows(Range range)
bool AcceptRecord(int record, IFilter filter)
int FindNodeByKey(object originalKey)
DataRow[] GetRows(object[] values)
int FindNodeByKeyRecord(int record)
int GetRecord(int recordIndex)
Range FindRecords(object[] key)
object[] GetUniqueKeyValues()
Range FindRecords(object key)
void OnListChanged(ListChangedEventArgs e)
int FindNodeByKeys(object[] originalKey)
int InsertRecord(int record, bool fireEvent)
Range GetRangeFromNode(int nodeId)
void ListChangedAdd(DataViewListener listener)
readonly Comparison< DataRow > _comparison
void OnListChanged(ListChangedType changedType, int index)
readonly WeakReference _rowFilter
readonly Listeners< DataViewListener > _listeners
int GetChangeAction(DataViewRowState oldState, DataViewRowState newState)
readonly bool _isSharable
DataViewRowState RecordStates
void RecordStateChanged(int record, DataViewRowState oldState, DataViewRowState newState)
static IndexField[] GetAllFields(DataColumnCollection columns)
void UpdateNodeKey(K currentKey, K newKey)
int SubTreeSize(int nodeId)
int InsertAt(int position, K item, bool append)
int GetIndexByNode(int node)
static int Increment(ref int location)
readonly DataColumn Column