org.mortbay.jetty.bio
Class SocketConnector

java.lang.Object
  extended by org.mortbay.component.AbstractLifeCycle
      extended by org.mortbay.jetty.AbstractBuffers
          extended by org.mortbay.jetty.AbstractConnector
              extended by org.mortbay.jetty.bio.SocketConnector
All Implemented Interfaces:
LifeCycle, Buffers, Connector
Direct Known Subclasses:
SslSocketConnector

public class SocketConnector
extends AbstractConnector

Socket Connector. This connector implements a traditional blocking IO and threading model. Normal JRE sockets are used and a thread is allocated per connection. Buffers are managed so that large buffers are only allocated to active connections. This Connector should only be used if NIO is not available.

Author:
gregw

Nested Class Summary
protected  class SocketConnector.Connection
           
 
Field Summary
protected  Set _connections
           
protected  ServerSocket _serverSocket
           
 
Fields inherited from class org.mortbay.jetty.AbstractConnector
_lowResourceMaxIdleTime, _maxIdleTime, _soLingerTime
 
Constructor Summary
SocketConnector()
          Constructor.
 
Method Summary
 void accept(int acceptorID)
           
 void close()
           
 void customize(EndPoint endpoint, Request request)
          Customize a request for an endpoint.
protected  void doStart()
           
protected  void doStop()
           
 Object getConnection()
           
 int getLocalPort()
           
protected  Buffer newBuffer(int size)
           
protected  HttpConnection newHttpConnection(EndPoint endpoint)
          Allows subclass to override Conection if required.
protected  ServerSocket newServerSocket(String host, int port, int backlog)
           
 void open()
          Opens the connector
 
Methods inherited from class org.mortbay.jetty.AbstractConnector
configure, connectionClosed, connectionOpened, getAcceptorPriorityOffset, getAcceptors, getAcceptQueueSize, getConfidentialPort, getConfidentialScheme, getConnections, getConnectionsDurationAve, getConnectionsDurationMax, getConnectionsDurationMin, getConnectionsDurationTotal, getConnectionsOpen, getConnectionsOpenMax, getConnectionsOpenMin, getConnectionsRequestsAve, getConnectionsRequestsMax, getConnectionsRequestsMin, getHost, getIntegralPort, getIntegralScheme, getLowResourceMaxIdleTime, getMaxIdleTime, getName, getPort, getRequests, getResolveNames, getServer, getSoLingerTime, getStatsOn, getStatsOnMs, getThreadPool, isConfidential, isIntegral, join, newContinuation, persist, setAcceptorPriorityOffset, setAcceptors, setAcceptQueueSize, setConfidentialPort, setConfidentialScheme, setHost, setIntegralPort, setIntegralScheme, setLowResourceMaxIdleTime, setMaxIdleTime, setName, setPort, setResolveNames, setServer, setSoLingerTime, setStatsOn, setThreadPool, statsReset, stopAccept, toString
 
Methods inherited from class org.mortbay.jetty.AbstractBuffers
getBuffer, getHeaderBufferSize, getRequestBufferSize, getResponseBufferSize, returnBuffer, setHeaderBufferSize, setRequestBufferSize, setResponseBufferSize
 
Methods inherited from class org.mortbay.component.AbstractLifeCycle
isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mortbay.jetty.Connector
getHeaderBufferSize, getRequestBufferSize, getResponseBufferSize, setHeaderBufferSize, setRequestBufferSize, setResponseBufferSize
 
Methods inherited from interface org.mortbay.component.LifeCycle
isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, start, stop
 
Methods inherited from interface org.mortbay.io.Buffers
getBuffer, returnBuffer
 

Field Detail

_serverSocket

protected ServerSocket _serverSocket

_connections

protected Set _connections
Constructor Detail

SocketConnector

public SocketConnector()
Constructor.

Method Detail

getConnection

public Object getConnection()
Returns:
the underlying socket, channel, buffer etc. for the connector.

open

public void open()
          throws IOException
Description copied from interface: Connector
Opens the connector

Specified by:
open in interface Connector
Specified by:
open in class AbstractConnector
Throws:
IOException

newServerSocket

protected ServerSocket newServerSocket(String host,
                                       int port,
                                       int backlog)
                                throws IOException
Throws:
IOException

close

public void close()
           throws IOException
Throws:
IOException

accept

public void accept(int acceptorID)
            throws IOException,
                   InterruptedException
Specified by:
accept in class AbstractConnector
Throws:
IOException
InterruptedException

newHttpConnection

protected HttpConnection newHttpConnection(EndPoint endpoint)
Allows subclass to override Conection if required.


newBuffer

protected Buffer newBuffer(int size)
Specified by:
newBuffer in class AbstractBuffers

customize

public void customize(EndPoint endpoint,
                      Request request)
               throws IOException
Description copied from interface: Connector
Customize a request for an endpoint. Called on every request to allow customization of the request for the particular endpoint (eg security properties from a SSL connection).

Specified by:
customize in interface Connector
Overrides:
customize in class AbstractConnector
Throws:
IOException

getLocalPort

public int getLocalPort()
Returns:
The actual port the connector is listening on or -1 if there is no port or the connector is not open.

doStart

protected void doStart()
                throws Exception
Overrides:
doStart in class AbstractConnector
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Overrides:
doStop in class AbstractConnector
Throws:
Exception