Exemple #1
0
        private async Task DoReceiveDeliverAsync(SmgpMessageDeliver message)
        {
            if (message.ReportRequired == 0) //up link request
            {
                this.RaiseDeliverReceived(message);
            }
            else
            {
                var report = message.GetReport();
                this.RaiseReportReceived(report);
            }
            var response = new SmgpMessageDeliverResponse()
            {
                SequenceId = message.SequenceId,
                Id         = message.Id,
                Status     = 0
            };

            await this.Send(response);
        }
        public NetworkMessage CreateNetworkMessage(BinaryReader reader)
        {
            uint         byteCount  = reader.NetworkReadUInt32();
            SmgpCommands command    = (SmgpCommands)reader.NetworkReadUInt32();
            uint         sequenceId = reader.NetworkReadUInt32();

            SmgpMessage message = null;

            switch (command)
            {
            case SmgpCommands.Login:
                message = new SmgpMessageLogin();
                break;

            case SmgpCommands.LoginResponse:
                message = new SmgpMessageLoginResponse();
                break;

            case SmgpCommands.Submit:
                message = new SmgpMessageSubmit();
                break;

            case SmgpCommands.SubmitResponse:
                message = new SmgpMessageSubmitResponse();
                break;

            case SmgpCommands.Deliver:
                message = new SmgpMessageDeliver();
                break;

            case SmgpCommands.DeliverResponse:
                message = new SmgpMessageDeliverResponse();
                break;

            case SmgpCommands.ActiveTest:
                message = new SmgpMessageActiveTest();
                break;

            case SmgpCommands.ActiveTestResponse:
                message = new SmgpMessageActiveTestResponse();
                break;

            case SmgpCommands.Exit:
                message = new SmgpMessageExit();
                break;

            case SmgpCommands.ExitResponse:
                message = new SmgpMessageExitResponse();
                break;

            default:
                message = new SmgpMessage();
                break;
            } //end switch

            if (message != null)
            {
                message.Command    = command;
                message.ByteCount  = byteCount;
                message.SequenceId = sequenceId;
                message.NetworkRead(reader);
            }
            return(message);
        }