Modifier and Type | Class and Description |
---|---|
static class |
RequestHandler.StreamingOutputPiper |
static class |
RequestHandler.StreamingOutputWriter |
Thread.State, Thread.UncaughtExceptionHandler
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
RequestHandler(Request request,
Socket infoSocket,
Socket dataSocket,
Reader inputReader)
Constructor to be used for Socket processing (running as a standalone socket server).
|
Modifier and Type | Method and Description |
---|---|
void |
run()
Perform the actual processing by calling the appropriate methods of the associated
Request object. |
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
public RequestHandler(Request request, Socket infoSocket, Socket dataSocket, Reader inputReader)
inputReader
is a Reader
reading from from dataSocket.inputStream()
. Passing this on is necessary because the mary server does a
buffered read on that input stream, and without passing that buffered reader on, data gets lost.request
- requestinfoSocket
- infoSocketdataSocket
- dataSocketinputReader
- inputReaderpublic void run()
Request
object.
Note that while different request handlers run as different threads, they all use the same module objects. How a given
module deals with several requests simultaneously is its own problem, the simplest solution being a synchronized
process()
method.
run
in interface Runnable
run
in class Thread
Request
,
MaryModule
,
ExternalModule
,
InternalModule
Copyright © 2000–2016 DFKI GmbH. All rights reserved.