2025-04-27 07:49:33 -04:00

86 lines
2.4 KiB
Plaintext

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name :
connstate.cool
Abstract:
Connection state helper
Author:
Bilal Alam (BAlam) 2-Aug-99
Environment:
COM+ - User Mode Managed Run Time
Project:
Web Server
--*/
using System;
using System.ASP;
using System.ASP.Cache;
using System.ASP.Util;
namespace System.IIS
{
internal abstract class ConnectionStateItem
{
public void OnCacheItemRemoved( Object sender, CacheItemRemovedEvent e )
{
Dispose();
}
public abstract void Dispose();
};
internal class ConnectionState
{
private const int CONNECTION_STATE_LIFE = 1000 * 60;
static public ConnectionStateItem GetState( HttpContext context,
string strMod )
{
CacheKey cacheKey = new CacheKey( strMod,
context.Request.ConnectionID.ToString(),
null );
return (ConnectionStateItem) HttpRuntime.Cache.Get( cacheKey );
}
static public void SetState( HttpContext context,
string strMod,
ConnectionStateItem value )
{
CacheKey cacheKey = new CacheKey( strMod,
context.Request.ConnectionID.ToString(),
null );
CacheItemOptions cacheOptions = new CacheItemOptions();
cacheOptions.ExpiresInterval = CONNECTION_STATE_LIFE;
cacheOptions.OnRemoveHandler = new CacheItemRemovedHandler(
value.OnCacheItemRemoved );
HttpRuntime.Cache.Add( cacheKey, value, cacheOptions );
}
static public void RemoveState( HttpContext context,
string strMod )
{
CacheKey cacheKey = new CacheKey( strMod,
context.Request.ConnectionID.ToString(),
null );
HttpRuntime.Cache.Remove( cacheKey );
}
};
}