private bool HandleRequests(PacketStream stream, CancellationToken ct) { bool run = true; PacketBase request = stream.ReadPacket(); switch (request.Type) { case PacketType.TusCommonAreaAcquisitionRequest: var getCommonAreaRequest = (TusCommonAreaAcquisitionRequest)request; var getCommonAreaResponse = new TusCommonAreaAcquisitionResponse { Properties = UrDragon.ToProperties(getCommonAreaRequest.PropertyIndices) }; stream.WritePacket(getCommonAreaResponse); break; case PacketType.DisconnectionRequest: stream.WritePacket(new DisconnectionResponse { Success = true }); run = false; break; default: stream.WritePacket(new DisconnectionNotification { Notification = "" }); run = false; break; } return(run); }
public PacketBase ReadPacket() { RawPacket rawPacket = ReadRawPacket(); PacketBase packet; switch (rawPacket.Type) { case PacketType.OnlineCheckRequest: packet = new OnlineCheckRequest(); break; case PacketType.OnlineCheckResponse: packet = new OnlineCheckResponse(); break; case PacketType.DisconnectionRequest: packet = new DisconnectionRequest(); break; case PacketType.DisconnectionResponse: packet = new DisconnectionResponse(); break; case PacketType.DisconnectionNotification: packet = new DisconnectionNotification(); break; case PacketType.ReconnectionRequest: packet = new ReconnectionRequest(); break; case PacketType.FastDataRequest: packet = new FastDataRequest(); break; case PacketType.FastDataResponse: packet = new FastDataResponse(); break; case PacketType.ConnectionSummaryNotification: packet = new ConnectionSummaryNotification(); break; case PacketType.AuthenticationInformationRequestHeader: packet = new AuthenticationInformationRequestHeader(); break; case PacketType.AuthenticationInformationResponseHeader: packet = new AuthenticationInformationResponseHeader(); break; case PacketType.AuthenticationInformationRequestData: packet = new AuthenticationInformationRequestData(); break; case PacketType.AuthenticationInformationResponseData: packet = new AuthenticationInformationResponseData(); break; case PacketType.AuthenticationInformationRequestFooter: packet = new AuthenticationInformationRequestFooter(); break; case PacketType.AuthenticationInformationResponseFooter: packet = new AuthenticationInformationResponseFooter(); break; case PacketType.TusCommonAreaAcquisitionRequest: packet = new TusCommonAreaAcquisitionRequest(); break; case PacketType.TusCommonAreaAcquisitionResponse: packet = new TusCommonAreaAcquisitionResponse(); break; case PacketType.TusCommonAreaSettingsRequest: packet = new TusCommonAreaSettingsRequest(); break; case PacketType.TusCommonAreaSettingsResponse: packet = new TusCommonAreaSettingsResponse(); break; case PacketType.TusCommonAreaAddRequest: packet = new TusCommonAreaAddRequest(); break; case PacketType.TusCommonAreaAddResponse: packet = new TusCommonAreaAddResponse(); break; case PacketType.TusUserAreaWriteRequestHeader: packet = new TusUserAreaWriteRequestHeader(); break; case PacketType.TusUserAreaWriteResponseHeader: packet = new TusUserAreaWriteResponseHeader(); break; case PacketType.TusUserAreaWriteRequestData: packet = new TusUserAreaWriteRequestData(); break; case PacketType.TusUserAreaWriteResponseData: packet = new TusUserAreaWriteResponseData(); break; case PacketType.TusUserAreaWriteRequestFooter: packet = new TusUserAreaWriteRequestFooter(); break; case PacketType.TusUserAreaWriteResponseFooter: packet = new TusUserAreaWriteResponseFooter(); break; case PacketType.TusUserAreaReadRequestHeader: packet = new TusUserAreaReadRequestHeader(); break; case PacketType.TusUserAreaReadResponseHeader: packet = new TusUserAreaReadResponseHeader(); break; case PacketType.TusUserAreaReadRequestData: packet = new TusUserAreaReadRequestData(); break; case PacketType.TusUserAreaReadResponseData: packet = new TusUserAreaReadResponseData(); break; case PacketType.TusUserAreaReadRequestFooter: packet = new TusUserAreaReadRequestFooter(); break; case PacketType.TusUserAreaReadResponseFooter: packet = new TusUserAreaReadResponseFooter(); break; default: return(rawPacket); } packet.Sequence = rawPacket.Sequence; packet.ParsePayload(rawPacket.Payload); return(packet); }