| Modifier and Type | Class and Description |
|---|---|
static class |
RequestHandler.StreamingOutputPiper |
static class |
RequestHandler.StreamingOutputWriter |
Thread.State, Thread.UncaughtExceptionHandlerMAX_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, yieldpublic 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 Runnablerun in class ThreadRequest,
MaryModule,
ExternalModule,
InternalModuleCopyright © 2000–2016 DFKI GmbH. All rights reserved.