public void Add(string path, PathWatcher pathWatcher) { using (_lock.Exclusive()) { _watchers.Add(path, pathWatcher); } }
public IReadOnlyCollection <FileVersion> RemoveDeadVersions() { var result = new HashSet <FileVersion>(); using (_lock.SharedIntentExclusive()) { var versions = _fileVersions.ToDictionary(k => k.Key, v => v.Value); foreach (var kv in versions) { var collection = kv.Value; var deadVersions = collection.RemoveDeadVersions(); foreach (var deadVersion in deadVersions) { result.Add(deadVersion); } using (_lock.Exclusive()) { if (collection.Any()) { continue; } _fileVersions.Remove(kv.Key); } } return(result); } }
public void Add(FileVersion fileVersion) { using (_lock.Exclusive()) { _items.Add(fileVersion); } }
public void Add(IFileVersion fileVersion, IEnumerable <ParsedWord> words) { var setOfWords = new HashSet <string>(); using (_lock.Exclusive()) { _directIndex.Add(fileVersion, setOfWords); } foreach (var word in words) { setOfWords.Add(word.Word); _searchIndex.Add(word.Word, word.Entry); } }