Skip to content

Commit ea0ae19

Browse files
committed
reply to wip
fixes #133 Signed-off-by: Gabriele Santomaggio <[email protected]>
1 parent 2323ecb commit ea0ae19

File tree

11 files changed

+194
-194
lines changed

11 files changed

+194
-194
lines changed

RabbitMQ.AMQP.Client/IConnection.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ public interface IConnection : ILifeCycle
2828
IConsumerBuilder ConsumerBuilder();
2929

3030
/// <summary>
31-
/// Create an <see cref="IRpcServerBuilder"/> instance for this connection.
31+
/// Create an <see cref="IResponderBuilder"/> instance for this connection.
3232
/// </summary>
33-
/// <returns><see cref="IRpcServerBuilder"/> instance for this connection.</returns>
34-
IRpcServerBuilder RpcServerBuilder();
33+
/// <returns><see cref="IResponderBuilder"/> instance for this connection.</returns>
34+
IResponderBuilder ResponderBuilder();
3535

3636
/// <summary>
37-
/// Create an <see cref="IRpcClientBuilder"/> instance for this connection.
37+
/// Create an <see cref="IRequesterBuilder"/> instance for this connection.
3838
/// </summary>
39-
/// <returns><see cref="IRpcClientBuilder"/> instance for this connection.</returns>
40-
IRpcClientBuilder RpcClientBuilder();
39+
/// <returns><see cref="IRequesterBuilder"/> instance for this connection.</returns>
40+
IRequesterBuilder RequesterBuilder();
4141

4242
/// <summary>
4343
/// Get the properties for this connection.

RabbitMQ.AMQP.Client/IRpcClient.cs renamed to RabbitMQ.AMQP.Client/IRequester.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,33 @@
99
namespace RabbitMQ.AMQP.Client
1010
{
1111

12-
public interface IRpcClientAddressBuilder : IAddressBuilder<IRpcClientAddressBuilder>
12+
public interface IRequesterAddressBuilder : IAddressBuilder<IRequesterAddressBuilder>
1313
{
14-
IRpcClientBuilder RpcClient();
14+
IRequesterBuilder Requester();
1515
}
1616

1717
/// <summary>
1818
/// IRpcClientBuilder is the interface for creating an RPC client.
19-
/// See also <seealso cref="IRpcClient"/> and <seealso cref="IRpcServerBuilder"/>
19+
/// See also <seealso cref="IRequester"/> and <seealso cref="IResponderBuilder"/>
2020
/// </summary>
21-
public interface IRpcClientBuilder
21+
public interface IRequesterBuilder
2222
{
2323
/// <summary>
2424
/// Request address where the client sends requests.
2525
/// The server consumes requests from this address.
2626
/// </summary>
2727
/// <returns></returns>
28-
IRpcClientAddressBuilder RequestAddress();
28+
IRequesterAddressBuilder RequestAddress();
2929

3030
/// <summary>
3131
/// The queue from which requests are consumed.
3232
/// if not set the client will create a temporary queue.
3333
/// </summary>
3434
/// <param name="replyToQueueName"> The queue name</param>
3535
/// <returns></returns>
36-
IRpcClientBuilder ReplyToQueue(string replyToQueueName);
36+
IRequesterBuilder ReplyToQueue(string replyToQueueName);
3737

38-
IRpcClientBuilder ReplyToQueue(IQueueSpecification replyToQueue);
38+
IRequesterBuilder ReplyToQueue(IQueueSpecification replyToQueue);
3939

4040
/// <summary>
4141
/// Extracts the correlation id from the request message.
@@ -45,7 +45,7 @@ public interface IRpcClientBuilder
4545
/// </summary>
4646
/// <param name="correlationIdExtractor"></param>
4747
/// <returns></returns>
48-
IRpcClientBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor);
48+
IRequesterBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor);
4949

5050
/// <summary>
5151
/// Post processes the reply message before sending it to the server.
@@ -56,7 +56,7 @@ public interface IRpcClientBuilder
5656
/// </summary>
5757
/// <param name="requestPostProcessor"></param>
5858
/// <returns></returns>
59-
IRpcClientBuilder RequestPostProcessor(Func<IMessage, object, IMessage>? requestPostProcessor);
59+
IRequesterBuilder RequestPostProcessor(Func<IMessage, object, IMessage>? requestPostProcessor);
6060

