private static T CreateData <T>(string @namespace, ServiceCacheRegistration registration, object tag, object[] values, out CacheItemHeader header) { if (@namespace != null) { var namespaces = registration.Namespaces; if (!namespaces.Contains(@namespace)) { namespaces.Add(@namespace); } } header = new CacheItemHeader { Values = values, }; return((T)registration.Builder(tag, values)); }
private static void SetUsingCas(IDistributedServiceCache cache, ServiceCacheRegistration registration, object tag, CacheItemHeader header, bool useDBNull, object value) { var valueAsCache = (!useDBNull || value != null ? (object)value : DBNull.Value); cache.Add(tag, header.Item, registration.ItemPolicy, valueAsCache, new ServiceCacheByDispatcher(registration, header.Values, header)); }
private static void SetUsingRwLock(IServiceCache cache, ServiceCacheRegistration registration, object tag, CacheItemPolicy itemPolicy, CacheItemHeader header, bool useDBNull, object value) { _rwLock.EnterWriteLock(); try { var valueAsCache = (!useDBNull || value != null ? (object)value : DBNull.Value); cache.Add(tag, header.Item, itemPolicy, valueAsCache, new ServiceCacheByDispatcher(registration, header.Values, header)); } finally { _rwLock.ExitWriteLock(); } }
private object InvokeInternal <T>(IServiceCache cache, object tag, CacheItemHeader header) { return(ActionInvoke <T>(Message, tag, header.Values, () => (T)cache.Get(null, header.Item))); }
/// <summary> /// Invokes the specified cache. /// </summary> /// <param name="cache">The cache.</param> /// <param name="tag">The tag.</param> /// <param name="header">The header.</param> /// <returns></returns> public object Invoke(IServiceCache cache, object tag, CacheItemHeader header) { return(_invokeInternalInfo.MakeGenericMethod(Action.TType).Invoke(this, new[] { cache, tag, header })); }
/// <summary> /// Gets the specified tag. /// </summary> /// <param name="tag">The tag.</param> /// <param name="name">The name.</param> /// <param name="registration">The registration.</param> /// <param name="header">The header.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"></exception> public object Get(object tag, string name, IServiceCacheRegistration registration, out CacheItemHeader header) { if (registration == null) throw new ArgumentNullException("registration"); var version = (tag as DataCacheItemVersion); string regionName; if (!registration.UseHeaders) header = null; else if (version == null) header = (CacheItemHeader)(!Settings.TryGetRegion(ref name, out regionName) ? Cache.Get(name + "#") : Cache.Get(name + "#", regionName)); else header = (CacheItemHeader)(!Settings.TryGetRegion(ref name, out regionName) ? Cache.GetIfNewer(name + "#", ref version) : Cache.GetIfNewer(name + "#", ref version, regionName)); if (version == null) return (!Settings.TryGetRegion(ref name, out regionName) ? Cache.Get(name) : Cache.Get(name, regionName)); return (!Settings.TryGetRegion(ref name, out regionName) ? Cache.GetIfNewer(name, ref version) : Cache.GetIfNewer(name, ref version, regionName)); }
/// <summary> /// Gets the specified tag. /// </summary> /// <param name="tag">The tag.</param> /// <param name="name">The name.</param> /// <param name="registration">The registration.</param> /// <param name="header">The header.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"></exception> public object Get(object tag, string name, IServiceCacheRegistration registration, out CacheItemHeader header) { if (registration == null) throw new ArgumentNullException("registration"); header = (registration.UseHeaders ? (CacheItemHeader)Cache.Get(name + "#") : null); return Cache.Get(name); }
/// <summary> /// Gets the specified tag. /// </summary> /// <param name="tag">The tag.</param> /// <param name="name">The name.</param> /// <param name="registration">The registration.</param> /// <param name="header">The header.</param> /// <returns></returns> /// <exception cref="System.ArgumentNullException"></exception> public object Get(object tag, string name, IServiceCacheRegistration registration, out CacheItemHeader header) { if (registration == null) throw new ArgumentNullException("registration"); throw new NotImplementedException(); }
public object Get(object tag, string name, IServiceCacheRegistration registration, out CacheItemHeader header) { return(_parent.Get(tag, _namespace + name, registration, out header)); }