Skip to content

Commit 929047d

Browse files
author
Gábor Zavarkó
committed
Change the type of Exchange and Routing key to ROM
1 parent c69bf00 commit 929047d

25 files changed

+100
-59
lines changed

projects/Benchmarks/ConsumerDispatching/AsyncBasicConsumerFake.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public AsyncBasicConsumerFake(ManualResetEventSlim autoResetEvent)
1818
_autoResetEvent = autoResetEvent;
1919
}
2020

21-
public Task HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
21+
public Task HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, ReadOnlyMemory<byte> exchange, ReadOnlyMemory<byte> routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
2222
{
2323
if (Interlocked.Increment(ref _current) == Count)
2424
{
@@ -28,7 +28,7 @@ public Task HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redel
2828
return Task.CompletedTask;
2929
}
3030

31-
void IBasicConsumer.HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey,
31+
void IBasicConsumer.HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, ReadOnlyMemory<byte> exchange, ReadOnlyMemory<byte> routingKey,
3232
in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
3333
{
3434
if (Interlocked.Increment(ref _current) == Count)

projects/Benchmarks/ConsumerDispatching/ConsumerDispatcher.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Threading;
1+
using System.Text;
2+
using System.Threading;
23
using BenchmarkDotNet.Attributes;
34
using RabbitMQ.Client;
45
using RabbitMQ.Client.ConsumerDispatching;
@@ -15,9 +16,10 @@ public class ConsumerDispatcherBase
1516
private protected readonly AsyncBasicConsumerFake _consumer = new AsyncBasicConsumerFake(_autoResetEvent);
1617
protected readonly string _consumerTag = "ConsumerTag";
1718
protected readonly ulong _deliveryTag = 500UL;
18-
protected readonly string _exchange = "Exchange";
19-
protected readonly string _routingKey = "RoutingKey";
19+
protected static readonly byte[] _exchange = Encoding.UTF8.GetBytes("Exchange");
20+
protected static readonly byte[] _routingKey = Encoding.UTF8.GetBytes("RoutingKey");
2021
protected readonly ReadOnlyBasicProperties _properties = new ReadOnlyBasicProperties();
22+
protected readonly byte[] _method = new byte[512];
2123
protected readonly byte[] _body = new byte[512];
2224
}
2325

@@ -41,7 +43,7 @@ public void AsyncConsumerDispatcher()
4143
{
4244
for (int i = 0; i < Count; i++)
4345
{
44-
_dispatcher.HandleBasicDeliver(_consumerTag, _deliveryTag, false, _exchange, _routingKey, _properties, _body, _body);
46+
_dispatcher.HandleBasicDeliver(_consumerTag, _deliveryTag, false, _exchange, _routingKey, _properties, _body, _method, _body);
4547
}
4648
_autoResetEvent.Wait();
4749
_autoResetEvent.Reset();
@@ -59,7 +61,7 @@ public void ConsumerDispatcher()
5961
{
6062
for (int i = 0; i < Count; i++)
6163
{
62-
_dispatcher.HandleBasicDeliver(_consumerTag, _deliveryTag, false, _exchange, _routingKey, _properties, _body, _body);
64+
_dispatcher.HandleBasicDeliver(_consumerTag, _deliveryTag, false, _exchange, _routingKey, _properties, _body, _method, _body);
6365
}
6466
_autoResetEvent.Wait();
6567
_autoResetEvent.Reset();

projects/Benchmarks/WireFormatting/MethodSerialization.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public override void SetUp()
4545
}
4646

4747
[Benchmark]
48-
public object BasicDeliverRead() => new BasicDeliver(_buffer.Span)._consumerTag; // return one property to not box when returning an object instead
48+
public object BasicDeliverRead() => new BasicDeliver(_buffer)._consumerTag; // return one property to not box when returning an object instead
4949

5050
[Benchmark]
5151
public int BasicPublishWrite() => _basicPublish.WriteTo(_buffer.Span);

projects/RabbitMQ.Client/client/api/AsyncDefaultBasicConsumer.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ public virtual Task HandleBasicConsumeOk(string consumerTag)
110110
public virtual Task HandleBasicDeliver(string consumerTag,
111111
ulong deliveryTag,
112112
bool redelivered,
113-
string exchange,
114-
string routingKey,
113+
ReadOnlyMemory<byte> exchange,
114+
ReadOnlyMemory<byte> routingKey,
115115
in ReadOnlyBasicProperties properties,
116116
ReadOnlyMemory<byte> body)
117117
{
@@ -165,7 +165,7 @@ void IBasicConsumer.HandleBasicConsumeOk(string consumerTag)
165165
throw new InvalidOperationException("Should never be called. Enable 'DispatchConsumersAsync'.");
166166
}
167167

168-
void IBasicConsumer.HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
168+
void IBasicConsumer.HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, ReadOnlyMemory<byte> exchange, ReadOnlyMemory<byte> routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
169169
{
170170
throw new InvalidOperationException("Should never be called. Enable 'DispatchConsumersAsync'.");
171171
}

projects/RabbitMQ.Client/client/api/DefaultBasicConsumer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,8 @@ public virtual void HandleBasicConsumeOk(string consumerTag)
150150
public virtual void HandleBasicDeliver(string consumerTag,
151151
ulong deliveryTag,
152152
bool redelivered,
153-
string exchange,
154-
string routingKey,
153+
ReadOnlyMemory<byte> exchange,
154+
ReadOnlyMemory<byte> routingKey,
155155
in ReadOnlyBasicProperties properties,
156156
ReadOnlyMemory<byte> body)
157157
{

projects/RabbitMQ.Client/client/api/IAsyncBasicConsumer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ public interface IAsyncBasicConsumer
4949
Task HandleBasicDeliver(string consumerTag,
5050
ulong deliveryTag,
5151
bool redelivered,
52-
string exchange,
53-
string routingKey,
52+
ReadOnlyMemory<byte> exchange,
53+
ReadOnlyMemory<byte> routingKey,
5454
in ReadOnlyBasicProperties properties,
5555
ReadOnlyMemory<byte> body);
5656

projects/RabbitMQ.Client/client/api/IBasicConsumer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ public interface IBasicConsumer
9292
void HandleBasicDeliver(string consumerTag,
9393
ulong deliveryTag,
9494
bool redelivered,
95-
string exchange,
96-
string routingKey,
95+
ReadOnlyMemory<byte> exchange,
96+
ReadOnlyMemory<byte> routingKey,
9797
in ReadOnlyBasicProperties properties,
9898
ReadOnlyMemory<byte> body);
9999

projects/RabbitMQ.Client/client/events/AsyncEventingBasicConsumer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public override async Task HandleBasicConsumeOk(string consumerTag)
7171
}
7272

7373
///<summary>Fires the Received event.</summary>
74-
public override Task HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
74+
public override Task HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, ReadOnlyMemory<byte> exchange, ReadOnlyMemory<byte> routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
7575
{
7676
// No need to call base, it's empty.
7777
return _receivedWrapper.InvokeAsync(this, new BasicDeliverEventArgs(consumerTag, deliveryTag, redelivered, exchange, routingKey, properties, body));

projects/RabbitMQ.Client/client/events/BasicDeliverEventArgs.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public BasicDeliverEventArgs()
4747
public BasicDeliverEventArgs(string consumerTag,
4848
ulong deliveryTag,
4949
bool redelivered,
50-
string exchange,
51-
string routingKey,
50+
ReadOnlyMemory<byte> exchange,
51+
ReadOnlyMemory<byte> routingKey,
5252
in ReadOnlyBasicProperties properties,
5353
ReadOnlyMemory<byte> body)
5454
{
@@ -77,13 +77,13 @@ public BasicDeliverEventArgs(string consumerTag,
7777

7878
///<summary>The exchange the message was originally published
7979
///to.</summary>
80-
public string Exchange { get; set; }
80+
public ReadOnlyMemory<byte> Exchange { get; set; }
8181

8282
///<summary>The AMQP "redelivered" flag.</summary>
8383
public bool Redelivered { get; set; }
8484

8585
///<summary>The routing key used when the message was
8686
///originally published.</summary>
87-
public string RoutingKey { get; set; }
87+
public ReadOnlyMemory<byte> RoutingKey { get; set; }
8888
}
8989
}

projects/RabbitMQ.Client/client/events/EventingBasicConsumer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public override void HandleBasicConsumeOk(string consumerTag)
8484
/// Accessing the body at a later point is unsafe as its memory can
8585
/// be already released.
8686
/// </remarks>
87-
public override void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
87+
public override void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, ReadOnlyMemory<byte> exchange, ReadOnlyMemory<byte> routingKey, in ReadOnlyBasicProperties properties, ReadOnlyMemory<byte> body)
8888
{
8989
base.HandleBasicDeliver(consumerTag, deliveryTag, redelivered, exchange, routingKey, properties, body);
9090
Received?.Invoke(

0 commit comments

Comments
 (0)