コード例 #1
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);
        }
コード例 #2
0
 private ISet <string> SupportedVersionsFor(ModifierProtocolRequest request)
 {
     return(_modifierProtocolRepository.supportedProtocolFor(request.ProtocolName()).map(supported => supported.mutuallySupportedVersionsFor(request.Versions())).orElse(Collections.emptySet()));
 }