internal async ValueTask ProcessQueue(RabbitMQProtocolReader protocol, FrameHeader header, MethodHeader method, CancellationToken token = default) { switch (method.MethodId) { case 11: //declare-ok { var declareOk = await protocol.ReadQueueDeclareOkAsync(token).ConfigureAwait(false); await _channelHandler.OnQueueDeclareOkAsync(header.Channel, declareOk).ConfigureAwait(false); break; } case 21: //bind-ok { var bindOk = await protocol.ReadQueueBindOkAsync(token).ConfigureAwait(false); await _channelHandler.OnQueueBindOkAsync(header.Channel).ConfigureAwait(false); break; } case 51: //unbind-ok { var unbindOk = await protocol.ReadQueueUnbindOkAsync(token).ConfigureAwait(false); await _channelHandler.OnQueueUnbindOkAsync(header.Channel).ConfigureAwait(false); break; } case 31: //purge-ok { var purged = await protocol.ReadQueuePurgeOkAsync(token).ConfigureAwait(false); await _channelHandler.OnQueuePurgeOkAsync(header.Channel, purged).ConfigureAwait(false); break; } case 41: //delete-ok { var deleted = await protocol.ReadQueueDeleteOkAsync(token).ConfigureAwait(false);; await _channelHandler.OnQueueDeleteOkAsync(header.Channel, deleted).ConfigureAwait(false);; break; } default: throw new RabbitMQMethodException(nameof(ProcessQueue), method.ClassId, method.MethodId); } }