//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.Web.Configuration {
using System;
using System.Xml;
using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.IO;
using System.Text;
using System.Web.Caching;
using System.ComponentModel;
using System.Security.Permissions;
/*
*/
public sealed class CacheSection : ConfigurationSection {
internal static TimeSpan DefaultPrivateBytesPollTime = new TimeSpan(0, 2, 0);
private static ConfigurationPropertyCollection _properties;
#if NOT_UNTIL_LATER
private static readonly ConfigurationProperty _propCacheAPIEnabled;
private static readonly ConfigurationProperty _propDisableDependencies;
#endif
private static readonly ConfigurationProperty _propDisableMemoryCollection;
private static readonly ConfigurationProperty _propDisableExpiration;
private static readonly ConfigurationProperty _propPrivateBytesLimit;
private static readonly ConfigurationProperty _propPercentagePhysicalMemoryUsedLimit;
private static readonly ConfigurationProperty _propPrivateBytesPollTime;
private static readonly ConfigurationProperty _propProviders;
private static readonly ConfigurationProperty _propDefaultProvider;
static CacheSection() {
// Property initialization
#if NOT_UNTIL_LATER
_propCacheAPIEnabled = new ConfigurationProperty("cacheAPIEnabled", typeof(bool), true, ConfigurationPropertyOptions.None);
_propDisableDependencies = new ConfigurationProperty("disableDependencies", typeof(bool), false, ConfigurationPropertyOptions.None);
#endif
_propProviders = new ConfigurationProperty("providers", typeof(ProviderSettingsCollection), null, ConfigurationPropertyOptions.None);
_propDefaultProvider =
new ConfigurationProperty("defaultProvider",
typeof(string),
null,
null,
StdValidatorsAndConverters.NonEmptyStringValidator,
ConfigurationPropertyOptions.None);
_propDisableMemoryCollection =
new ConfigurationProperty("disableMemoryCollection",
typeof(bool),
false,
ConfigurationPropertyOptions.None);
_propDisableExpiration =
new ConfigurationProperty("disableExpiration",
typeof(bool),
false,
ConfigurationPropertyOptions.None);
_propPrivateBytesLimit =
new ConfigurationProperty("privateBytesLimit",
typeof(long),
(long)0,
null,
new LongValidator(0, long.MaxValue),
ConfigurationPropertyOptions.None);
_propPercentagePhysicalMemoryUsedLimit =
new ConfigurationProperty("percentagePhysicalMemoryUsedLimit",
typeof(int),
(int)0,
null,
new IntegerValidator(0, 100),
ConfigurationPropertyOptions.None);
_propPrivateBytesPollTime =
new ConfigurationProperty("privateBytesPollTime",
typeof(TimeSpan),
DefaultPrivateBytesPollTime,
StdValidatorsAndConverters.InfiniteTimeSpanConverter,
StdValidatorsAndConverters.PositiveTimeSpanValidator,
ConfigurationPropertyOptions.None);
_properties = new ConfigurationPropertyCollection();
#if NOT_UNTIL_LATER
_properties.Add(_propCacheAPIEnabled);
_properties.Add(_propDisableDependencies);
#endif
_properties.Add(_propProviders);
_properties.Add(_propDefaultProvider);
_properties.Add(_propDisableMemoryCollection);
_properties.Add(_propDisableExpiration);
_properties.Add(_propPrivateBytesLimit);
_properties.Add(_propPercentagePhysicalMemoryUsedLimit);
_properties.Add(_propPrivateBytesPollTime);
}
public CacheSection() {
}
[ConfigurationProperty("providers")]
public ProviderSettingsCollection Providers {
get {
return (ProviderSettingsCollection)base[_propProviders];
}
}
[ConfigurationProperty("defaultProvider", DefaultValue = null)]
[StringValidator(MinLength = 1)]
public string DefaultProvider {
get {
return (string)base[_propDefaultProvider];
}
set {
base[_propDefaultProvider] = value;
}
}
#if NOT_UNTIL_LATER
[ConfigurationProperty("cacheAPIEnabled", DefaultValue = true)]
public bool CacheAPIEnabled
{
get
{
return (bool)base[_propCacheAPIEnabled];
}
set
{
base[_propCacheAPIEnabled] = value;
}
}
#endif
[ConfigurationProperty("disableMemoryCollection", DefaultValue = false)]
public bool DisableMemoryCollection {
get {
return (bool)base[_propDisableMemoryCollection];
}
set {
base[_propDisableMemoryCollection] = value;
}
}
[ConfigurationProperty("disableExpiration", DefaultValue = false)]
public bool DisableExpiration {
get {
return (bool)base[_propDisableExpiration];
}
set {
base[_propDisableExpiration] = value;
}
}
#if NOT_UNTIL_LATER
[ConfigurationProperty("disableDependencies", DefaultValue = false)]
public bool DisableDependencies
{
get
{
return (bool)base[_propDisableDependencies];
}
set
{
base[_propDisableDependencies] = value;
}
}
#endif
[ConfigurationProperty("privateBytesLimit", DefaultValue = (long)0)]
[LongValidator(MinValue = 0)]
public long PrivateBytesLimit {
get {
return (long)base[_propPrivateBytesLimit];
}
set {
base[_propPrivateBytesLimit] = value;
}
}
[ConfigurationProperty("percentagePhysicalMemoryUsedLimit", DefaultValue = (int)0)]
[IntegerValidator(MinValue = 0, MaxValue = 100)]
public int PercentagePhysicalMemoryUsedLimit {
get {
return (int)base[_propPercentagePhysicalMemoryUsedLimit];
}
set {
base[_propPercentagePhysicalMemoryUsedLimit] = value;
}
}
protected override ConfigurationPropertyCollection Properties {
get {
return _properties;
}
}
[ConfigurationProperty("privateBytesPollTime", DefaultValue = "00:02:00")]
[TypeConverter(typeof(InfiniteTimeSpanConverter))]
public TimeSpan PrivateBytesPollTime {
get {
return (TimeSpan)base[_propPrivateBytesPollTime];
}
set {
base[_propPrivateBytesPollTime] = value;
}
}
}
}