/// <inheritdoc/> public IEnumerable <ICellAccessor> EnumerateGenericCellAccessors(LocalMemoryStorage storage) { foreach (var cellInfo in Global.LocalStorage) { switch ((CellType)cellInfo.CellType) { case CellType.Graph: { var Graph_accessor = Graph_Accessor.AllocIterativeAccessor(cellInfo, null); yield return(Graph_accessor); Graph_accessor.Dispose(); break; } default: continue; } } yield break; }
public IEnumerator <Graph> GetEnumerator() { if (m_filter_set == null) { if (m_filter_predicate == null) { foreach (var cellInfo in m_storage) { if (cellInfo.CellType == (ushort)CellType.Graph) { var accessor = Graph_Accessor.AllocIterativeAccessor(cellInfo, m_tx); yield return(accessor); accessor.Dispose(); } } } else { foreach (var cellInfo in m_storage) { if (cellInfo.CellType == (ushort)CellType.Graph) { var accessor = Graph_Accessor.AllocIterativeAccessor(cellInfo, m_tx); if (m_filter_predicate(accessor)) { yield return(accessor); } accessor.Dispose(); } } } } else if (m_is_positive_filtering) { if (m_filter_predicate == null) { foreach (var cellID in m_filter_set) { using (var accessor = m_storage.UseGraph(cellID)) { yield return(accessor); } } } else { foreach (var cellID in m_filter_set) { using (var accessor = m_storage.UseGraph(cellID)) { if (m_filter_predicate(accessor)) { yield return(accessor); } } } } } else { throw new NotImplementedException("Negative filtering not supported."); } }