|
30 | 30 | //---------------------------------------------------------------------------
|
31 | 31 |
|
32 | 32 | using System.Collections.Generic;
|
| 33 | + |
33 | 34 | using RabbitMQ.Client.client.framing;
|
34 |
| -using RabbitMQ.Client.client.impl; |
35 | 35 | using RabbitMQ.Client.Impl;
|
36 | 36 |
|
37 | 37 | namespace RabbitMQ.Client.Framing.Impl
|
@@ -297,113 +297,115 @@ public override void TxSelect()
|
297 | 297 |
|
298 | 298 | protected override bool DispatchAsynchronous(in IncomingCommand cmd)
|
299 | 299 | {
|
300 |
| - switch (cmd.CommandId) |
| 300 | + int classType = (int)cmd.CommandId >> 16; |
| 301 | + int methodType = (int)cmd.CommandId & 0x00FF; |
| 302 | + return classType switch |
| 303 | + { |
| 304 | + ClassConstants.Basic => DispatchBasicCommand(in cmd, methodType), |
| 305 | + ClassConstants.Channel => DispatchChannelCommand(in cmd, methodType), |
| 306 | + ClassConstants.Connection => DispatchConnectionCommand(in cmd, methodType), |
| 307 | + ClassConstants.Queue => DispatchQueueCommand(in cmd, methodType), |
| 308 | + _ => false, |
| 309 | + }; |
| 310 | + } |
| 311 | + |
| 312 | + private bool DispatchQueueCommand(in IncomingCommand cmd, int methodType) |
| 313 | + { |
| 314 | + switch (methodType) |
| 315 | + { |
| 316 | + case QueueMethodConstants.DeclareOk: |
| 317 | + HandleQueueDeclareOk(in cmd); |
| 318 | + return true; |
| 319 | + default: |
| 320 | + return false; |
| 321 | + } |
| 322 | + } |
| 323 | + |
| 324 | + private bool DispatchConnectionCommand(in IncomingCommand cmd, int methodType) |
| 325 | + { |
| 326 | + switch (methodType) |
| 327 | + { |
| 328 | + case ConnectionMethodConstants.Start: |
| 329 | + HandleConnectionStart(in cmd); |
| 330 | + return true; |
| 331 | + case ConnectionMethodConstants.Secure: |
| 332 | + HandleConnectionSecure(in cmd); |
| 333 | + return true; |
| 334 | + case ConnectionMethodConstants.Tune: |
| 335 | + HandleConnectionTune(in cmd); |
| 336 | + return true; |
| 337 | + case ConnectionMethodConstants.Close: |
| 338 | + HandleConnectionClose(in cmd); |
| 339 | + return true; |
| 340 | + case ConnectionMethodConstants.Blocked: |
| 341 | + HandleConnectionBlocked(in cmd); |
| 342 | + return true; |
| 343 | + case ConnectionMethodConstants.Unblocked: |
| 344 | + cmd.ReturnMethodBuffer(); |
| 345 | + HandleConnectionUnblocked(); |
| 346 | + return true; |
| 347 | + default: |
| 348 | + return false; |
| 349 | + } |
| 350 | + } |
| 351 | + |
| 352 | + private bool DispatchChannelCommand(in IncomingCommand cmd, int methodType) |
| 353 | + { |
| 354 | + switch (methodType) |
| 355 | + { |
| 356 | + case ChannelMethodConstants.Flow: |
| 357 | + HandleChannelFlow(in cmd); |
| 358 | + return true; |
| 359 | + case ChannelMethodConstants.Close: |
| 360 | + HandleChannelClose(in cmd); |
| 361 | + return true; |
| 362 | + case ChannelMethodConstants.CloseOk: |
| 363 | + cmd.ReturnMethodBuffer(); |
| 364 | + HandleChannelCloseOk(); |
| 365 | + return true; |
| 366 | + default: |
| 367 | + return false; |
| 368 | + } |
| 369 | + } |
| 370 | + |
| 371 | + private bool DispatchBasicCommand(in IncomingCommand cmd, int methodType) |
| 372 | + { |
| 373 | + switch (methodType) |
301 | 374 | {
|
302 |
| - case ProtocolCommandId.BasicDeliver: |
303 |
| - { |
304 |
| - HandleBasicDeliver(in cmd); |
305 |
| - return true; |
306 |
| - } |
307 |
| - case ProtocolCommandId.BasicAck: |
308 |
| - { |
309 |
| - HandleBasicAck(in cmd); |
310 |
| - return true; |
311 |
| - } |
312 |
| - case ProtocolCommandId.BasicCancel: |
313 |
| - { |
314 |
| - HandleBasicCancel(in cmd); |
315 |
| - return true; |
316 |
| - } |
317 |
| - case ProtocolCommandId.BasicCancelOk: |
318 |
| - { |
319 |
| - HandleBasicCancelOk(in cmd); |
320 |
| - return true; |
321 |
| - } |
322 |
| - case ProtocolCommandId.BasicConsumeOk: |
323 |
| - { |
324 |
| - HandleBasicConsumeOk(in cmd); |
325 |
| - return true; |
326 |
| - } |
327 |
| - case ProtocolCommandId.BasicGetEmpty: |
328 |
| - { |
329 |
| - cmd.ReturnMethodBuffer(); |
330 |
| - HandleBasicGetEmpty(); |
331 |
| - return true; |
332 |
| - } |
333 |
| - case ProtocolCommandId.BasicGetOk: |
334 |
| - { |
335 |
| - HandleBasicGetOk(in cmd); |
336 |
| - return true; |
337 |
| - } |
338 |
| - case ProtocolCommandId.BasicNack: |
339 |
| - { |
340 |
| - HandleBasicNack(in cmd); |
341 |
| - return true; |
342 |
| - } |
343 |
| - case ProtocolCommandId.BasicRecoverOk: |
344 |
| - { |
345 |
| - cmd.ReturnMethodBuffer(); |
346 |
| - HandleBasicRecoverOk(); |
347 |
| - return true; |
348 |
| - } |
349 |
| - case ProtocolCommandId.BasicReturn: |
350 |
| - { |
351 |
| - HandleBasicReturn(in cmd); |
352 |
| - return true; |
353 |
| - } |
354 |
| - case ProtocolCommandId.ChannelClose: |
355 |
| - { |
356 |
| - HandleChannelClose(in cmd); |
357 |
| - return true; |
358 |
| - } |
359 |
| - case ProtocolCommandId.ChannelCloseOk: |
360 |
| - { |
361 |
| - cmd.ReturnMethodBuffer(); |
362 |
| - HandleChannelCloseOk(); |
363 |
| - return true; |
364 |
| - } |
365 |
| - case ProtocolCommandId.ChannelFlow: |
366 |
| - { |
367 |
| - HandleChannelFlow(in cmd); |
368 |
| - return true; |
369 |
| - } |
370 |
| - case ProtocolCommandId.ConnectionBlocked: |
371 |
| - { |
372 |
| - HandleConnectionBlocked(in cmd); |
373 |
| - return true; |
374 |
| - } |
375 |
| - case ProtocolCommandId.ConnectionClose: |
376 |
| - { |
377 |
| - HandleConnectionClose(in cmd); |
378 |
| - return true; |
379 |
| - } |
380 |
| - case ProtocolCommandId.ConnectionSecure: |
381 |
| - { |
382 |
| - HandleConnectionSecure(in cmd); |
383 |
| - return true; |
384 |
| - } |
385 |
| - case ProtocolCommandId.ConnectionStart: |
386 |
| - { |
387 |
| - HandleConnectionStart(in cmd); |
388 |
| - return true; |
389 |
| - } |
390 |
| - case ProtocolCommandId.ConnectionTune: |
391 |
| - { |
392 |
| - HandleConnectionTune(in cmd); |
393 |
| - return true; |
394 |
| - } |
395 |
| - case ProtocolCommandId.ConnectionUnblocked: |
396 |
| - { |
397 |
| - cmd.ReturnMethodBuffer(); |
398 |
| - HandleConnectionUnblocked(); |
399 |
| - return true; |
400 |
| - } |
401 |
| - case ProtocolCommandId.QueueDeclareOk: |
402 |
| - { |
403 |
| - HandleQueueDeclareOk(in cmd); |
404 |
| - return true; |
405 |
| - } |
406 |
| - default: return false; |
| 375 | + case BasicMethodConstants.ConsumeOk: |
| 376 | + HandleBasicConsumeOk(in cmd); |
| 377 | + return true; |
| 378 | + case BasicMethodConstants.Cancel: |
| 379 | + HandleBasicCancel(in cmd); |
| 380 | + return true; |
| 381 | + case BasicMethodConstants.CancelOk: |
| 382 | + HandleBasicCancelOk(in cmd); |
| 383 | + return true; |
| 384 | + case BasicMethodConstants.Return: |
| 385 | + HandleBasicReturn(in cmd); |
| 386 | + return true; |
| 387 | + case BasicMethodConstants.Deliver: |
| 388 | + HandleBasicDeliver(in cmd); |
| 389 | + return true; |
| 390 | + case BasicMethodConstants.GetOk: |
| 391 | + HandleBasicGetOk(in cmd); |
| 392 | + return true; |
| 393 | + case BasicMethodConstants.GetEmpty: |
| 394 | + cmd.ReturnMethodBuffer(); |
| 395 | + HandleBasicGetEmpty(); |
| 396 | + return true; |
| 397 | + case BasicMethodConstants.Ack: |
| 398 | + HandleBasicAck(in cmd); |
| 399 | + return true; |
| 400 | + case BasicMethodConstants.RecoverOk: |
| 401 | + cmd.ReturnMethodBuffer(); |
| 402 | + HandleBasicRecoverOk(); |
| 403 | + return true; |
| 404 | + case BasicMethodConstants.Nack: |
| 405 | + HandleBasicNack(in cmd); |
| 406 | + return true; |
| 407 | + default: |
| 408 | + return false; |
407 | 409 | }
|
408 | 410 | }
|
409 | 411 | }
|
|
0 commit comments