ecologylab.services.distributed.server.clientmanager
Class HTTPGetClientManager

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

public class HTTPGetClientManager
extends HTTPClientManager

A ContextManager for handling HTTP Get requests. Can be used to respond to browser requests.

Author:
Zachary O. Toups (toupsz@cs.tamu.edu)

Field Summary
 
Fields inherited from class ecologylab.services.distributed.server.clientmanager.HTTPClientManager
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
HTTPGetClientManager(java.lang.Object token, int maxPacketSize, NIOServerBackend server, NIOServerFrontend frontend, java.nio.channels.SelectionKey socketKey, TranslationSpace translationSpace, Scope<?> registry)
           
 
Method Summary
protected  void translateResponseMessageToStringBufferContents(RequestMessage requestMessage, ResponseMessage responseMessage, java.lang.StringBuilder outgoingMessageBuf)
          This method only handles HttpGetRequest messages; it will report an error for any non-HttpGetRequest.
protected  RequestMessage translateStringToRequestMessage(java.lang.CharSequence messageSequence)
          This client manager operates primarily on HTTP header data, as it is unlikely that a GET request will contain an actual RequestMessage.
 
Methods inherited from class ecologylab.services.distributed.server.clientmanager.HTTPClientManager
clearOutgoingMessageBuffer, clearOutgoingMessageHeaderBuffer, createHeader, performService, prepareBuffers
 
Methods inherited from class ecologylab.services.distributed.server.clientmanager.AbstractClientManager
enqueueRequest, getLastActivity, getNextRequest, getSocketKey, isInitialized, isMessageWaiting, parseHeader, processAllMessagesAndSendResponses, processIncomingSequenceBufToQueue, setSocket, shutdown
 
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
 

Constructor Detail

HTTPGetClientManager

public HTTPGetClientManager(java.lang.Object token,
                            int maxPacketSize,
                            NIOServerBackend server,
                            NIOServerFrontend frontend,
                            java.nio.channels.SelectionKey socketKey,
                            TranslationSpace translationSpace,
                            Scope<?> registry)
Parameters:
token -
server -
socketKey -
translationSpace -
registry -
Method Detail

translateResponseMessageToStringBufferContents

protected void translateResponseMessageToStringBufferContents(RequestMessage requestMessage,
                                                              ResponseMessage responseMessage,
                                                              java.lang.StringBuilder outgoingMessageBuf)
                                                       throws XMLTranslationException
This method only handles HttpGetRequest messages; it will report an error for any non-HttpGetRequest. Otherwise, it will not add anything to the msgBufOutgoing, as HttpGetRequests should only have a header and no contnents

Specified by:
translateResponseMessageToStringBufferContents in class AbstractClientManager
Throws:
XMLTranslationException
See Also:
ecologylab.services.distributed.server.clientmanager.ClientManager#translateResponseMessageToString(ecologylab.services.messages.RequestMessage, ecologylab.services.messages.ResponseMessage)

translateStringToRequestMessage

protected RequestMessage translateStringToRequestMessage(java.lang.CharSequence messageSequence)
                                                  throws XMLTranslationException,
                                                         java.io.UnsupportedEncodingException
This client manager operates primarily on HTTP header data, as it is unlikely that a GET request will contain an actual RequestMessage.

Overrides:
translateStringToRequestMessage in class AbstractClientManager
Parameters:
messageSequence - - an XML String representing a RequestMessage object.
Returns:
the RequestMessage created by translating messageString into an object.
Throws:
java.io.UnsupportedEncodingException
XMLTranslationException - if an error occurs when translating from XML into a RequestMessage.
See Also:
ecologylab.services.distributed.server.clientmanager.ClientManager#translateStringToRequestMessage(java.lang.String)