6161
/// <summary>
6262
/// Client and Server must agree on the correlation id.
@@ -67,26 +67,26 @@ public interface IRpcClientBuilder
6767
/// <param name="correlationIdSupplier"></param>
6868
/// <returns></returns>
6969

70-
IRpcClientBuilder CorrelationIdSupplier(Func<object>? correlationIdSupplier);
70+
IRequesterBuilder CorrelationIdSupplier(Func<object>? correlationIdSupplier);
7171

7272
/// <summary>
7373
/// The time to wait for a reply from the server.
7474
/// </summary>
7575
/// <param name="timeout"></param>
7676
/// <returns></returns>
77-
IRpcClientBuilder Timeout(TimeSpan timeout);
77+
IRequesterBuilder Timeout(TimeSpan timeout);
7878
/// <summary>
7979
/// Build and return the RPC client.
8080
/// </summary>
8181
/// <returns></returns>
82-
Task<IRpcClient> BuildAsync();
82+
Task<IRequester> BuildAsync();
8383
}
8484

8585
/// <summary>
8686
/// IRpcClient is the interface for an RPC client.
87-
/// See also <seealso cref="IRpcServer"/> and <seealso cref="IRpcClientBuilder"/>
87+
/// See also <seealso cref="IResponder"/> and <seealso cref="IRequesterBuilder"/>
8888
/// </summary>
89-
public interface IRpcClient : ILifeCycle
89+
public interface IRequester : ILifeCycle
9090
{
9191
/// <summary>
9292
/// PublishAsync sends a request message to the server and blocks the thread until the response is received.

RabbitMQ.AMQP.Client/IRpcServer.cs renamed to RabbitMQ.AMQP.Client/IResponder.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ namespace RabbitMQ.AMQP.Client
1111
/// <summary>
1212
/// IRpcServerBuilder is the interface for creating an RPC server.
1313
/// The RPC server consumes requests from a queue and sends replies to a reply queue.
14-
/// See also <seealso cref="IRpcServer"/> and <seealso cref="IRpcClientBuilder"/>
14+
/// See also <seealso cref="IResponder"/> and <seealso cref="IRequesterBuilder"/>
1515
/// </summary>
16-
public interface IRpcServerBuilder
16+
public interface IResponderBuilder
1717
{
1818
/// <summary>
1919
/// The queue from which requests are consumed.
2020
/// The client sends requests to this queue and the server consumes them.
2121
/// </summary>
2222
/// <param name="requestQueue"></param>
2323
/// <returns></returns>
24-
IRpcServerBuilder RequestQueue(string requestQueue);
25-
IRpcServerBuilder RequestQueue(IQueueSpecification requestQueue);
24+
IResponderBuilder RequestQueue(string requestQueue);
25+
IResponderBuilder RequestQueue(IQueueSpecification requestQueue);
2626

2727
/// <summary>
2828
/// Extracts the correlation id from the request message.
@@ -33,7 +33,7 @@ public interface IRpcServerBuilder
3333
/// <param name="correlationIdExtractor"></param>
3434
/// <returns></returns>
3535

36-
IRpcServerBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor);
36+
IResponderBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor);
3737

3838
/// <summary>
3939
/// Post processes the reply message before sending it to the client.
@@ -44,36 +44,36 @@ public interface IRpcServerBuilder
4444
/// </summary>
4545
/// <param name="replyPostProcessor"></param>
4646
/// <returns></returns>
47-
IRpcServerBuilder ReplyPostProcessor(Func<IMessage, object, IMessage>? replyPostProcessor);
47+
IResponderBuilder ReplyPostProcessor(Func<IMessage, object, IMessage>? replyPostProcessor);
4848

4949
/// <summary>
5050
/// Handle the request message and return the reply message.
5151
/// </summary>
5252
/// <param name="handler"></param>
5353
/// <returns></returns>
54-
IRpcServerBuilder Handler(RpcHandler handler);
54+
IResponderBuilder Handler(RpcHandler handler);
5555

5656
/// <summary>
5757
/// Build and return the RPC server.
5858
/// </summary>
5959
/// <returns></returns>
60-
Task<IRpcServer> BuildAsync();
60+
Task<IResponder> BuildAsync();
6161
}
6262

