Raven.Database.Prefetching.PrefetchingBehavior.CleanupDocuments C# (CSharp) Method

CleanupDocuments() public method

public CleanupDocuments ( Etag lastIndexedEtag ) : void
lastIndexedEtag Raven.Abstractions.Util.Etag
return void
		public void CleanupDocuments(Etag lastIndexedEtag)
		{
			var highest = new ComparableByteArray(lastIndexedEtag);

			foreach (var docToRemove in documentsToRemove)
			{
				if (docToRemove.Value.All(etag => highest.CompareTo(etag) > 0) == false)
					continue;

				HashSet<Etag> _;
				documentsToRemove.TryRemove(docToRemove.Key, out _);
			}

			foreach (var updatedDocs in updatedDocuments)
			{
				if (updatedDocs.Value.All(etag => highest.CompareTo(etag) > 0) == false)
					continue;

				HashSet<Etag> _;
				updatedDocuments.TryRemove(updatedDocs.Key, out _);
			}

			JsonDocument result;
			while (prefetchingQueue.TryPeek(out result) && highest.CompareTo(result.Etag) >= 0)
			{
				prefetchingQueue.TryDequeue(out result);
			}
		}