More information: http://www.cs.berkeley.edu/~mdw/proj/seda/

seda.sandStorm.lib.http
Class httpConnection

java.lang.Object
  |
  +--seda.sandStorm.core.SimpleSink
        |
        +--seda.sandStorm.lib.http.httpConnection
All Implemented Interfaces:
httpConst, ProfilableIF, QueueElementIF, SinkIF

public class httpConnection
extends SimpleSink
implements httpConst, QueueElementIF

This class represents a single HTTP connection. When an httpServer receives a connection, an httpConnection is pushed to the user. To send HTTP responses to a client, you can enqueue an httpResponse object on the corresponding httpConnection.

Author:
Matt Welsh
See Also:
httpRequest, httpResponse

Field Summary
 java.lang.Object userTag
          Can be used by applications to associate an arbitrary data object with this connection.
 
Fields inherited from interface seda.sandStorm.lib.http.httpConst
CRLF, DEFAULT_HTTP_PORT, HTTP_VERSION, WRITE_CLOG_THRESHOLD
 
Constructor Summary
(package private) httpConnection(ATcpConnection tcpconn, httpServer hs, SinkIF compQ)
          Package-internal: Create an httpConnection with the given TCP connection and completion queue.
 
Method Summary
 void close(SinkIF compQ)
          Close the connection.
 void enqueue_abort(java.lang.Object key)
          Not supported; throws an IllegalArgumentException.
 void enqueue_commit(java.lang.Object key)
          Not supported; throws an IllegalArgumentException.
 boolean enqueue_lossy(QueueElementIF element)
          Enqueue outgoing data on this connection.
 void enqueue_many(QueueElementIF[] elements)
          Enqueue outgoing data on this connection.
 java.lang.Object enqueue_prepare(QueueElementIF[] enqueueMe)
          Not supported; throws an IllegalArgumentException.
 void enqueue(QueueElementIF element)
          Enqueue outgoing data on this connection.
 void flush(SinkIF compQ)
          Flush the connection; a SinkFlushedEvent will be pushed to the user when all packets have drained.
 ATcpConnection getConnection()
          Return the ATcpConnection associated with this connection.
(package private)  void parsePacket(ATcpInPacket pkt)
          Package-internal: Parse the data contained in the given TCP packet.
 int size()
          Return the number of outgoing packets waiting to be sent.
 java.lang.String toString()
           
 
Methods inherited from class seda.sandStorm.core.SimpleSink
getEnqueuePredicate, profileSize, setEnqueuePredicate
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

userTag

public java.lang.Object userTag
Can be used by applications to associate an arbitrary data object with this connection.
Constructor Detail

httpConnection

httpConnection(ATcpConnection tcpconn,
               httpServer hs,
               SinkIF compQ)
Package-internal: Create an httpConnection with the given TCP connection and completion queue.
Method Detail

parsePacket

void parsePacket(ATcpInPacket pkt)
           throws java.io.IOException
Package-internal: Parse the data contained in the given TCP packet.

getConnection

public ATcpConnection getConnection()
Return the ATcpConnection associated with this connection.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

enqueue

public void enqueue(QueueElementIF element)
             throws SinkException
Enqueue outgoing data on this connection. The 'element' must be of type httpResponder.
Overrides:
enqueue in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
element - The QueueElementIF to enqueue
Throws:
SinkFullException - Indicates that the sink is temporarily full.
SinkClosedException - Indicates that the sink is no longer being serviced.

enqueue_lossy

public boolean enqueue_lossy(QueueElementIF element)
Enqueue outgoing data on this connection. The 'element' must be of type httpResponder.
Overrides:
enqueue_lossy in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
element - The QueueElementIF to enqueue
Returns:
true if the element was enqueued, false otherwise.

enqueue_many

public void enqueue_many(QueueElementIF[] elements)
                  throws SinkException
Enqueue outgoing data on this connection. Each item in the elements array must be of type httpResponse.
Overrides:
enqueue_many in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
elements - The element array to enqueue
Throws:
SinkFullException - Indicates that the sink is temporarily full.
SinkClosedException - Indicates that the sink is no longer being serviced.

size

public int size()
Return the number of outgoing packets waiting to be sent.
Overrides:
size in class SimpleSink

close

public void close(SinkIF compQ)
           throws SinkClosedException
Close the connection.

flush

public void flush(SinkIF compQ)
           throws SinkClosedException
Flush the connection; a SinkFlushedEvent will be pushed to the user when all packets have drained.

enqueue_prepare

public java.lang.Object enqueue_prepare(QueueElementIF[] enqueueMe)
                                 throws SinkException
Description copied from class: SimpleSink
Not supported; throws an IllegalArgumentException.
Overrides:
enqueue_prepare in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
elements - The element array to provisionally enqueue
Returns:
A "transaction key" that may be used to commit or abort the provisional enqueue
Throws:
SinkFullException - Indicates that the sink is temporarily full and that the requested elements could not be provisionally enqueued.
SinkClosedException - Indicates that the sink is no longer being serviced.
See Also:
enqueue_commit, enqueue_abort

enqueue_commit

public void enqueue_commit(java.lang.Object key)
Description copied from class: SimpleSink
Not supported; throws an IllegalArgumentException.
Overrides:
enqueue_commit in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
key - The enqueue key returned by a previous call to enqueue_prepare().
Throws:
java.lang.IllegalArgumentException - Thrown if an unknown enqueue key is provided.

enqueue_abort

public void enqueue_abort(java.lang.Object key)
Description copied from class: SimpleSink
Not supported; throws an IllegalArgumentException.
Overrides:
enqueue_abort in class SimpleSink
Following copied from interface: seda.sandStorm.api.SinkIF
Parameters:
key - The enqueue key returned by a previous call to enqueue_prepare().
Throws:
java.lang.IllegalArgumentException - Thrown if an unknown enqueue key is provided.

More information: http://www.cs.berkeley.edu/~mdw/proj/seda/