## org.w3c.jigsaw.http
Class httpdStatistics

    java.lang.Object
      |
      +--org.w3c.jigsaw.http.httpdStatistics

public class httpdStatistics
extends java.lang.Object

This class maintains server wide statistics about hits. This class should probably be coded as a resource itself, and made accessible through a specific HTTPResource. I am just having fun for the time being.

Field Summary
`protected long` | `r_max` The maximum processing time in ms.
`protected long` | `r_min` The min processing time in ms.
`protected httpd` | `server`
`protected long` | `start_time` The date at which the server was started (ms since Java epoch).
`protected long` | `t_bytes` The total number of emited bytes.
`protected long` | `t_hits` The total number of hits.
`protected long` | `t_req` The total time spent in processing requests in ms.
`protected java.net.URL` | `u_max` The URL that has been processed the slowest.
`protected java.net.URL` | `u_min` The URL that has been processed the fastest.

Method Summary
`long` | `getEmittedBytes()` Get the total number of bytes emited.
`int` | `getFreeThreadCount()` Get the number of free threads in the server.
`long` | `getHitCount()` Get the total number of hits.
`int` | `getIdleThreadCount()` Get the number of idle threads in the server.
`long` | `getMaxRequestTime()` Get the max request processing time.
`java.net.URL` | `getMaxRequestURL()` Get the URL of the request that took the longest time to be processed.
`long` | `getMeanRequestTime()` Get the mean request processing time.
`long` | `getMinRequestTime()` Get the min request processing time.
`java.net.URL` | `getMinRequestURL()` Get the URL of the request that took the smallest time to be processed.
`int` | `getServerLoad()` Get the current server load.
`long` | `getStartTime()` Get the time at which the server was started.
`int` | `getTotalThreadCount()` Get the total number of client threads.
`protected void` | `updateStatistics(Client client, Request request, Reply reply, int nbytes, long duration)` Update the current statistics with the given request.

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

Field Detail

### server

    protected httpd server

### r_min

    protected long r_min

  The min processing time in ms.

### u_min

    protected java.net.URL u_min

  The URL that has been processed the fastest.

### r_max

    protected long r_max

  The maximum processing time in ms.

### u_max

    protected java.net.URL u_max

  The URL that has been processed the slowest.

### t_hits

    protected long t_hits

  The total number of hits.

### t_bytes

    protected long t_bytes

  The total number of emited bytes.

### t_req

    protected long t_req

  The total time spent in processing requests in ms.

### start_time

    protected long start_time

  The date at which the server was started (ms since Java epoch).

Method Detail

### updateStatistics

    protected void updateStatistics(Client client,
                                    Request request,
                                    Reply reply,
                                    int nbytes,
                                    long duration)

  Update the current statistics with the given request.
  Parameters:
    `client` - The client that processed the request.
    `request` - The request that has been processed.
    `nbytes` - The number of emited bytes in reply's body.
    `duration` - The processing time of the request.

### getServerLoad

    public int getServerLoad()

  Get the current server load.
  Returns:
    A number between 1 and 4.

### getFreeThreadCount

    public int getFreeThreadCount()

  Get the number of free threads in the server.
  Returns:
    The number of threads ready to server client requests.

### getIdleThreadCount

    public int getIdleThreadCount()

  Get the number of idle threads in the server. Idle threads are the threads ready to accept more requests on a given connection.
  Returns:
    The number of idle threads.

### getTotalThreadCount

    public int getTotalThreadCount()

  Get the total number of client threads.
  Returns:
    The total number of created threads.

### getHitCount

    public long getHitCount()

  Get the total number of hits.
  Returns:
    The total number of processed requests since the server is up.

### getMeanRequestTime

    public long getMeanRequestTime()

  Get the mean request processing time.
  Returns:
    The average time to process a request.

### getMaxRequestTime

    public long getMaxRequestTime()

  Get the max request processing time.
  Returns:
    A long giving the maximum duration for a request.

### getMaxRequestURL

    public java.net.URL getMaxRequestURL()

  Get the URL of the request that took the longest time to be processed.
  Returns:
    A String giving the URL of the corresponding request, or null if no request has been processed yet.

### getMinRequestTime

    public long getMinRequestTime()

  Get the min request processing time.
  Returns:
    A long giving the minimum request processing time.

### getMinRequestURL

    public java.net.URL getMinRequestURL()

  Get the URL of the request that took the smallest time to be processed.
  Returns:
    A String giving the URL of the corresponding request, or null if no request has been processed yet.

### getEmittedBytes

    public long getEmittedBytes()

  Get the total number of bytes emited.
  Returns:
    A long giving the total number of bytes emited by the server. This count that not include the reply's header, but only the reply's body (or entity size).

### getStartTime

    public long getStartTime()

  Get the time at which the server was started.
  Returns:
    A number of milliseconds since java epoch, giving the date at which the server started.