RazorDB.KeyValueStore.GetTables C# (CSharp) Method

GetTables() public method

public GetTables ( ) : IEnumerable
return IEnumerable
        public IEnumerable<SortedBlockTable> GetTables() {

            var enumerators = new List<IEnumerable<KeyValuePair<Key, Value>>>();

            // Capture copy of the rotated table if there is one
            var rotatedMemTable = _rotatedJournaledMemTable;

            // Select main MemTable
            enumerators.Add(_currentJournaledMemTable.EnumerateSnapshotFromKey(Key.Empty));

            if (rotatedMemTable != null)
                enumerators.Add(rotatedMemTable.EnumerateSnapshotFromKey(Key.Empty));

            // Now check the files on disk
            using (var manifestSnapshot = _manifest.GetLatestManifest()) {
                List<SortedBlockTable> tables = new List<SortedBlockTable>();
                for (int i = 0; i < manifestSnapshot.NumLevels; i++) {
                    tables.AddRange(manifestSnapshot.GetPagesAtLevel(i).OrderByDescending(page => page.Version)
                                    .Select(page => new SortedBlockTable(_cache, _manifest.BaseFileName, page.Level, page.Version)));
                }
                return tables;
            }
        }