dk.i1.diameter.node
Class SimpleSyncClient

Object
  extended by dk.i1.diameter.node.NodeManager
      extended by dk.i1.diameter.node.SimpleSyncClient
All Implemented Interfaces:
ConnectionListener, MessageDispatcher

public class SimpleSyncClient
extends NodeManager

A simple Diameter client that support synchronous request-answer calls. It does not support receiving requests.


Constructor Summary
SimpleSyncClient(NodeSettings settings, Peer[] peers)
          Constructor for SimpleSyncClient
 
Method Summary
protected  void handleAnswer(Message answer, ConnectionKey answer_connkey, Object state)
          Dispatches an answer to threads waiting for it.
 Message sendRequest(Message request)
          Send a request and wait for an answer.
 Message sendRequest(Message request, long timeout)
          Send a request and wait for an answer.
 void start()
          Starts this client.
 
Methods inherited from class dk.i1.diameter.node.NodeManager
answer, forwardAnswer, forwardRequest, forwardRequest, handle, handle, handleRequest, node, sendRequest, sendRequest, sendRequest, sendRequest, settings, stop, stop, waitForConnection, waitForConnection, waitForConnectionTimeout
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SimpleSyncClient

public SimpleSyncClient(NodeSettings settings,
                        Peer[] peers)
Constructor for SimpleSyncClient

Parameters:
settings - The settings to use for this client
peers - The upstream peers to use
Method Detail

start

public void start()
           throws java.io.IOException,
                  UnsupportedTransportProtocolException
Starts this client. The client must be started before sending requests. Connections to the configured upstream peers will be initiated but this method may return before they have been established.

Overrides:
start in class NodeManager
Throws:
java.io.IOException
UnsupportedTransportProtocolException
See Also:
NodeManager.waitForConnection()

handleAnswer

protected void handleAnswer(Message answer,
                            ConnectionKey answer_connkey,
                            Object state)
Dispatches an answer to threads waiting for it.

Overrides:
handleAnswer in class NodeManager
Parameters:
answer - The answer message. Null if the connection broke.
answer_connkey - The connection from where the answer came.
state - The state object passed to sendRequest() or forwardRequest()

sendRequest

public Message sendRequest(Message request)
Send a request and wait for an answer.

Parameters:
request - The request to send
Returns:
The answer to the request. Null if there is no answer (all peers down, or other error)

sendRequest

public Message sendRequest(Message request,
                           long timeout)
Send a request and wait for an answer.

Parameters:
request - The request to send
timeout - Timeout in milliseconds. -1 means no timeout.
Returns:
The answer to the request. Null if there is no answer (all peers down, timeout, or other error)
Since:
0.9.6.8 timeout parameter introduced