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(); }
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); }