|
||||||||||
| 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.ServerStreamConnectionjava.io.IOException
public java.io.InputStream newInputStream()
throws java.io.IOException
newInputStream in interface org.apache.xmlrpc.common.ServerStreamConnectionjava.io.IOException
public void close()
throws java.io.IOException
close in interface org.apache.xmlrpc.common.ServerStreamConnectionjava.io.IOException
public void shutdown()
throws java.lang.Throwable
shutdown in interface org.apache.xmlrpc.util.ThreadPool.InterruptableTaskjava.lang.Throwable
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||