/// <inheritdoc /> public bool[] PutMany( QueryKey[] keys, QueryParameters[] queryParameters, ICacheAssembler[][] returnTypes, IList[] results, ISessionImplementor session) { if (Log.IsDebugEnabled()) { Log.Debug("caching query results in region: '{0}'; {1}", _regionName, StringHelper.CollectionToString(keys)); } var cached = new bool[keys.Length]; var ts = session.Factory.Settings.CacheProvider.NextTimestamp(); var cachedKeys = new List <object>(); var cachedResults = new List <object>(); for (var i = 0; i < keys.Length; i++) { var result = results[i]; if (queryParameters[i].NaturalKeyLookup && result.Count == 0) { continue; } cached[i] = true; cachedKeys.Add(keys[i]); cachedResults.Add(GetCacheableResult(returnTypes[i], session, result, ts)); } _cache.PutMany(cachedKeys.ToArray(), cachedResults.ToArray()); return(cached); }
private void SetSpacesTimestamp(IReadOnlyCollection <string> spaces, long ts) { if (spaces.Count == 0) { return; } _updateTimestamps.PutMany( spaces.ToArray <object>(), ArrayHelper.Fill <object>(ts, spaces.Count)); }
private void SetSpacesTimestamp(IReadOnlyCollection <string> spaces, long ts) { if (spaces.Count == 0) { return; } var timestamps = new object[spaces.Count]; for (var i = 0; i < timestamps.Length; i++) { timestamps[i] = ts; } _updateTimestamps.PutMany(spaces.ToArray(), timestamps); }