Пример #1
0
        public NetworkMessage CreateNetworkMessage(BinaryReader reader)
        {
            uint         byteCount  = reader.NetworkReadUInt32();
            CmppCommands command    = (CmppCommands)reader.NetworkReadUInt32();
            uint         sequenceId = reader.NetworkReadUInt32();

            CmppMessage message = null;

            switch (command)
            {
            case CmppCommands.Connect:
                message = new CmppMessageConnect();
                break;

            case CmppCommands.ConnectResponse:
                message = new CmppMessageConnectResponse();
                break;

            case CmppCommands.Submit:
                message = new CmppMessageSubmit();
                break;

            case CmppCommands.SubmitResponse:
                message = new CmppMessageSubmitResponse();
                break;

            case CmppCommands.Deliver:
                message = new CmppMessageDeliver();
                break;

            case CmppCommands.DeliverResponse:
                message = new CmppMessageDeliverResponse();
                break;

            case CmppCommands.ActiveTest:
                message = new CmppMessageActiveTest();
                break;

            case CmppCommands.ActiveTestResponse:
                message = new CmppMessageActiveTestResponse();
                break;

            case CmppCommands.Terminate:
                message = new CmppMessageTerminate();
                break;

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

            if (message != null)
            {
                message.Command    = command;
                message.ByteCount  = byteCount;
                message.SequenceId = sequenceId;
                message.NetworkRead(reader);
            }
            return(message);
        }
Пример #2
0
        private async Task DoReceiveDeliverAsync(CmppMessageDeliver message)
        {
            if (message.DeliveryReportRequired == 0) //up link request
            {
                this.RaiseDeliverReceived(message);
            }
            else //deliver report
            {
                var report = message.GetReport();
                this.RaiseReportReceived(report);
            }

            CmppMessageDeliverResponse response = new CmppMessageDeliverResponse()
            {
                SequenceId = message.SequenceId,
                MessageId  = message.Id,
                Result     = 0
            };

            await this.Send(response);
        }