public Cache(ChecksumTreeNodeCacheCollection owner, Solution solution) : base(solution) { _owner = owner; _cache = new ConcurrentDictionary <object, ChecksumObjectCache>(concurrencyLevel: 2, capacity: 1); // TODO: specialize root checksum tree node cache vs all sub tree node cache }
public Cache GetOrCreateSubTreeNodeCache(ChecksumTreeNodeCacheCollection owner, Solution solution) { if (_lazyChecksumTree != null) { return(_lazyChecksumTree); } Interlocked.CompareExchange(ref _lazyChecksumTree, new Cache(owner, solution), null); return(_lazyChecksumTree); }
public ChecksumScope( ChecksumTreeNodeCacheCollection caches, ChecksumTreeNodeCache cache, SolutionChecksumObject solutionChecksum) { _caches = caches; _cache = cache; SolutionChecksum = solutionChecksum; _caches.RegisterSnapshot(this, cache); }
public Service(HostWorkspaceServices workspaceServices, ChecksumTreeNodeCacheCollection caches) { _workspaceServices = workspaceServices; _caches = caches; }