public final class ConnectionManager extends Object
A ConnectionManager
is created by a connection-based
Endpoint
implemention to manage connections to a
particular ConnectionEndpoint
. The newRequest
method is used to send a request to the connection
endpoint.
Each request attempt is mapped to a new session of the Jini ERI
multiplexing protocol on an established connection chosen by the
ConnectionEndpoint
. Request data is written as the data sent for
the session, and response data is read as the data recdeived for the session.
Constructor and Description |
---|
ConnectionManager(ConnectionEndpoint ep)
Creates a new
ConnectionManager that manages client-side
connections to the specified connection endpoint. |
Modifier and Type | Method and Description |
---|---|
OutboundRequestIterator |
newRequest(OutboundRequestHandle handle)
Returns an
OutboundRequestIterator to use to send a new
request for the specified handle to this connection manager's
ConnectionEndpoint . |
public ConnectionManager(ConnectionEndpoint ep)
ConnectionManager
that manages client-side
connections to the specified connection endpoint.ep
- the connection endpointpublic OutboundRequestIterator newRequest(OutboundRequestHandle handle)
OutboundRequestIterator
to use to send a new
request for the specified handle to this connection manager's
ConnectionEndpoint
.
If the hasNext
method of the returned iterator returns
true
, the next
method behaves as follows:
The connection endpoint'sconnect
method is invoked with any active connections that have not reached their maximum number of in-progress requests, any idle connections, andhandle
. If that returnsnull
, the endpoint'sconnect
method is invoked withhandle
. In either case, if a new connection is returned, the Jini ERI multiplexing protocol is started on the connection (as the client). Finally, thewriteRequestData
method of the connection is invoked withhandle
and the request output stream of theOutboundRequest
that is created for the request. If any exception is thrown while obtaining a connection from the endpoint or writing the request data, that exception is thrown to the caller. TheOutboundRequest
returned bynext
will invoke thereadResponseData
method of the connection with the specified handle and the response input stream before any other data is read from the response input stream. ThepopulateContext
andgetUnfulfilledConstraints
methods of theOutboundRequest
are implemented by delegating to the corresponding method of the connection passinghandle
and the other arguments (if any).
The returned iterator might allow continued iteration if the connection used for the most recent request attempt was shut down gracefully by the server.
handle
- a handle to identify the request in later invocations on
the connection endpoint and its connectionsOutboundRequestIterator
to use to send a new
request for the specified handle to this connection manager's
ConnectionEndpoint
NullPointerException
- if handle
is null