public void MatchMakerEndHandler(bnet.protocol.notification.Notification notification)
    {
        BattleNetErrors errors = (BattleNetErrors)((uint)ProtocolHelper.GetUintAttribute(notification.AttributeList, "error", 0L, null));
        ulong           num    = ProtocolHelper.GetUintAttribute(notification.AttributeList, "game_request_id", 0L, null);

        object[] args = new object[] { num, (uint)errors };
        base.ApiLog.LogDebug("MM_END requestId={0} code={1}", args);
        BattleNet.QueueEvent.Type queueType = BattleNet.QueueEvent.Type.QUEUE_LEAVE;
        switch (errors)
        {
        case BattleNetErrors.ERROR_OK:
            queueType = BattleNet.QueueEvent.Type.QUEUE_LEAVE;
            break;

        case BattleNetErrors.ERROR_GAME_MASTER_GAME_ENTRY_CANCELLED:
            queueType = BattleNet.QueueEvent.Type.QUEUE_CANCEL;
            break;

        case BattleNetErrors.ERROR_GAME_MASTER_GAME_ENTRY_ABORTED_CLIENT_DROPPED:
            queueType = BattleNet.QueueEvent.Type.ABORT_CLIENT_DROPPED;
            break;

        default:
            queueType = BattleNet.QueueEvent.Type.QUEUE_AMM_ERROR;
            break;
        }
        object[] objArray2 = new object[] { queueType, (uint)errors };
        base.ApiLog.LogDebug("MatchMakerEndHandler event={0} code={1}", objArray2);
        this.AddQueueEvent(queueType, 0, 0, (int)errors, null);
    }
    public void QueueExitHandler(bnet.protocol.notification.Notification notification)
    {
        BattleNetErrors errors = (BattleNetErrors)((uint)ProtocolHelper.GetUintAttribute(notification.AttributeList, "error", 0L, null));
        ulong           num    = ProtocolHelper.GetUintAttribute(notification.AttributeList, "game_request_id", 0L, null);

        object[] args = new object[] { num, (uint)errors };
        base.ApiLog.LogDebug("QueueExitHandler: requestId={0} code={1}", args);
        if (errors != BattleNetErrors.ERROR_OK)
        {
            BattleNet.QueueEvent.Type queueType = BattleNet.QueueEvent.Type.QUEUE_DELAY_ERROR;
            object[] objArray2 = new object[] { queueType, (uint)errors };
            base.ApiLog.LogDebug("QueueExitHandler event={0} code={1}", objArray2);
            this.AddQueueEvent(queueType, 0, 0, (int)errors, null);
        }
    }