org.simpleframework.transport
Class ProcessorServer

java.lang.Object
  extended by org.simpleframework.transport.ProcessorServer
All Implemented Interfaces:
Server

public class ProcessorServer
extends Object
implements Server

The ProcessorServer is used to convert pipelines to transports. This simply acts as an adapter to a processor which converts a connected pipeline to a Transport which can be used to read and write data. Conversion of the pipeline is performed only once per connection.

Author:
Niall Gallagher

Constructor Summary
ProcessorServer(Processor processor)
          Constructor for the ProcessorServer object.
ProcessorServer(Processor processor, int threads)
          Constructor for the ProcessorServer object.
ProcessorServer(Processor processor, int threads, int threshold)
          Constructor for the ProcessorServer object.
ProcessorServer(Processor processor, int threads, int threshold, int buffer)
          Constructor for the ProcessorServer object.
ProcessorServer(Processor processor, int threads, int threshold, int buffer, int queue)
          Constructor for the ProcessorServer object.
ProcessorServer(Processor processor, int threads, int threshold, int buffer, int queue, boolean client)
          Constructor for the ProcessorServer object.
 
Method Summary
 void process(Socket socket)
          Used to process the Pipeline which is a full duplex communication link that may contain several HTTP requests.
 void stop()
          This method is used to stop the Processor such that it will accept no more pipelines.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProcessorServer

public ProcessorServer(Processor processor)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
Throws:
IOException

ProcessorServer

public ProcessorServer(Processor processor,
                       int threads)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
threads - this is the number of threads this will use
Throws:
IOException

ProcessorServer

public ProcessorServer(Processor processor,
                       int threads,
                       int threshold)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
threads - this is the number of threads this will use
threshold - number of bytes that can be copied for queuing
Throws:
IOException

ProcessorServer

public ProcessorServer(Processor processor,
                       int threads,
                       int threshold,
                       int buffer)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
threads - this is the number of threads this will use
threshold - number of bytes that can be copied for queuing
buffer - this is the size of the buffers for the transport
Throws:
IOException

ProcessorServer

public ProcessorServer(Processor processor,
                       int threads,
                       int threshold,
                       int buffer,
                       int queue)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
threads - this is the number of threads this will use
threshold - number of bytes that can be copied for queuing
buffer - this is the size of the buffers for the transport
queue - this is the number of buffers that can be queued
Throws:
IOException

ProcessorServer

public ProcessorServer(Processor processor,
                       int threads,
                       int threshold,
                       int buffer,
                       int queue,
                       boolean client)
                throws IOException
Constructor for the ProcessorServer object. The transport processor is used to process plain connections and wrap those connections in a Transport that can be used to send and receive data to and from.

Parameters:
processor - this is used to process transports
threads - this is the number of threads this will use
threshold - number of bytes that can be copied for queuing
buffer - this is the size of the buffers for the transport
queue - this is the number of buffers that can be queued
client - determines if the SSL handshake is for a client
Throws:
IOException
Method Detail

process

public void process(Socket socket)
             throws IOException
Used to process the Pipeline which is a full duplex communication link that may contain several HTTP requests. This will be used to read the requests from the Pipeline and to pass these requests to a Container for processing.

Typical usage of this method is to accept multiple pipeline objects, each representing a unique HTTP channel to the client, and process requests from those pipelines concurrently.

Specified by:
process in interface Server
Parameters:
socket - this is the connected HTTP pipeline to process
Throws:
IOException

stop

public void stop()
          throws IOException
This method is used to stop the Processor such that it will accept no more pipelines. Stopping the processor ensures that all resources occupied will be released. This is required so that all threads are stopped, and all memory is released.

Typically this method is called once all connections to the server have been stopped. As a final act of shutting down the entire server all threads must be stopped, this allows collection of unused memory and the closing of file and socket resources.

This is implemented to shut down the server asynchronously. It will start a process to perform the shutdown. Asynchronous shutdown allows a server resource executed via a HTTP request can stop the server without any danger of killing itself or even worse causing a deadlock.

Specified by:
stop in interface Server
Throws:
IOException


Copyright © 2013. All Rights Reserved.