org.objectweb.jonathan.protocols.ip.lib

Class JConnectionMgr

Implemented Interfaces:
TcpIpConnectionMgr

public class JConnectionMgr
extends Object
implements TcpIpConnectionMgr

Default implementation of a connection manager and factory.

Nested Class Summary

class
JConnectionMgr.Connection
Implementation of TcpIpConnection.

Field Summary

protected TcpIpConnectionMgr
factory
int
max_idle
Maximum number of idle connections kept by this manager.

Constructor Summary

JConnectionMgr(int max_idle, TcpIpConnectionMgr connection_factory)
Returns a new connection manager

Method Summary

String
getCanonicalHostName(String hostname)
Returns the canonical host name of the provided host.
IpConnection
newCltConnection(String host, int port, IpSession session)
Returns a new client connection.
protected JConnectionMgr.Connection
newCltConnection(IpConnection connection)
Builds a new client-side connection encapsulating the provided connection.
TcpIpSrvConnectionFactory
newSrvConnectionFactory(int port)
Returns a new server connection factory encapsulating a server socket on the provided port.

Field Details

factory

protected TcpIpConnectionMgr factory


max_idle

public int max_idle
Maximum number of idle connections kept by this manager. This constant is defined under the name /jonathan/tcpip/max_idle in the bootstrap context.

Constructor Details

JConnectionMgr

public JConnectionMgr(int max_idle,
                      TcpIpConnectionMgr connection_factory)
Returns a new connection manager

Parameters:
max_idle - maximum number of idle connections
connection_factory - a factory to actually create connections

Method Details

getCanonicalHostName

public String getCanonicalHostName(String hostname)
Returns the canonical host name of the provided host.
Specified by:
getCanonicalHostName in interface TcpIpConnectionMgr

Parameters:
hostname - a host name

Returns:
the corresponding canonical host name.


newCltConnection

public IpConnection newCltConnection(String host,
                                     int port,
                                     IpSession session)
            throws JonathanException
Returns a new client connection.

This method is called by a protocol. The protocol provides a session (i.e. an object representing an abstract communication channel) and expects a connection (i.e. a communication resource). The returned connection must have been built using the provided session, or be a connection associated with a session having the same destination as the provided session.

Specified by:
newCltConnection in interface TcpIpConnectionMgr

Parameters:
host - the host name of the distant server;
port - the port number of a server socket on that host;
session - a TcpIp session

Returns:
a connection for that session.


newCltConnection

protected JConnectionMgr.Connection newCltConnection(IpConnection connection)
            throws JonathanException
Builds a new client-side connection encapsulating the provided connection.

Parameters:
connection - a tcpip connection.

Returns:
a new client-side connection.


newSrvConnectionFactory

public TcpIpSrvConnectionFactory newSrvConnectionFactory(int port)
            throws JonathanException
Returns a new server connection factory encapsulating a server socket on the provided port. If port = 0, an anonymous server socket is opened.
Specified by:
newSrvConnectionFactory in interface TcpIpConnectionMgr

Parameters:
port - the expected port of the server socket;

Returns:
a server connection factory.