|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.xmlrpc.webserver.Connection
public class Connection
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.
Nested Class Summary | |
---|---|
private static class |
Connection.BadEncodingException
|
private static class |
Connection.BadRequestException
|
private static class |
Connection.RequestException
|
Field Summary | |
---|---|
private byte[] |
buffer
|
private static byte[] |
clength
|
private static byte[] |
conclose
|
private static byte[] |
conkeep
|
private static byte[] |
ctype
|
private static byte[] |
doubleNewline
|
private boolean |
firstByte
|
private java.util.Map |
headers
|
private java.io.InputStream |
input
|
private static byte[] |
newline
|
private static byte[] |
ok
|
private java.io.OutputStream |
output
|
private RequestData |
requestData
|
private XmlRpcStreamServer |
server
|
private static byte[] |
serverName
|
private boolean |
shuttingDown
|
private java.net.Socket |
socket
|
private static java.lang.String |
US_ASCII
|
private WebServer |
webServer
|
private static byte[] |
wwwAuthenticate
|
Constructor Summary | |
---|---|
Connection(WebServer pWebServer,
XmlRpcStreamServer pServer,
java.net.Socket pSocket)
Creates a new webserver connection on the given socket. |
Method Summary | |
---|---|
void |
close()
|
private RequestData |
getRequestConfig()
Returns the connections request configuration by merging the HTTP request headers and the servers configuration. |
java.io.InputStream |
newInputStream()
|
java.io.OutputStream |
newOutputStream()
|
private java.lang.String |
readLine()
|
void |
run()
|
void |
setResponseHeader(java.lang.String pHeader,
java.lang.String pValue)
Sets a response header value. |
void |
shutdown()
|
private static byte[] |
toHTTPBytes(java.lang.String text)
Returns the US-ASCII encoded byte representation of text for HTTP use (as per section 2.2 of RFC 2068). |
private void |
writeContentLengthHeader(int pContentLength)
|
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 |
Field Detail |
---|
private static final java.lang.String US_ASCII
private static final byte[] ctype
private static final byte[] clength
private static final byte[] newline
private static final byte[] doubleNewline
private static final byte[] conkeep
private static final byte[] conclose
private static final byte[] ok
private static final byte[] serverName
private static final byte[] wwwAuthenticate
private final WebServer webServer
private final java.net.Socket socket
private final java.io.InputStream input
private final java.io.OutputStream output
private final XmlRpcStreamServer server
private byte[] buffer
private java.util.Map headers
private RequestData requestData
private boolean shuttingDown
private boolean firstByte
Constructor Detail |
---|
public Connection(WebServer pWebServer, XmlRpcStreamServer pServer, java.net.Socket pSocket) throws java.io.IOException
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.
java.io.IOException
Method Detail |
---|
private static final byte[] toHTTPBytes(java.lang.String text)
private RequestData getRequestConfig() throws java.io.IOException
java.io.IOException
- Reading the request headers failed.public void run()
run
in interface org.apache.xmlrpc.util.ThreadPool.Task
private java.lang.String readLine() throws java.io.IOException
java.io.IOException
public void writeResponse(RequestData pData, java.io.OutputStream pBuffer) throws java.io.IOException
pData
- The request data.pBuffer
- The ByteArrayOutputStream
holding the response.
java.io.IOException
- Writing the response failed.public void writeResponseHeader(RequestData pData, int pContentLength) throws java.io.IOException
pData
- The request datapContentLength
- The content length, if known, or -1.
java.io.IOException
- Writing the response failed.public void writeError(RequestData pData, java.lang.Throwable pError, java.io.ByteArrayOutputStream pStream) throws java.io.IOException
pData
- The request data.pError
- The error being reported.pStream
- The ByteArrayOutputStream
with the error response.
java.io.IOException
- Writing the response failed.public void writeErrorHeader(RequestData pData, java.lang.Throwable pError, int pContentLength) throws java.io.IOException
pData
- The request data.pError
- The error being reported.pContentLength
- The response length, if known, or -1.
java.io.IOException
- Writing the response failed.private void writeContentLengthHeader(int pContentLength) throws java.io.IOException
java.io.IOException
public void setResponseHeader(java.lang.String pHeader, java.lang.String pValue)
public java.io.OutputStream newOutputStream() throws java.io.IOException
newOutputStream
in interface org.apache.xmlrpc.common.ServerStreamConnection
java.io.IOException
public java.io.InputStream newInputStream() throws java.io.IOException
newInputStream
in interface org.apache.xmlrpc.common.ServerStreamConnection
java.io.IOException
public void close() throws java.io.IOException
close
in interface org.apache.xmlrpc.common.ServerStreamConnection
java.io.IOException
public void shutdown() throws java.lang.Throwable
shutdown
in interface org.apache.xmlrpc.util.ThreadPool.InterruptableTask
java.lang.Throwable
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |