Пример #1
0
        public override void Handle(ModifierProtocolResponse modifierProtocolResponse)
        {
            EnsureMagic();
            if (modifierProtocolResponse.StatusCode() == StatusCode.Success)
            {
                Optional <Protocol_ModifierProtocol> selectedModifierProtocol = _modifierProtocolRepository.select(modifierProtocolResponse.ProtocolName(), modifierProtocolResponse.Version());
                _negotiatedModifierProtocols.Add(Pair.of(modifierProtocolResponse.ProtocolName(), selectedModifierProtocol));
            }
            else
            {
                _negotiatedModifierProtocols.Add(Pair.of(modifierProtocolResponse.ProtocolName(), null));
            }

            SendSwitchOverRequestIfReady();
        }
Пример #2
0
        public override void Handle(ModifierProtocolRequest modifierProtocolRequest)
        {
            EnsureMagic();

            ModifierProtocolResponse             response;
            Optional <Protocol_ModifierProtocol> selected = _modifierProtocolRepository.select(modifierProtocolRequest.ProtocolName(), SupportedVersionsFor(modifierProtocolRequest));

            if (selected.Present)
            {
                Protocol_ModifierProtocol modifierProtocol = selected.get();
                _protocolStackBuilder.modifier(modifierProtocol);
                response = new ModifierProtocolResponse(SUCCESS, modifierProtocol.category(), modifierProtocol.implementation());
            }
            else
            {
                response = ModifierProtocolResponse.Failure(modifierProtocolRequest.ProtocolName());
            }

            _channel.writeAndFlush(response);
        }