6363
/// <summary>
6464
/// Event handler for handling RPC requests.
6565
/// </summary>
6666
// TODO cancellation token
67-
public delegate Task<IMessage> RpcHandler(IRpcServer.IContext context, IMessage request);
67+
public delegate Task<IMessage> RpcHandler(IResponder.IContext context, IMessage request);
6868

6969
/// <summary>
7070
/// IRpcServer interface for creating an RPC server.
7171
/// The RPC is simulated by sending a request message and receiving a reply message.
7272
/// Where the client sends the queue where wants to receive the reply.
7373
/// RPC client ---> request queue ---> RPC server ---> reply queue ---> RPC client
74-
/// See also <seealso cref="IRpcClient"/>
74+
/// See also <seealso cref="IRequester"/>
7575
/// </summary>
76-
public interface IRpcServer : ILifeCycle
76+
public interface IResponder : ILifeCycle
7777
{
7878

7979
public interface IContext

RabbitMQ.AMQP.Client/Impl/AddressBuilder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,16 @@ public IMessage Build()
124124
}
125125
}
126126

127-
public class RpcClientAddressBuilder : DefaultAddressBuilder<IRpcClientAddressBuilder>, IRpcClientAddressBuilder
127+
public class RequesterAddressBuilder : DefaultAddressBuilder<IRequesterAddressBuilder>, IRequesterAddressBuilder
128128
{
129-
readonly AmqpRpcClientBuilder _builder;
130-
public RpcClientAddressBuilder(AmqpRpcClientBuilder builder)
129+
readonly AmqpRequesterBuilder _builder;
130+
public RequesterAddressBuilder(AmqpRequesterBuilder builder)
131131
{
132132
_builder = builder;
133133
_owner = this;
134134
}
135135

136-
public IRpcClientBuilder RpcClient()
136+
public IRequesterBuilder Requester()
137137
{
138138
return _builder;
139139
}

RabbitMQ.AMQP.Client/Impl/AmqpConnection.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,21 +124,21 @@ public IConsumerBuilder ConsumerBuilder()
124124
}
125125

126126
/// <summary>
127-
/// Create an <see cref="IRpcServerBuilder"/> instance for this connection.
127+
/// Create an <see cref="IResponderBuilder"/> instance for this connection.
128128
/// </summary>
129-
/// <returns><see cref="IRpcServerBuilder"/> instance for this connection.</returns>
130-
public IRpcServerBuilder RpcServerBuilder()
129+
/// <returns><see cref="IResponderBuilder"/> instance for this connection.</returns>
130+
public IResponderBuilder ResponderBuilder()
131131
{
132-
return new AmqpRpcServerBuilder(this);
132+
return new AmqpResponderBuilder(this);
133133
}
134134

135135
/// <summary>
136-
/// Create an <see cref="IRpcClientBuilder"/> instance for this connection.
136+
/// Create an <see cref="IRequesterBuilder"/> instance for this connection.
137137
/// </summary>
138-
/// <returns><see cref="IRpcClientBuilder"/> instance for this connection.</returns>
139-
public IRpcClientBuilder RpcClientBuilder()
138+
/// <returns><see cref="IRequesterBuilder"/> instance for this connection.</returns>
139+
public IRequesterBuilder RequesterBuilder()
140140
{
141-
return new AmqpRpcClientBuilder(this);
141+
return new AmqpRequesterBuilder(this);
142142
}
143143

144144
/// <summary>

RabbitMQ.AMQP.Client/Impl/AmqpRpcClient.cs renamed to RabbitMQ.AMQP.Client/Impl/AmqpRequester.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,80 +23,80 @@ public class RpcClientConfiguration
2323
public Func<IMessage, object, IMessage>? RequestPostProcessor { get; set; }
2424
}
2525

