/// <summary> /// 添加多个连接端口的数据传过来 /// </summary> public void AddConnecter(Connecter connecter) { if (connecter == null) { throw new Exception("MessagePump.AddConnecter(...) - connecter == null error!"); } if (connecter.World != null) { throw new ArgumentException("MessagePump.AddConnecter(...) - connecter.World != null error!", "connecter.World"); } m_OnlyLockAddConnecter.Enter(); { // 创建新的Listener数组,添加数据,交换数组数据,不需要锁定,没有引用时自动会回收数据 Connecter[] tempConnecter = new Connecter[m_Connecters.Length + 1]; for (int iIndex = 0; iIndex < m_Connecters.Length; ++iIndex) { tempConnecter[iIndex] = m_Connecters[iIndex]; } tempConnecter[m_Connecters.Length] = connecter; connecter.World = m_World; m_Connecters = tempConnecter; } m_OnlyLockAddConnecter.Exit(); }
/// <summary> /// /// </summary> internal ClientSocketManager(Connecter connecter, ConnectHandler connectHandler, ReceiveQueue receiveBuffer) { if (connecter == null) { throw new Exception("ClientSocketHandler.ClientSocketManager(...) - listener == null error!"); } if (connectHandler == null) { throw new Exception("ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!"); } if (receiveBuffer == null) { throw new Exception("ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!"); } m_Connecter = connecter; m_ConnectHandle = connectHandler; m_ReceiveBuffer = receiveBuffer; { // 清空数据 m_ReceiveBuffer.Clear(); } // 初始化数据 表示还没调用过Free(...)函数 m_LockFree.SetValid(); }
/// <summary> /// /// </summary> internal ClientSocketManager( Connecter connecter, ConnectHandler connectHandler, ReceiveQueue receiveBuffer ) { if ( connecter == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - listener == null error!" ); if ( connectHandler == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!" ); if ( receiveBuffer == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!" ); m_Connecter = connecter; m_ConnectHandle = connectHandler; m_ReceiveBuffer = receiveBuffer; { // 清空数据 m_ReceiveBuffer.Clear(); } // 初始化数据 表示还没调用过Free(...)函数 m_LockFree.SetValid(); }
/// <summary> /// 添加多个连接端口的数据传过来 /// </summary> public void AddConnecter( Connecter connecter ) { if ( connecter == null ) throw new Exception( "MessagePump.AddConnecter(...) - connecter == null error!" ); if ( connecter.World != null ) throw new ArgumentException( "MessagePump.AddConnecter(...) - connecter.World != null error!", "connecter.World" ); m_OnlyLockAddConnecter.Enter(); { // 创建新的Listener数组,添加数据,交换数组数据,不需要锁定,没有引用时自动会回收数据 Connecter[] tempConnecter = new Connecter[m_Connecters.Length + 1]; for ( int iIndex = 0; iIndex < m_Connecters.Length; ++iIndex ) tempConnecter[iIndex] = m_Connecters[iIndex]; tempConnecter[m_Connecters.Length] = connecter; connecter.World = m_World; m_Connecters = tempConnecter; } m_OnlyLockAddConnecter.Exit(); }