/// <summary> /// Invoked when a cache entry has been deleted. /// </summary> /// <param name="evt"> /// The <see cref="CacheEventArgs"/> carrying the remove /// information. /// </param> public override void EntryDeleted(CacheEventArgs evt) { AbstractSessionModelManager modelManager = (AbstractSessionModelManager)m_modelManager; modelManager.SessionCache.RemoveCacheListener(this, EventFilter); SessionKey key = (SessionKey)evt.Key; SessionHolder holder = (SessionHolder)evt.OldValue; if (holder != null) { holder.Model = modelManager.Deserialize(holder.SerializedModel); holder.Model.SessionId = key; modelManager.SessionEndCallback.Invoke(key.SessionId, new SessionStateStoreData(holder.Model, null, (int)holder.Timeout.TotalMinutes)); } else { modelManager.SessionEndCallback.Invoke(key.SessionId, new SessionStateStoreData(null, null, 0)); } }
/// <summary> /// Construct TraditionalSessionModel instance. /// </summary> /// <param name="manager">Manager for this model.</param> /// <param name="binItems">Serialized items.</param> public TraditionalSessionModel(AbstractSessionModelManager manager, Binary binItems) : base(manager) { m_binItems = binItems; }
/// <summary> /// Construct TraditionalSessionModel. /// </summary> /// <param name="manager">Manager for this model.</param> public TraditionalSessionModel(AbstractSessionModelManager manager) : this(manager, null) { }
/// <summary> /// Construct SplitSessionModel. /// </summary> /// <param name="manager">Manager for this model.</param> /// <param name="binModel">Serialized model.</param> public SplitSessionModel(AbstractSessionModelManager manager, Binary binModel) : base(manager, binModel) { }
/// <summary> /// Construct SplitSessionModel. /// </summary> /// <param name="manager">Manager for this model.</param> public SplitSessionModel(AbstractSessionModelManager manager) : base(manager) { }
/// <summary> /// Construct MonolithicSessionModel. /// </summary> /// <param name="manager">Manager for this model.</param> public MonolithicSessionModel(AbstractSessionModelManager manager) : base(manager) { }
/// <summary> /// Construct session model. /// </summary> /// <param name="model">Manager for this model.</param> protected AbstractSessionModel(AbstractSessionModelManager model) : base(CASE_INSENSITIVE_COMPARER) { m_manager = model; m_gate = GateFactory.NewGate; }