Connection (RabbIT/4)
Date: 2009-12-20

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rabbit.proxy
Class Connection

    java.lang.Object
      rabbit.proxy.Connection

    public class Connection

extends Object

The base connection class for rabbit. This is the class that handle the http protocoll for proxies. For the technical overview of how connections and threads works see the file htdocs/technical_documentation/thread_handling_overview.txt

Author:
  Robert Olofsson

Constructor Summary
`Connection(ConnectionId id, SocketChannel channel, HttpProxy proxy, BufferHandler bufHandler)`

Method Summary
`protected boolean` | `checkStrongEtag(String et, String im)`
`protected boolean` | `checkWeakEtag(String et, String im)`
`BufferHandler` | `getBufferHandler()`
`SocketChannel` | `getChannel()`
`boolean` | `getChunking()` Get the chunking option.
`String` | `getContentLength()`
`String` | `getExtraInfo()`
`HttpGenerator` | `getHttpGenerator()`
`ConnectionId` | `getId()`
`boolean` | `getMayFilter()` Get the state of the request.
`boolean` | `getMeta()` Get the state of this request.
`NioHandler` | `getNioHandler()`
`String` | `getPassword()`
`HttpProxy` | `getProxy()`
`String` | `getRequestLine()`
`String` | `getRequestURI()` Get the current request uri.
`long` | `getStarted()` Get the time this connection was started.
`String` | `getStatus()`
`String` | `getUserName()`
`protected boolean` | `isWeak(String t)`
`void` | `logAndClose(rabbit.proxy.RequestHandler rh)`
`void` | `logAndRestart()`
`protected boolean` | `mustTunnel(rabbit.proxy.RequestHandler rh)` Check if we must tunnel a request.
`void` | `readRequest()` Read a request.
`void` | `setChunking(boolean b)` Set the chunking option.
`void` | `setContentLength(String contentLength)` Set the content length of the response.
`void` | `setExtraInfo(String info)` Set the extra info.
`void` | `setKeepalive(boolean keepalive)` Set keepalive to a new value.
`void` | `setMayCache(boolean cacheAllowed)` Specify if we may cache the response resource.
`void` | `setMayFilter(boolean filterAllowed)` Get the state of this request.
`void` | `setMayUseCache(boolean useCache)` Specify if the current resource may be served from our cache.
`void` | `setMeta(boolean meta)` Set the state of this request.
`void` | `setMustRevalidate(boolean b)`
`void` | `setPassword(String password)`
`void` | `setStatusCode(String statusCode)`
`void` | `setUserName(String userName)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Connection

    public Connection(ConnectionId id,
                      SocketChannel channel,
                      HttpProxy proxy,
                      BufferHandler bufHandler)

Method Detail

### getId

    public ConnectionId getId()

### readRequest

    public void readRequest()

  Read a request.

### mustTunnel

    protected boolean mustTunnel(rabbit.proxy.RequestHandler rh)

  Check if we must tunnel a request. Currently will only check if the Authorization starts with NTLM or Negotiate.

  Parameters:
    `rh` - the request handler.

### getChannel

    public SocketChannel getChannel()

### getNioHandler

    public NioHandler getNioHandler()

### getProxy

    public HttpProxy getProxy()

### getBufferHandler

    public BufferHandler getBufferHandler()

### setKeepalive

    public void setKeepalive(boolean keepalive)

  Set keepalive to a new value. Note that keepalive can only be promoted down.

  Parameters:
    `keepalive` - the new keepalive value.

### getUserName

    public String getUserName()

### setUserName

    public void setUserName(String userName)

### getPassword

    public String getPassword()

### setPassword

    public void setPassword(String password)

### getRequestLine

    public String getRequestLine()

### getRequestURI

    public String getRequestURI()

  Get the current request uri. This will get the uri from the request header.

### getStatus

    public String getStatus()

### getContentLength

    public String getContentLength()

### getExtraInfo

    public String getExtraInfo()

### setExtraInfo

    public void setExtraInfo(String info)

  Set the extra info.

  Parameters:
    `info` - the new info.

### getStarted

    public long getStarted()

  Get the time this connection was started.

### setChunking

    public void setChunking(boolean b)

  Set the chunking option.

  Parameters:
    `b` - if true this connection should use chunking.

### getChunking

    public boolean getChunking()

  Get the chunking option.

  Returns:
    if this connection is using chunking.

### getMeta

    public boolean getMeta()

  Get the state of this request.

  Returns:
    true if this is a metapage request, false otherwise.

### setMeta

    public void setMeta(boolean meta)

  Set the state of this request.

  Parameters:
    `meta` - true if this request is a metapage request, false otherwise.

### setMayUseCache

    public void setMayUseCache(boolean useCache)

  Specify if the current resource may be served from our cache. This can only be promoted down..

  Parameters:
    `useCache` - true if we may use the cache for serving this request, false otherwise.

### setMayCache

    public void setMayCache(boolean cacheAllowed)

  Specify if we may cache the response resource. This can only be promoted down.

  Parameters:
    `cacheAllowed` - true if we may cache the response, false otherwise.

### setMayFilter

    public void setMayFilter(boolean filterAllowed)

  Get the state of this request. This can only be promoted down.

  Parameters:
    `filterAllowed` - true if we may filter the response, false otherwise.

### getMayFilter

    public boolean getMayFilter()

  Get the state of the request.

  Returns:
    true if we may filter the response, false otherwise.

### setMustRevalidate

    public void setMustRevalidate(boolean b)

### setContentLength

    public void setContentLength(String contentLength)

  Set the content length of the response.

  Parameters:
    `contentLength` - the new content length.

### setStatusCode

    public void setStatusCode(String statusCode)

### logAndClose

    public void logAndClose(rabbit.proxy.RequestHandler rh)

### logAndRestart

    public void logAndRestart()

### isWeak

    protected boolean isWeak(String t)

### checkStrongEtag

    protected boolean checkStrongEtag(String et,
                                      String im)

### checkWeakEtag

    protected boolean checkWeakEtag(String et,
                                    String im)

### getHttpGenerator

    public HttpGenerator getHttpGenerator()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD