public override void Remove(SessionBase session)
        {
            if (null == session)
            {
                Logger.Error("ClientSessionManager Remove() session == null");
                return;
            }

            m_container[Get(session.GetNumber())].Remove(session.GetNumber());
        }
Exemplo n.º 2
0
        public void DestroySession(SessionBase session)
        {
            if (null == session)
            {
                Logger.Error("DestroySession session == null");
                return;
            }

            if (null != m_managerSAEA)
            {
                session.m_saeaReciver.UserToken = null;
                session.m_saeaSender.UserToken  = null;
                // 버퍼 셋팅도 다시 해줘야 하나? 최초 BufferManager에서 할당받은 위치겠지만
                m_managerSAEA.PushRecvSAEA(session.m_saeaReciver);
                m_managerSAEA.PushSendSAEA(session.m_saeaSender);
            }

            long id = session.GetNumber();

            m_keyGenerator.Free(id);
            //m_managerSession.Remove(session);
            if (null != m_fnAddSession)
            {
                m_fnRemoveSession(session);
            }

            //session = null;
            Logger.Debug(string.Format("DestroySession {0}", id));
        }
Exemplo n.º 3
0
        public override void Remove(SessionBase session)
        {
            if (null == session)
            {
                Logger.Error("ServerSessionManager Remove() session == null");
                return;
            }
            if (false == m_dicSessions.ContainsKey(session.GetNumber()))
            {
                Logger.Error("Remove ContainsKey == false");
                return;
            }

            SessionBase outSession = null;

            m_dicSessions.TryRemove(session.GetNumber(), out outSession);
        }
 public override bool TryAdd(SessionBase session)
 {
     if (null == session)
     {
         Logger.Error("ClientSessionManager Add() session == null");
         return(false);
     }
     return(m_container[Get(session.GetNumber())].TryAdd(session));
 }
Exemplo n.º 5
0
        //private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();

        public bool TryAdd(SessionBase session)
        {
            return(m_dicSessions.TryAdd(session.GetNumber(), session));
        }