|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.rabbitmq.client.RpcClient
public class RpcClient
Convenience class which manages a temporary reply queue for simple RPC-style communication. The class is agnostic about the format of RPC arguments / return values. It simply provides a mechanism for sending a message to an exchange with a given routing key, and waiting for a response on a reply queue.
Field Summary | |
---|---|
protected static int |
NO_TIMEOUT
NO_TIMEOUT value must match convention on BlockingCell.uninterruptibleGet(int) |
Constructor Summary | |
---|---|
RpcClient(Channel channel,
java.lang.String exchange,
java.lang.String routingKey)
Construct a new RpcClient that will communicate on the given channel, sending requests to the given exchange with the given routing key. |
|
RpcClient(Channel channel,
java.lang.String exchange,
java.lang.String routingKey,
int timeout)
Construct a new RpcClient that will communicate on the given channel, sending requests to the given exchange with the given routing key. |
Method Summary | |
---|---|
void |
checkConsumer()
Private API - ensures the RpcClient is correctly open. |
void |
close()
Public API - cancels the consumer, thus deleting the temporary queue, and marks the RpcClient as closed. |
Channel |
getChannel()
Retrieve the channel. |
Consumer |
getConsumer()
Retrieve the consumer. |
java.util.Map<java.lang.String,BlockingCell<java.lang.Object>> |
getContinuationMap()
Retrieve the continuation map. |
int |
getCorrelationId()
Retrieve the correlation id. |
java.lang.String |
getExchange()
Retrieve the exchange. |
java.lang.String |
getReplyQueue()
Retrieve the reply queue. |
java.lang.String |
getRoutingKey()
Retrieve the routing key. |
java.util.Map<java.lang.String,java.lang.Object> |
mapCall(java.util.Map<java.lang.String,java.lang.Object> message)
Perform an AMQP wire-protocol-table based RPC roundtrip There are some restrictions on the values appearing in the table: they must be of type String , LongString , Integer , BigDecimal , Date ,
or (recursively) a Map of the enclosing type. |
java.util.Map<java.lang.String,java.lang.Object> |
mapCall(java.lang.Object[] keyValuePairs)
Perform an AMQP wire-protocol-table based RPC roundtrip, first constructing the table from an array of alternating keys (in even-numbered elements, starting at zero) and values (in odd-numbered elements, starting at one) Restrictions on value arguments apply as in mapCall(Map) . |
byte[] |
primitiveCall(AMQP.BasicProperties props,
byte[] message)
|
byte[] |
primitiveCall(byte[] message)
Perform a simple byte-array-based RPC roundtrip. |
void |
publish(AMQP.BasicProperties props,
byte[] message)
|
protected DefaultConsumer |
setupConsumer()
Registers a consumer on the reply queue. |
protected java.lang.String |
setupReplyQueue()
Creates a server-named exclusive autodelete queue to use for receiving replies to RPC requests. |
java.lang.String |
stringCall(java.lang.String message)
Perform a simple string-based RPC roundtrip. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final int NO_TIMEOUT
BlockingCell.uninterruptibleGet(int)
Constructor Detail |
---|
public RpcClient(Channel channel, java.lang.String exchange, java.lang.String routingKey, int timeout) throws java.io.IOException
channel
- the channel to use for communicationexchange
- the exchange to connect toroutingKey
- the routing keytimeout
- milliseconds before timing out on wait for response
java.io.IOException
- if an error is encounteredsetupReplyQueue()
public RpcClient(Channel channel, java.lang.String exchange, java.lang.String routingKey) throws java.io.IOException
channel
- the channel to use for communicationexchange
- the exchange to connect toroutingKey
- the routing key
java.io.IOException
- if an error is encounteredsetupReplyQueue()
Method Detail |
---|
public void checkConsumer() throws java.io.IOException
java.io.IOException
- if an error is encounteredpublic void close() throws java.io.IOException
java.io.IOException
- if an error is encounteredprotected java.lang.String setupReplyQueue() throws java.io.IOException
java.io.IOException
- if an error is encounteredprotected DefaultConsumer setupConsumer() throws java.io.IOException
java.io.IOException
- if an error is encounteredpublic void publish(AMQP.BasicProperties props, byte[] message) throws java.io.IOException
java.io.IOException
public byte[] primitiveCall(AMQP.BasicProperties props, byte[] message) throws java.io.IOException, ShutdownSignalException, java.util.concurrent.TimeoutException
java.io.IOException
ShutdownSignalException
java.util.concurrent.TimeoutException
public byte[] primitiveCall(byte[] message) throws java.io.IOException, ShutdownSignalException, java.util.concurrent.TimeoutException
message
- the byte array request message to send
ShutdownSignalException
- if the connection dies during our wait
java.io.IOException
- if an error is encountered
java.util.concurrent.TimeoutException
- if a response is not received within the configured timeoutpublic java.lang.String stringCall(java.lang.String message) throws java.io.IOException, ShutdownSignalException, java.util.concurrent.TimeoutException
message
- the string request message to send
ShutdownSignalException
- if the connection dies during our wait
java.io.IOException
- if an error is encountered
java.util.concurrent.TimeoutException
- if a timeout occurs before the response is receivedpublic java.util.Map<java.lang.String,java.lang.Object> mapCall(java.util.Map<java.lang.String,java.lang.Object> message) throws java.io.IOException, ShutdownSignalException, java.util.concurrent.TimeoutException
String
, LongString
, Integer
, BigDecimal
, Date
,
or (recursively) a Map
of the enclosing type.
message
- the table to send
ShutdownSignalException
- if the connection dies during our wait
java.io.IOException
- if an error is encountered
java.util.concurrent.TimeoutException
- if a timeout occurs before a response is receivedpublic java.util.Map<java.lang.String,java.lang.Object> mapCall(java.lang.Object[] keyValuePairs) throws java.io.IOException, ShutdownSignalException, java.util.concurrent.TimeoutException
mapCall(Map)
.
keyValuePairs
- alternating {key, value, key, value, ...} data to send
ShutdownSignalException
- if the connection dies during our wait
java.io.IOException
- if an error is encountered
java.util.concurrent.TimeoutException
- if a timeout occurs before a response is receivedpublic Channel getChannel()
public java.lang.String getExchange()
public java.lang.String getRoutingKey()
public java.util.Map<java.lang.String,BlockingCell<java.lang.Object>> getContinuationMap()
public int getCorrelationId()
public java.lang.String getReplyQueue()
public Consumer getConsumer()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |