All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class w3c.jigsaw.http.socket.SocketClient

java.lang.Object
   |
   +----w3c.jigsaw.http.Client
           |
           +----w3c.jigsaw.http.socket.SocketClient

public class SocketClient
extends Client
implements Runnable
This class implements the object that handles client connections. One such object exists per open connections at any given time.

The basic architecture is the following: the httpd instance accepts new connections on its port. When such a connection is accepted a Client object is requested to the client pool (which can implement what ever strategy is suitable). Each request is than managed by looking up an resource and invoking the resource methods corresponding to the request.

See Also:
http, Request, Repy

Variable Index

 o alive
Is this client still alive ?
 o bindcount
Number of times this client was bound to a connection.
 o bufout
Our reusable output buffer.
 o idle
Our we idle (waiting for next request ?)
 o socket
The socket currently handled by the client.
 o thread
The thread that we have been attached to.

Method Index

 o bind(Socket)
SocketClientFactory interface - Bind the socket to this client.
 o getBindCount()
Get the total number of times this client was bound to a socket.
 o getInetAddress()
Client implementation - Get the IP address of this client.
 o getThread()
Get the thread powering that client.
 o idleConnection()
Client implementation - The current connection is idle.
 o join()
If this client is allocated a thread, join it.
 o kill(boolean)
SocketClientFactory interface - Kill this client.
 o run()
Run for our newly attached connection.
 o stopConnection()
Client implementation - This connection has been stopped.
 o toString()
Print that client into a String.
 o unbind()
SocketClientFactory interface - Unbind this client.
 o usedConnection()
Client implementation - The current connection is in use.

Variables

 o socket
 protected Socket socket
The socket currently handled by the client.

 o alive
 protected boolean alive
Is this client still alive ?

 o bindcount
 protected int bindcount
Number of times this client was bound to a connection.

 o thread
 protected Thread thread
The thread that we have been attached to.

 o bufout
 protected SocketOutputBuffer bufout
Our reusable output buffer.

 o idle
 protected boolean idle
Our we idle (waiting for next request ?)

Methods

 o toString
 public String toString()
Print that client into a String.

Returns:
A String instance.
Overrides:
toString in class Object
 o join
 public void join()
If this client is allocated a thread, join it.

 o run
 public void run()
Run for our newly attached connection.

Returns:
A boolean, true if the client is to be killed as decided by its SocketClientFactory creator.
 o getInetAddress
 public InetAddress getInetAddress()
Client implementation - Get the IP address of this client.

Returns:
An InetAddress instance, or null if the client is not currently running.
Overrides:
getInetAddress in class Client
 o stopConnection
 protected void stopConnection()
Client implementation - This connection has been stopped. Make sure the whole socket is closed, and be ready to handle next connection.

Overrides:
stopConnection in class Client
 o getThread
 protected Thread getThread()
Get the thread powering that client.

Returns:
A Thread instance, or null.
Overrides:
getThread in class Client
 o idleConnection
 protected boolean idleConnection()
Client implementation - The current connection is idle. The client is about to wait for the next request from the net, mark it as idle to make it a candidate for persistent connection closing.

Returns:
A boolean, if true our client factory wants us to stop right now, in order to handle some other connection.
Overrides:
idleConnection in class Client
 o usedConnection
 protected void usedConnection()
Client implementation - The current connection is in use. A request is about to be processed, mark that connection as used, to remove it from the idle state.

Overrides:
usedConnection in class Client
 o bind
 protected synchronized void bind(Socket socket)
SocketClientFactory interface - Bind the socket to this client. Binding a socket to a client triggers the processing of the underlying connection. It is assumed that the client was ready to handle a new connection before this method was called.

Parameters:
socket - The socket this client should now handle.
See Also:
loopForBinding
 o unbind
 protected synchronized void unbind()
SocketClientFactory interface - Unbind this client. This client is handling an idle connection, unbind it to make it free for handling some other more buzy connection.

 o kill
 protected synchronized void kill(boolean now)
SocketClientFactory interface - Kill this client. The clean way for our client factory to shut us down unconditionally. This will free all resources acquired by this client, stop the current connection processing if needed, and terminate the underlying thread.

 o getBindCount
 public final int getBindCount()
Get the total number of times this client was bound to a socket.

Returns:
An integer, indicatingthe number of bind calls on this client.

All Packages  Class Hierarchy  This Package  Previous  Next  Index