26-
public class AmqpRpcClientBuilder : IRpcClientBuilder
26+
public class AmqpRequesterBuilder : IRequesterBuilder
2727
{
28-
private readonly RpcClientAddressBuilder _addressBuilder;
28+
private readonly RequesterAddressBuilder _addressBuilder;
2929
private readonly AmqpConnection _connection;
3030
private readonly RpcClientConfiguration _configuration = new();
3131

32-
public AmqpRpcClientBuilder(AmqpConnection connection)
32+
public AmqpRequesterBuilder(AmqpConnection connection)
3333
{
3434
_connection = connection;
35-
_addressBuilder = new RpcClientAddressBuilder(this);
35+
_addressBuilder = new RequesterAddressBuilder(this);
3636
}
3737

38-
public IRpcClientAddressBuilder RequestAddress()
38+
public IRequesterAddressBuilder RequestAddress()
3939
{
4040
return _addressBuilder;
4141
}
4242

43-
public IRpcClientBuilder ReplyToQueue(string replyToQueueName)
43+
public IRequesterBuilder ReplyToQueue(string replyToQueueName)
4444
{
4545
_configuration.ReplyToQueue = replyToQueueName;
4646
return this;
4747
}
4848

49-
public IRpcClientBuilder ReplyToQueue(IQueueSpecification replyToQueue)
49+
public IRequesterBuilder ReplyToQueue(IQueueSpecification replyToQueue)
5050
{
5151
_configuration.ReplyToQueue = replyToQueue.QueueName;
5252
return this;
5353
}
5454

55-
public IRpcClientBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor)
55+
public IRequesterBuilder CorrelationIdExtractor(Func<IMessage, object>? correlationIdExtractor)
5656
{
5757
_configuration.CorrelationIdExtractor = correlationIdExtractor;
5858
return this;
5959
}
6060

61-
public IRpcClientBuilder RequestPostProcessor(Func<IMessage, object, IMessage>? requestPostProcessor)
61+
public IRequesterBuilder RequestPostProcessor(Func<IMessage, object, IMessage>? requestPostProcessor)
6262
{
6363
_configuration.RequestPostProcessor = requestPostProcessor;
6464
return this;
6565
}
6666

67-
public IRpcClientBuilder CorrelationIdSupplier(Func<object>? correlationIdSupplier)
67+
public IRequesterBuilder CorrelationIdSupplier(Func<object>? correlationIdSupplier)
6868
{
6969
_configuration.CorrelationIdSupplier = correlationIdSupplier;
7070
return this;
7171
}
7272

73-
public IRpcClientBuilder Timeout(TimeSpan timeout)
73+
public IRequesterBuilder Timeout(TimeSpan timeout)
7474
{
7575
_configuration.Timeout = timeout;
7676
return this;
7777
}
7878

79-
public async Task<IRpcClient> BuildAsync()
79+
public async Task<IRequester> BuildAsync()
8080
{
8181
_configuration.RequestAddress = _addressBuilder.Address();
8282
_configuration.Connection = _connection;
83-
var rpcClient = new AmqpRpcClient(_configuration);
83+
var rpcClient = new AmqpRequester(_configuration);
8484
await rpcClient.OpenAsync().ConfigureAwait(false);
8585
return rpcClient;
8686
}
8787
}
8888

8989
/// <summary>
90-
/// AmqpRpcClient is an implementation of <see cref="IRpcClient"/>.
90+
/// AmqpRpcClient is an implementation of <see cref="IRequester"/>.
9191
/// It is a wrapper around <see cref="IPublisher"/> and <see cref="IConsumer"/> to create an RPC client over AMQP 1.0.
9292
/// even the PublishAsync is async the RPClient blocks the thread until the response is received.
9393
/// within the timeout.
9494
///
9595
/// The PublishAsync is thread-safe and can be called from multiple threads.
9696
///
97-
/// See also the server side <see cref="IRpcServer"/>.
97+
/// See also the server side <see cref="IResponder"/>.
9898
/// </summary>
99-
public class AmqpRpcClient : AbstractLifeCycle, IRpcClient
99+
public class AmqpRequester : AbstractLifeCycle, IRequester
100100
{
101101
private readonly RpcClientConfiguration _configuration;
102102
private IConsumer? _consumer = null;
@@ -138,7 +138,7 @@ private IMessage RequestPostProcess(IMessage request, object correlationId)
138138
.MessageId(correlationId);
139139
}
140140

141-
public AmqpRpcClient(RpcClientConfiguration configuration)
141+
public AmqpRequester(RpcClientConfiguration configuration)
142142
{
143143
_configuration = configuration;
144144
}

0 commit comments

Comments
 (0)