public override void Handle(ApplicationProtocolRequest request) { EnsureMagic(); ApplicationProtocolResponse response; if (!request.ProtocolName().Equals(_supportedApplicationProtocol.identifier().canonicalName())) { response = ApplicationProtocolResponse.NoProtocol; _channel.writeAndFlush(response); Decline(string.Format("Requested protocol {0} not supported", request.ProtocolName())); } else { Optional <Protocol_ApplicationProtocol> selected = _applicationProtocolRepository.select(request.ProtocolName(), SupportedVersionsFor(request)); if (selected.Present) { Protocol_ApplicationProtocol selectedProtocol = selected.get(); _protocolStackBuilder.application(selectedProtocol); response = new ApplicationProtocolResponse(SUCCESS, selectedProtocol.category(), selectedProtocol.implementation()); _channel.writeAndFlush(response); } else { response = ApplicationProtocolResponse.NoProtocol; _channel.writeAndFlush(response); Decline(string.Format("Do not support requested protocol {0} versions {1}", request.ProtocolName(), request.Versions())); } } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldSendApplicationProtocolRequestOnInitiation() public virtual void ShouldSendApplicationProtocolRequestOnInitiation() { _client.initiate(_channel, _applicationProtocolRepository, _modifierProtocolRepository); ApplicationProtocolRequest expectedMessage = new ApplicationProtocolRequest(_applicationProtocolIdentifier.canonicalName(), _applicationProtocolRepository.getAll(_applicationProtocolIdentifier, emptyList()).versions()); verify(_channel).writeAndFlush(expectedMessage); }
protected internal override void Decode(ChannelHandlerContext ctx, ByteBuf @in, IList <object> @out) { int messageCode = @in.readInt(); switch (messageCode) { case InitialMagicMessage.MESSAGE_CODE: { string magic = StringMarshal.unmarshal(@in); @out.Add(new InitialMagicMessage(magic)); return; } case 1: { //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: ApplicationProtocolRequest applicationProtocolRequest = DecodeProtocolRequest(ApplicationProtocolRequest::new, @in, ByteBuf.readInt); @out.Add(applicationProtocolRequest); return; } case 2: //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: ModifierProtocolRequest modifierProtocolRequest = DecodeProtocolRequest(ModifierProtocolRequest::new, @in, StringMarshal.unmarshal); @out.Add(modifierProtocolRequest); return; case 3: { string protocolName = StringMarshal.unmarshal(@in); int version = @in.readInt(); int numberOfModifierProtocols = @in.readInt(); IList <Pair <string, string> > modifierProtocols = Stream.generate(() => Pair.of(StringMarshal.unmarshal(@in), StringMarshal.unmarshal(@in))).limit(numberOfModifierProtocols).collect(Collectors.toList()); @out.Add(new SwitchOverRequest(protocolName, version, modifierProtocols)); return; } default: // TODO return; } }
private ISet <int> SupportedVersionsFor(ApplicationProtocolRequest request) { return(_supportedApplicationProtocol.mutuallySupportedVersionsFor(request.Versions())); }
public override void Handle(ApplicationProtocolRequest applicationProtocolRequest) { Out.writeInt(1); EncodeProtocolRequest(applicationProtocolRequest, ByteBuf.writeInt); }