Ejemplo n.º 1
0
        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()));
                }
            }
        }
Ejemplo n.º 2
0
//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);
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
 private ISet <int> SupportedVersionsFor(ApplicationProtocolRequest request)
 {
     return(_supportedApplicationProtocol.mutuallySupportedVersionsFor(request.Versions()));
 }
Ejemplo n.º 5
0
 public override void Handle(ApplicationProtocolRequest applicationProtocolRequest)
 {
     Out.writeInt(1);
     EncodeProtocolRequest(applicationProtocolRequest, ByteBuf.writeInt);
 }