// Constructors public RootContainerCacheEntry(RootContainerCacheKey key, SortedDictionary <int, ColumnInfo> columns, List <int> columnsToBeLoaded) { Key = key; Columns = columns; ColumnsToBeLoaded = columnsToBeLoaded; }
public void GetCachedColumnIndexes(TypeInfo type, IEnumerable <PrefetchFieldDescriptor> descriptors, out SortedDictionary <int, ColumnInfo> columns, out List <int> columnsToBeLoaded) { var cacheKey = new RootContainerCacheKey(type, descriptors); var cacheEntry = columnsCache[cacheKey, true]; if (cacheEntry == null) { columns = PrefetchHelper.GetColumns(ExtractColumns(descriptors), type); columnsToBeLoaded = PrefetchHelper.GetColumnsToBeLoaded(columns, type); cacheEntry = new RootContainerCacheEntry(cacheKey, columns, columnsToBeLoaded); columnsCache.Add(cacheEntry); return; } columns = cacheEntry.Columns; columnsToBeLoaded = cacheEntry.ColumnsToBeLoaded; }