Package org.simpleframework.transport
Class TransportSocketProcessor
- java.lang.Object
-
- org.simpleframework.transport.TransportSocketProcessor
-
- All Implemented Interfaces:
SocketProcessor
public class TransportSocketProcessor extends java.lang.Object implements SocketProcessor
TheTransportSocketProcessoris used to convert sockets to transports. This acts as an adapter to a transport processor which converts a connected socket to aTransportthat can be used to read and write data. Depending on whether there is anSSLEngineassociated with the socket or not, there could be an SSL handshake performed.
-
-
Field Summary
Fields Modifier and Type Field Description private DaemoncleanerThis is used to clean the internals of the processor.private ConcurrentExecutorexecutorThis is the executor used to execute the I/O operations.private OperationFactoryfactoryThis is the factory used to create the required operations.private ReactorreactorThis is the processor used to process transport objects.
-
Constructor Summary
Constructors Constructor Description TransportSocketProcessor(TransportProcessor processor)Constructor for theTransportSocketProcessorobject.TransportSocketProcessor(TransportProcessor processor, int threads)Constructor for theTransportSocketProcessorobject.TransportSocketProcessor(TransportProcessor processor, int threads, int buffer)Constructor for theTransportSocketProcessorobject.TransportSocketProcessor(TransportProcessor processor, int threads, int buffer, int threshold)Constructor for theTransportSocketProcessorobject.TransportSocketProcessor(TransportProcessor processor, int threads, int buffer, int threshold, boolean client)Constructor for theTransportSocketProcessorobject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidprocess(Socket socket)Used to connect theSocketwhich is a full duplex TCP connection to a higher layer the application.voidstop()This is implemented to shut down the server asynchronously.
-
-
-
Field Detail
-
executor
private final ConcurrentExecutor executor
This is the executor used to execute the I/O operations.
-
factory
private final OperationFactory factory
This is the factory used to create the required operations.
-
reactor
private final Reactor reactor
This is the processor used to process transport objects.
-
cleaner
private final Daemon cleaner
This is used to clean the internals of the processor.
-
-
Constructor Detail
-
TransportSocketProcessor
public TransportSocketProcessor(TransportProcessor processor) throws java.io.IOException
Constructor for theTransportSocketProcessorobject. The transport processor is used to process plain connections and wrap those connections in aTransportthat can be used to send and receive data to and from.- Parameters:
processor- this is used to process transports- Throws:
java.io.IOException
-
TransportSocketProcessor
public TransportSocketProcessor(TransportProcessor processor, int threads) throws java.io.IOException
Constructor for theTransportSocketProcessorobject. The transport processor is used to process plain connections and wrap those connections in aTransportthat can be used to send and receive data to and from.- Parameters:
processor- this is used to process transportsthreads- this is the number of threads this will use- Throws:
java.io.IOException
-
TransportSocketProcessor
public TransportSocketProcessor(TransportProcessor processor, int threads, int buffer) throws java.io.IOException
Constructor for theTransportSocketProcessorobject. The transport processor is used to process plain connections and wrap those connections in aTransportthat can be used to send and receive data to and from.- Parameters:
processor- this is used to process transportsthreads- this is the number of threads this will usebuffer- this is the initial size of the output buffer- Throws:
java.io.IOException
-
TransportSocketProcessor
public TransportSocketProcessor(TransportProcessor processor, int threads, int buffer, int threshold) throws java.io.IOException
Constructor for theTransportSocketProcessorobject. The transport processor is used to process plain connections and wrap those connections in aTransportthat can be used to send and receive data to and from.- Parameters:
processor- this is used to process transportsthreads- this is the number of threads this will usebuffer- this is the initial size of the output bufferthreshold- this is the maximum size of the output buffer- Throws:
java.io.IOException
-
TransportSocketProcessor
public TransportSocketProcessor(TransportProcessor processor, int threads, int buffer, int threshold, boolean client) throws java.io.IOException
Constructor for theTransportSocketProcessorobject. The transport processor is used to process plain connections and wrap those connections in aTransportthat can be used to send and receive data to and from.- Parameters:
processor- this is used to process transportsthreads- this is the number of threads this will usebuffer- this is the initial size of the output bufferthreshold- this is the maximum size of the output bufferclient- determines if the SSL handshake is for a client- Throws:
java.io.IOException
-
-
Method Detail
-
process
public void process(Socket socket) throws java.io.IOException
Used to connect theSocketwhich is a full duplex TCP connection to a higher layer the application. It is this layer that is responsible for interpreting a protocol or handling messages in some manner. In the case of HTTP this will initiate the consumption of a HTTP request after any SSL handshake is finished if the connection is secure.- Specified by:
processin interfaceSocketProcessor- Parameters:
socket- this is the connected HTTP pipeline to process- Throws:
java.io.IOException
-
stop
public void stop() throws java.io.IOExceptionThis 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:
stopin interfaceSocketProcessor- Throws:
java.io.IOException
-
-