Package org.simpleframework.http.core
Class ContainerSocketProcessor
java.lang.Object
org.simpleframework.http.core.ContainerSocketProcessor
- All Implemented Interfaces:
SocketProcessor
The
ContainerSocketProcessor
object is a connector
that dispatch requests from a connected pipeline. SSL connections
and plain connections can be processed by this implementation. It
collects data from the connected pipelines and constructs the
requests and responses used to dispatch to the container.
In order to process the requests this uses two thread pools. One is used to collect data from the pipelines and create the requests. The other is used to service those requests. Such an architecture ensures that the serving thread does not have to deal with I/O operations. All data is consumed before it is serviced.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final SocketProcessor
This is used to deliver pipelines to the container.private final TransportProcessor
This is the transporter used to process the connections. -
Constructor Summary
ConstructorsConstructorDescriptionContainerSocketProcessor
(Container container) Constructor for theContainerSocketProcessor
object.ContainerSocketProcessor
(Container container, int count) Constructor for theContainerSocketProcessor
object.ContainerSocketProcessor
(Container container, int count, int select) Constructor for theContainerSocketProcessor
object.ContainerSocketProcessor
(Container container, Allocator allocator) Constructor for theContainerSocketProcessor
object.ContainerSocketProcessor
(Container container, Allocator allocator, int count) Constructor for theContainerSocketProcessor
object.ContainerSocketProcessor
(Container container, Allocator allocator, int count, int select) Constructor for theContainerSocketProcessor
object. -
Method Summary
-
Field Details
-
processor
This is the transporter used to process the connections. -
adapter
This is used to deliver pipelines to the container.
-
-
Constructor Details
-
ContainerSocketProcessor
Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requests- Throws:
IOException
-
ContainerSocketProcessor
Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requestscount
- this is the number of threads used for each pool- Throws:
IOException
-
ContainerSocketProcessor
Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requestscount
- this is the number of threads used for each poolselect
- this is the number of selector threads to use- Throws:
IOException
-
ContainerSocketProcessor
Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requestsallocator
- this is the allocator used to create buffers- Throws:
IOException
-
ContainerSocketProcessor
public ContainerSocketProcessor(Container container, Allocator allocator, int count) throws IOException Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requestsallocator
- this is the allocator used to create bufferscount
- this is the number of threads used for each pool- Throws:
IOException
-
ContainerSocketProcessor
public ContainerSocketProcessor(Container container, Allocator allocator, int count, int select) throws IOException Constructor for theContainerSocketProcessor
object. The connector created will collect HTTP requests from the pipelines provided and dispatch those requests to the provided container.- Parameters:
container
- this is the container used to service requestsallocator
- this is the allocator used to create bufferscount
- this is the number of threads used for each poolselect
- this is the number of selector threads to use- Throws:
IOException
-
-
Method Details
-
process
This is used to consume HTTP messages that arrive on the socket and dispatch them to the internal container. Depending on whether the socket contains anSSLEngine
an SSL handshake may be performed before any HTTP messages are consumed. This can be called from multiple threads and does not block.- Specified by:
process
in interfaceSocketProcessor
- Parameters:
socket
- this is the connected HTTP pipeline to process- Throws:
IOException
-
stop
This method is used to stop the connector in such a way that it will not accept and process any further messages. If there are resources to clean up they may be cleaned up asynchronously so that this method can return without blocking.- Specified by:
stop
in interfaceSocketProcessor
- Throws:
IOException
-