public void Add(string path, PathWatcher pathWatcher)
 {
     using (_lock.Exclusive())
     {
         _watchers.Add(path, pathWatcher);
     }
 }
Пример #2
0
        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);
            }
        }