Package org.simpleframework.http.core
Interface Controller
- All Known Implementing Classes:
ContainerController
interface Controller
The
Controller
interface represents an object which
is used to process collection events. The sequence of events that
typically take place is for the collection to start, if not all
of the bytes can be consumed it selects, and finally when all of
the bytes within the entity have been consumed it is ready.
The start event is used to immediately consume bytes form the underlying transport, it does not require a select to determine if the socket is read ready which provides an initial performance enhancement. Also when a response has been delivered the next request from the pipeline is consumed immediately.
The select event is used to register the connected socket with a Java NIO selector which can efficiently determine when there are bytes ready to read from the socket. Finally, the ready event is used when a full HTTP entity has been collected from the underlying transport. On such an event the request and response can be handled by a container.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
The ready event is used when a full HTTP entity has been collected from the underlying transport.void
The select event is used to register the connected socket with a Java NIO selector which can efficiently determine when there are bytes ready to read from the socket.void
The start event is used to immediately consume bytes form the underlying transport, it does not require a select to check if the socket is read ready which improves performance.void
This is used to initiate the processing of the channel.void
stop()
This method is used to stop theSelector
so that all resources are released.
-
Method Details
-
start
This is used to initiate the processing of the channel. Once the channel is passed in to the initiator any bytes ready on the HTTP pipeline will be processed and parsed in to a HTTP request. When the request has been built a callback is made to theContainer
to process the request. Also when the request is completed the channel is passed back in to the initiator so that the next request can be dealt with.- Parameters:
channel
- the channel to process the request from- Throws:
IOException
-
start
The start event is used to immediately consume bytes form the underlying transport, it does not require a select to check if the socket is read ready which improves performance. Also, when a response has been delivered the next request from the pipeline is consumed immediately.- Parameters:
collector
- this is the collector used to collect data- Throws:
IOException
-
select
The select event is used to register the connected socket with a Java NIO selector which can efficiently determine when there are bytes ready to read from the socket.- Parameters:
collector
- this is the collector used to collect data- Throws:
IOException
-
ready
The ready event is used when a full HTTP entity has been collected from the underlying transport. On such an event the request and response can be handled by a container.- Parameters:
collector
- this is the collector used to collect data- Throws:
IOException
-
stop
This method is used to stop theSelector
so that all resources are released. As well as freeing occupied memory this will also stop all threads, which means that is can no longer be used to collect data from the pipelines.- Throws:
IOException
-