ecologylab.services.distributed.server.clientmanager
Class HTTPClientManager

java.lang.Object
  extended by ecologylab.generic.Debug
      extended by ecologylab.services.distributed.server.clientmanager.AbstractClientManager
          extended by ecologylab.services.distributed.server.clientmanager.HTTPClientManager
All Implemented Interfaces:
NetworkingConstants, ServerConstants
Direct Known Subclasses:
HTTPGetClientManager, HTTPPostClientManager

public abstract class HTTPClientManager
extends AbstractClientManager


Field Summary
protected  boolean ALLOW_HTTP_STYLE_REQUESTS
           
 
Fields inherited from class ecologylab.services.distributed.server.clientmanager.AbstractClientManager
frontend, headerBufOutgoing, headerMap, initialized, maxPacketSize, messageWaiting, msgBufIncoming, msgBufOutgoing, registry, requestQueue, server, sessionId, socketKey, startLine, startReadIndex, translationSpace
 
Fields inherited from interface ecologylab.services.distributed.common.ServerConstants
GARBAGE_CONNECTION_CLEANUP_TIMEOUT, MAX_CONNECTIONS, MAXIMUM_TRANSMISSION_ERRORS
 
Fields inherited from interface ecologylab.services.distributed.common.NetworkingConstants
CHARACTER_ENCODING, CONTENT_LENGTH_STRING, CONTENT_LENGTH_STRING_LENGTH, DECODER, ENCODER, HTTP_HEADER_LINE_DELIMITER, HTTP_HEADER_TERMINATOR, MAX_HTTP_HEADER_LENGTH, MAX_PACKET_SIZE_BYTES, MAX_PACKET_SIZE_CHARACTERS, UNIQUE_IDENTIFIER_STRING
 
Constructor Summary
HTTPClientManager(java.lang.Object sessionId, int maxPacketSize, NIOServerBackend server, NIOServerFrontend frontend, java.nio.channels.SelectionKey socket, TranslationSpace translationSpace, Scope<?> registry)
           
 
Method Summary
protected  void clearOutgoingMessageBuffer(java.lang.StringBuilder outgoingMessageBuf)
           
protected  void clearOutgoingMessageHeaderBuffer(java.lang.StringBuilder outgoingMessageHeaderBuf)
           
protected  void createHeader(java.lang.StringBuilder outgoingMessageBuf, java.lang.StringBuilder outgoingMessageHeaderBuf, RequestMessage incomingRequest, ResponseMessage outgoingResponse, long uid)
           
protected  ResponseMessage performService(RequestMessage requestMessage)
          Appends the sender's IP address to the incoming message and calls performService on the given RequestMessage using the local ObjectRegistry.
protected  void prepareBuffers(java.lang.StringBuilder incomingMessageBuf, java.lang.StringBuilder outgoingMessageBuf, java.lang.StringBuilder outgoingMessageHeaderBuf)
           
 
Methods inherited from class ecologylab.services.distributed.server.clientmanager.AbstractClientManager
enqueueRequest, getLastActivity, getNextRequest, getSocketKey, isInitialized, isMessageWaiting, parseHeader, processAllMessagesAndSendResponses, processIncomingSequenceBufToQueue, setSocket, shutdown, translateResponseMessageToStringBufferContents, translateStringToRequestMessage
 
Methods inherited from class ecologylab.generic.Debug
classSimpleName, closeLoggingFile, debug, debug, debug, debug, debugA, debugA, debugA, debugI, debugI, debugI, error, error, getClassName, getClassName, getInteractive, getPackageName, getPackageName, getPackageName, initialize, level, level, level, logToFile, print, print, println, println, println, println, println, println, printlnA, printlnA, printlnA, printlnI, printlnI, printlnI, printlnI, setLoggingFile, show, show, superString, toggleInteractive, toString, toString, warning, warning, weird, weird
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ALLOW_HTTP_STYLE_REQUESTS

protected boolean ALLOW_HTTP_STYLE_REQUESTS
Constructor Detail

HTTPClientManager

public HTTPClientManager(java.lang.Object sessionId,
                         int maxPacketSize,
                         NIOServerBackend server,
                         NIOServerFrontend frontend,
                         java.nio.channels.SelectionKey socket,
                         TranslationSpace translationSpace,
                         Scope<?> registry)
Method Detail

clearOutgoingMessageHeaderBuffer

protected void clearOutgoingMessageHeaderBuffer(java.lang.StringBuilder outgoingMessageHeaderBuf)
Specified by:
clearOutgoingMessageHeaderBuffer in class AbstractClientManager
See Also:
ClientManager.clearOutgoingMessageHeaderBuffer(java.lang.StringBuilder)

createHeader

protected void createHeader(java.lang.StringBuilder outgoingMessageBuf,
                            java.lang.StringBuilder outgoingMessageHeaderBuf,
                            RequestMessage incomingRequest,
                            ResponseMessage outgoingResponse,
                            long uid)
Specified by:
createHeader in class AbstractClientManager
See Also:
ecologylab.services.distributed.server.clientmanager.ClientManager#createHeader(java.lang.StringBuilder, java.lang.StringBuilder, RequestMessage, ResponseMessage)

clearOutgoingMessageBuffer

protected void clearOutgoingMessageBuffer(java.lang.StringBuilder outgoingMessageBuf)
Specified by:
clearOutgoingMessageBuffer in class AbstractClientManager
See Also:
AbstractClientManager.clearOutgoingMessageBuffer(java.lang.StringBuilder)

prepareBuffers

protected void prepareBuffers(java.lang.StringBuilder incomingMessageBuf,
                              java.lang.StringBuilder outgoingMessageBuf,
                              java.lang.StringBuilder outgoingMessageHeaderBuf)
Specified by:
prepareBuffers in class AbstractClientManager
See Also:
AbstractClientManager.prepareBuffers(java.lang.StringBuilder, java.lang.StringBuilder, java.lang.StringBuilder)

performService

protected ResponseMessage performService(RequestMessage requestMessage)
Description copied from class: AbstractClientManager
Appends the sender's IP address to the incoming message and calls performService on the given RequestMessage using the local ObjectRegistry. performService(RequestMessage) may be overridden by subclasses to provide more specialized functionality. Generally, overrides should then call super.performService(RequestMessage) so that the IP address is appended to the message.

Overrides:
performService in class AbstractClientManager
Returns: