コード例 #1
0
        private void _ProcEstablishEvent(LPNetEvent netEvent)
        {
            LPSocker            socker         = null;
            LPEstablishNetEvent establishEvent = null;

            if (LOG_ERROR(netEvent != null))
            {
                goto Exit0;
            }

            establishEvent = (LPEstablishNetEvent)netEvent;
            socker         = establishEvent.Socker;

            if (socker.IsAcceptCreate)
            {
                m_NetMessageHandler.OnAccepted(socker);
            }
            else
            {
                m_NetMessageHandler.OnConnected(socker);
            }

            socker.PostRecv();

Exit0:
            return;
        }
コード例 #2
0
        internal bool PushEstablishEvent(LPSocker socker)
        {
            bool result = false;
            LPEstablishNetEvent establishEvent = null;

            if (LOG_ERROR(socker != null))
            {
                goto Exit0;
            }


            establishEvent = (LPEstablishNetEvent)_CreateEvent(ENetEventType.Establish);
            if (LOG_ERROR(establishEvent != null))
            {
                goto Exit0;
            }


            establishEvent.Flag   = socker.ID;
            establishEvent.Socker = socker;

            lock (m_EventListLocker[establishEvent.Flag % m_EventListCount])
            {
                result = m_EventLists[establishEvent.Flag % m_EventListCount].PushRear(establishEvent);
                if (LOG_ERROR(result))
                {
                    goto Exit0;
                }
            }

            return(true);

Exit0:
            return(false);
        }
コード例 #3
0
        private LPNetEvent _CreateEvent(ENetEventType eType)
        {
            LPNetEvent netEvent = null;

            switch (eType)
            {
            case ENetEventType.Recv:
            {
                netEvent = new LPRecvNetEvent();
                if (LOG_ERROR(netEvent != null))
                {
                    goto Exit0;
                }
                netEvent.eType = ENetEventType.Recv;
            }
            break;

            case ENetEventType.Terminate:
            {
                netEvent = new LPTerminateNetEvent();
                if (LOG_ERROR(netEvent != null))
                {
                    goto Exit0;
                }
                netEvent.eType = ENetEventType.Terminate;
            }
            break;

            case ENetEventType.Establish:
            {
                netEvent = new LPEstablishNetEvent();
                if (LOG_ERROR(netEvent != null))
                {
                    goto Exit0;
                }
                netEvent.eType = ENetEventType.Establish;
            }
            break;

            case ENetEventType.ConnectError:
            {
                netEvent = new LPConnectErrorNetEvent();
                if (LOG_ERROR(netEvent != null))
                {
                    goto Exit0;
                }
                netEvent.eType = ENetEventType.ConnectError;
            }
            break;

            default:
                if (LOG_ERROR(false))
                {
                    goto Exit0;
                }
                break;
            }

            return(netEvent);

Exit0:
            return(null);
        }