/// <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));
                }
            }
Пример #2
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;
 }
Пример #3
0
 /// <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;
 }