Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        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.");
            }
        }