88
99namespace RabbitMQ . AMQP . Client
1010{
11-
12- public interface IRpcClientAddressBuilder : IAddressBuilder < IRpcClientAddressBuilder >
11+ public interface IRequesterAddressBuilder : IAddressBuilder < IRequesterAddressBuilder >
1312 {
14- IRpcClientBuilder RpcClient ( ) ;
13+ IRequesterBuilder Requester ( ) ;
1514 }
1615
1716 /// <summary>
1817 /// IRpcClientBuilder is the interface for creating an RPC client.
19- /// See also <seealso cref="IRpcClient "/> and <seealso cref="IRpcServerBuilder "/>
18+ /// See also <seealso cref="IRequester "/> and <seealso cref="IResponderBuilder "/>
2019 /// </summary>
21- public interface IRpcClientBuilder
20+ public interface IRequesterBuilder
2221 {
2322 /// <summary>
2423 /// Request address where the client sends requests.
2524 /// The server consumes requests from this address.
2625 /// </summary>
2726 /// <returns></returns>
28- IRpcClientAddressBuilder RequestAddress ( ) ;
27+ IRequesterAddressBuilder RequestAddress ( ) ;
2928
3029 /// <summary>
3130 /// The queue from which requests are consumed.
3231 /// if not set the client will create a temporary queue.
3332 /// </summary>
3433 /// <param name="replyToQueueName"> The queue name</param>
3534 /// <returns></returns>
36- IRpcClientBuilder ReplyToQueue ( string replyToQueueName ) ;
35+ IRequesterBuilder ReplyToQueue ( string replyToQueueName ) ;
3736
38- IRpcClientBuilder ReplyToQueue ( IQueueSpecification replyToQueue ) ;
37+ IRequesterBuilder ReplyToQueue ( IQueueSpecification replyToQueue ) ;
3938
4039 /// <summary>
4140 /// Extracts the correlation id from the request message.
@@ -45,7 +44,7 @@ public interface IRpcClientBuilder
4544 /// </summary>
4645 /// <param name="correlationIdExtractor"></param>
4746 /// <returns></returns>
48- IRpcClientBuilder CorrelationIdExtractor ( Func < IMessage , object > ? correlationIdExtractor ) ;
47+ IRequesterBuilder CorrelationIdExtractor ( Func < IMessage , object > ? correlationIdExtractor ) ;
4948
5049 /// <summary>
5150 /// Post processes the reply message before sending it to the server.
@@ -56,7 +55,7 @@ public interface IRpcClientBuilder
5655 /// </summary>
5756 /// <param name="requestPostProcessor"></param>
5857 /// <returns></returns>
59- IRpcClientBuilder RequestPostProcessor ( Func < IMessage , object , IMessage > ? requestPostProcessor ) ;
58+ IRequesterBuilder RequestPostProcessor ( Func < IMessage , object , IMessage > ? requestPostProcessor ) ;
6059
6160 /// <summary>
6261 /// Client and Server must agree on the correlation id.
@@ -66,27 +65,27 @@ public interface IRpcClientBuilder
6665 /// </summary>
6766 /// <param name="correlationIdSupplier"></param>
6867 /// <returns></returns>
69-
70- IRpcClientBuilder CorrelationIdSupplier ( Func < object > ? correlationIdSupplier ) ;
68+ IRequesterBuilder CorrelationIdSupplier ( Func < object > ? correlationIdSupplier ) ;
7169
7270 /// <summary>
7371 /// The time to wait for a reply from the server.
7472 /// </summary>
7573 /// <param name="timeout"></param>
7674 /// <returns></returns>
77- IRpcClientBuilder Timeout ( TimeSpan timeout ) ;
75+ IRequesterBuilder Timeout ( TimeSpan timeout ) ;
76+
7877 /// <summary>
7978 /// Build and return the RPC client.
8079 /// </summary>
8180 /// <returns></returns>
82- Task < IRpcClient > BuildAsync ( ) ;
81+ Task < IRequester > BuildAsync ( ) ;
8382 }
8483
8584 /// <summary>
8685 /// IRpcClient is the interface for an RPC client.
87- /// See also <seealso cref="IRpcServer "/> and <seealso cref="IRpcClientBuilder "/>
86+ /// See also <seealso cref="IResponder "/> and <seealso cref="IRequesterBuilder "/>
8887 /// </summary>
89- public interface IRpcClient : ILifeCycle
88+ public interface IRequester : ILifeCycle
9089 {
9190 /// <summary>
9291 /// PublishAsync sends a request message to the server and blocks the thread until the response is received.
@@ -98,5 +97,14 @@ public interface IRpcClient : ILifeCycle
9897 /// <param name="cancellationToken">Cancellation token</param>
9998 /// <returns></returns>
10099 Task < IMessage > PublishAsync ( IMessage message , CancellationToken cancellationToken = default ) ;
100+
101+ /// <summary>
102+ /// The ReplyTo queue address can be created by:
103+ /// - the client providing a specific queue name
104+ /// - the client creating a temporary queue
105+ /// - The server uses this address to send the reply message. with direct-reply-to
106+ /// </summary>
107+ /// <returns></returns>
108+ public string GetReplyToQueue ( ) ;
101109 }
102110}
0 commit comments