org.apache.xmlrpc.webserver
Class Connection

java.lang.Object
  extended by org.apache.xmlrpc.webserver.Connection
All Implemented Interfaces:
ServerStreamConnection, ThreadPool.InterruptableTask, ThreadPool.Task

public class Connection
extends java.lang.Object
implements ThreadPool.InterruptableTask, ServerStreamConnection

Handler for a single clients connection. This implementation is able to do HTTP keepalive. In other words, it can serve multiple requests via a single, physical connection.


Constructor Summary
Connection(WebServer pWebServer, XmlRpcStreamServer pServer, java.net.Socket pSocket)
          Creates a new webserver connection on the given socket.
 
Method Summary
 void close()
          Closes the connection, and frees resources.
 java.io.InputStream newInputStream()
          Returns the connections input stream.
 java.io.OutputStream newOutputStream()
          Returns the connections output stream.
 void run()
          Performs the task.
 void setResponseHeader(java.lang.String pHeader, java.lang.String pValue)
          Sets a response header value.
 void shutdown()
          Interrupts the task.
 void writeError(RequestData pData, java.lang.Throwable pError, java.io.ByteArrayOutputStream pStream)
          Writes an error response to the output stream.
 void writeErrorHeader(RequestData pData, java.lang.Throwable pError, int pContentLength)
          Writes an error responses headers to the output stream.
 void writeResponse(RequestData pData, java.io.OutputStream pBuffer)
          Writes the response header and the response to the output stream.
 void writeResponseHeader(RequestData pData, int pContentLength)
          Writes the response header to the output stream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Connection

public Connection(WebServer pWebServer,
                  XmlRpcStreamServer pServer,
                  java.net.Socket pSocket)
           throws java.io.IOException
Creates a new webserver connection on the given socket.

Parameters:
pWebServer - The webserver maintaining this connection.
pServer - The server being used to execute requests.
pSocket - The server socket to handle; the Connection is responsible for closing this socket.
Throws:
java.io.IOException
Method Detail

run

public void run()
Description copied from interface: ThreadPool.Task
Performs the task.

Specified by:
run in interface ThreadPool.Task

writeResponse

public void writeResponse(RequestData pData,
                          java.io.OutputStream pBuffer)
                   throws java.io.IOException
Writes the response header and the response to the output stream.

Parameters:
pData - The request data.
pBuffer - The ByteArrayOutputStream holding the response.
Throws:
java.io.IOException - Writing the response failed.

writeResponseHeader

public void writeResponseHeader(RequestData pData,
                                int pContentLength)
                         throws java.io.IOException
Writes the response header to the output stream. *

Parameters:
pData - The request data
pContentLength - The content length, if known, or -1.
Throws:
java.io.IOException - Writing the response failed.

writeError

public void writeError(RequestData pData,
                       java.lang.Throwable pError,
                       java.io.ByteArrayOutputStream pStream)
                throws java.io.IOException
Writes an error response to the output stream.

Parameters:
pData - The request data.
pError - The error being reported.
pStream - The ByteArrayOutputStream with the error response.
Throws:
java.io.IOException - Writing the response failed.

writeErrorHeader

public void writeErrorHeader(RequestData pData,
                             java.lang.Throwable pError,
                             int pContentLength)
                      throws java.io.IOException
Writes an error responses headers to the output stream.

Parameters:
pData - The request data.
pError - The error being reported.
pContentLength - The response length, if known, or -1.
Throws:
java.io.IOException - Writing the response failed.

setResponseHeader

public void setResponseHeader(java.lang.String pHeader,
                              java.lang.String pValue)
Sets a response header value.


newOutputStream

public java.io.OutputStream newOutputStream()
                                     throws java.io.IOException
Description copied from interface: ServerStreamConnection
Returns the connections output stream.

Specified by:
newOutputStream in interface ServerStreamConnection
Throws:
java.io.IOException

newInputStream

public java.io.InputStream newInputStream()
                                   throws java.io.IOException
Description copied from interface: ServerStreamConnection
Returns the connections input stream.

Specified by:
newInputStream in interface ServerStreamConnection
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Description copied from interface: ServerStreamConnection
Closes the connection, and frees resources.

Specified by:
close in interface ServerStreamConnection
Throws:
java.io.IOException

shutdown

public void shutdown()
              throws java.lang.Throwable
Description copied from interface: ThreadPool.InterruptableTask
Interrupts the task.

Specified by:
shutdown in interface ThreadPool.InterruptableTask
Throws:
java.lang.Throwable - Shutting down the task failed.


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.