public void DontFillUp() { // NH-1671 const int count = 32; var s = new SoftLimitMRUCache(count); for (int i = 0; i < count + 10; i++) { s.Put(new object(), new object()); } Assert.That(s.Count, Is.EqualTo(count)); GC.Collect(); s.Put(new object(), new object()); Assert.That(s.SoftCount, Is.EqualTo(count + 1)); }
public IQueryExpressionPlan GetHQLQueryPlan(IQueryExpression queryExpression, bool shallow, IDictionary <string, IFilter> enabledFilters) { var key = new HQLQueryPlanKey(queryExpression, shallow, enabledFilters); var plan = (QueryExpressionPlan)planCache[key]; if (plan == null) { if (log.IsDebugEnabled()) { log.Debug("unable to locate HQL query plan in cache; generating ({0})", queryExpression.Key); } plan = new QueryExpressionPlan(queryExpression, shallow, enabledFilters, factory); // 6.0 TODO: add "CanCachePlan { get; }" to IQueryExpression interface if (!(queryExpression is NhLinqExpression linqExpression) || linqExpression.CanCachePlan) { planCache.Put(key, plan); } else { log.Debug("Query plan not cacheable"); } }
public void AddCachedFilter(FilterKey key, Lucene.Net.Search.Filter filter) { cache.Put(key, filter); }