Package org.globus.io.gass.server
Class GassClientHandler
- java.lang.Object
-
- org.globus.io.gass.server.GassClientHandler
-
- All Implemented Interfaces:
java.lang.Runnable
class GassClientHandler extends java.lang.Object implements java.lang.Runnable
-
-
Field Summary
Fields Modifier and Type Field Description private int
BUFFER_SIZE
private static java.lang.String
CONNECTION_CLOSE
private static java.lang.String
CONTENT_BINARY
private static java.lang.String
CONTENT_HTML
private static java.lang.String
CONTENT_LENGTH
private static java.lang.String
CONTENT_TEXT
private static java.lang.String
CRLF
private static boolean
DEBUG_ON
private static java.lang.String
HEADER404
private static java.lang.String
HTTP_CONTINUE
private static java.lang.String
JAVA_CLIENT
private static org.apache.commons.logging.Log
logger
private static java.lang.String
MSG404
private static java.lang.String
OKHEADER
private int
options
private GassServer
server
private static java.lang.String
SERVER
private java.net.Socket
socket
private static java.lang.String
TRANSFER_ENCODING
-
Constructor Summary
Constructors Constructor Description GassClientHandler(GassServer server, java.net.Socket socket)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
debug(java.lang.String msg)
private java.lang.String
decodeUrlPath(java.lang.String path)
private long
fromHex(java.lang.String s)
Convert a String representing a hex number to a long.private java.io.OutputStream
pickOutputStream(java.lang.String path, java.lang.String str, java.io.OutputStream def)
private java.lang.String
readLine(java.io.InputStream in)
Read a line of text from the given Stream and return it as a String.void
run()
Listen on the server socket for a client, start another thread to keep listening on the server socket, then deal with the client.private void
transfer(java.io.InputStream is, java.lang.String path, boolean append, java.io.OutputStream outs)
Transfer from the given InputStream to a file, given its path.private void
transfer(java.io.OutputStream os, java.lang.String path)
Transfer from a file, given its path, to the given OutputStream.private void
write(java.io.OutputStream out, java.lang.String msg)
private void
writeln(java.io.OutputStream out, java.lang.String msg)
-
-
-
Field Detail
-
logger
private static org.apache.commons.logging.Log logger
-
DEBUG_ON
private static final boolean DEBUG_ON
- See Also:
- Constant Field Values
-
CRLF
private static final java.lang.String CRLF
- See Also:
- Constant Field Values
-
OKHEADER
private static final java.lang.String OKHEADER
- See Also:
- Constant Field Values
-
SERVER
private static final java.lang.String SERVER
- See Also:
- Constant Field Values
-
CONTENT_LENGTH
private static final java.lang.String CONTENT_LENGTH
- See Also:
- Constant Field Values
-
TRANSFER_ENCODING
private static final java.lang.String TRANSFER_ENCODING
- See Also:
- Constant Field Values
-
JAVA_CLIENT
private static final java.lang.String JAVA_CLIENT
- See Also:
- Constant Field Values
-
HTTP_CONTINUE
private static final java.lang.String HTTP_CONTINUE
- See Also:
- Constant Field Values
-
CONTENT_BINARY
private static final java.lang.String CONTENT_BINARY
- See Also:
- Constant Field Values
-
CONTENT_HTML
private static final java.lang.String CONTENT_HTML
- See Also:
- Constant Field Values
-
CONTENT_TEXT
private static final java.lang.String CONTENT_TEXT
- See Also:
- Constant Field Values
-
CONNECTION_CLOSE
private static final java.lang.String CONNECTION_CLOSE
- See Also:
- Constant Field Values
-
HEADER404
private static final java.lang.String HEADER404
- See Also:
- Constant Field Values
-
MSG404
private static final java.lang.String MSG404
- See Also:
- Constant Field Values
-
BUFFER_SIZE
private int BUFFER_SIZE
-
server
private GassServer server
-
socket
private java.net.Socket socket
-
options
private int options
-
-
Constructor Detail
-
GassClientHandler
public GassClientHandler(GassServer server, java.net.Socket socket)
-
-
Method Detail
-
write
private void write(java.io.OutputStream out, java.lang.String msg) throws java.io.IOException
- Throws:
java.io.IOException
-
writeln
private void writeln(java.io.OutputStream out, java.lang.String msg) throws java.io.IOException
- Throws:
java.io.IOException
-
run
public void run()
Listen on the server socket for a client, start another thread to keep listening on the server socket, then deal with the client.- Specified by:
run
in interfacejava.lang.Runnable
-
decodeUrlPath
private java.lang.String decodeUrlPath(java.lang.String path)
-
transfer
private void transfer(java.io.OutputStream os, java.lang.String path) throws java.io.IOException
Transfer from a file, given its path, to the given OutputStream. The BufferedWriter points to the same stream but is used to write HTTP header information.- Throws:
java.io.IOException
-
pickOutputStream
private java.io.OutputStream pickOutputStream(java.lang.String path, java.lang.String str, java.io.OutputStream def)
-
transfer
private void transfer(java.io.InputStream is, java.lang.String path, boolean append, java.io.OutputStream outs) throws java.io.IOException
Transfer from the given InputStream to a file, given its path. The Reader points to the same stream but is used to read the HTTP header information.- Throws:
java.io.IOException
-
readLine
private java.lang.String readLine(java.io.InputStream in) throws java.io.IOException
Read a line of text from the given Stream and return it as a String. Assumes lines end in CRLF.- Throws:
java.io.IOException
-
fromHex
private long fromHex(java.lang.String s)
Convert a String representing a hex number to a long.
-
debug
private void debug(java.lang.String msg)
-
-