You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,117 @@
|
||||
// <copyright file="ObjectCache.cs" company="Microsoft">
|
||||
// Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
using System;
|
||||
using System.Runtime.Caching.Resources;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Security;
|
||||
using System.Security.Permissions;
|
||||
using System.Threading;
|
||||
|
||||
namespace System.Runtime.Caching {
|
||||
[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification= "The class represents a type of cache")]
|
||||
public abstract class ObjectCache : IEnumerable<KeyValuePair<string, object>> {
|
||||
private static IServiceProvider _host;
|
||||
|
||||
public static readonly DateTimeOffset InfiniteAbsoluteExpiration = DateTimeOffset.MaxValue;
|
||||
public static readonly TimeSpan NoSlidingExpiration = TimeSpan.Zero;
|
||||
|
||||
public static IServiceProvider Host {
|
||||
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
|
||||
[SecurityCritical]
|
||||
get { return _host; }
|
||||
|
||||
[PermissionSet(SecurityAction.Demand, Unrestricted = true)]
|
||||
[SecurityCritical]
|
||||
set {
|
||||
if (value == null) {
|
||||
throw new ArgumentNullException("value");
|
||||
}
|
||||
if (Interlocked.CompareExchange(ref _host, value, null) != null) {
|
||||
throw new InvalidOperationException(R.Property_already_set);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public abstract DefaultCacheCapabilities DefaultCacheCapabilities { get; }
|
||||
|
||||
public abstract string Name { get; }
|
||||
|
||||
//Default indexer property
|
||||
public abstract object this[string key] { get; set; }
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator() {
|
||||
return ((IEnumerable<KeyValuePair<string, object>>)this).GetEnumerator();
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract CacheEntryChangeMonitor CreateCacheEntryChangeMonitor(IEnumerable<String> keys, String regionName = null);
|
||||
|
||||
IEnumerator<KeyValuePair<string, object>> IEnumerable<KeyValuePair<string, object>>.GetEnumerator() {
|
||||
return GetEnumerator();
|
||||
}
|
||||
|
||||
protected abstract IEnumerator<KeyValuePair<string, object>> GetEnumerator();
|
||||
|
||||
//Existence check for a single item
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract bool Contains(string key, string regionName = null);
|
||||
|
||||
//The Add overloads are for adding an item without requiring the existing item to be returned. This was requested for Velocity.
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public virtual bool Add(string key, object value, DateTimeOffset absoluteExpiration, string regionName = null) {
|
||||
return (AddOrGetExisting(key, value, absoluteExpiration, regionName) == null);
|
||||
}
|
||||
|
||||
public virtual bool Add(CacheItem item, CacheItemPolicy policy) {
|
||||
return (AddOrGetExisting(item, policy) == null);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public virtual bool Add(string key, object value, CacheItemPolicy policy, string regionName = null) {
|
||||
return (AddOrGetExisting(key, value, policy, regionName) == null);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract object AddOrGetExisting(string key, object value, DateTimeOffset absoluteExpiration, string regionName = null);
|
||||
public abstract CacheItem AddOrGetExisting(CacheItem value, CacheItemPolicy policy);
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract object AddOrGetExisting(string key, object value, CacheItemPolicy policy, string regionName = null);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", Justification="The name best represents an operation on a cache")]
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract object Get(string key, string regionName = null);
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract CacheItem GetCacheItem(string key, string regionName = null);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", Justification = "The name best represents an operation on a cache")]
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract void Set(string key, object value, DateTimeOffset absoluteExpiration, string regionName = null);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", Justification = "The name best represents an operation on a cache")]
|
||||
public abstract void Set(CacheItem item, CacheItemPolicy policy);
|
||||
|
||||
[SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", Justification = "The name best represents an operation on a cache")]
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract void Set(string key, object value, CacheItemPolicy policy, string regionName = null);
|
||||
|
||||
//Get multiple items by keys
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract IDictionary<string, object> GetValues(IEnumerable<String> keys, string regionName = null);
|
||||
|
||||
public virtual IDictionary<string, object> GetValues(string regionName, params string[] keys) {
|
||||
return GetValues(keys, regionName);
|
||||
}
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract object Remove(string key, string regionName = null);
|
||||
|
||||
[SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Justification="This is assembly is a special case approved by the NetFx API review board")]
|
||||
public abstract long GetCount(string regionName = null);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user