public override void Remove(SessionBase session) { if (null == session) { Logger.Error("ClientSessionManager Remove() session == null"); return; } m_container[Get(session.GetNumber())].Remove(session.GetNumber()); }
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)); }
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)); }
//private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim(); public bool TryAdd(SessionBase session) { return(m_dicSessions.TryAdd(session.GetNumber(), session)); }