org.restlet.engine.adapter
Class ServerCall

java.lang.Object
  extended by org.restlet.engine.adapter.Call
      extended by org.restlet.engine.adapter.ServerCall

public abstract class ServerCall
extends Call

Abstract HTTP server connector call.

Author:
Jerome Louvel

Constructor Summary
ServerCall(Server server)
          Constructor.
ServerCall(String serverAddress, int serverPort)
          Constructor.
 
Method Summary
abstract  boolean abort()
          Ask the connector to abort the related network connection, for example immediately closing the socket.
 void complete()
          Complete the response
 List<Certificate> getCertificates()
          Returns the chain of client SSL certificates, if available and accessible.
 String getCipherSuite()
          Returns the SSL Cipher Suite, if available and accessible.
protected  long getContentLength()
          Returns the content length of the request entity if know, Representation.UNKNOWN_SIZE otherwise.
 String getHostDomain()
          Returns the host domain name.
 int getHostPort()
          Returns the host port.
 Representation getRequestEntity()
          Returns the request entity if available.
abstract  InputStream getRequestEntityStream(long size)
          Returns the request entity stream if it exists.
abstract  InputStream getRequestHeadStream()
          Returns the request head stream if it exists.
abstract  OutputStream getResponseEntityStream()
          Returns the response entity stream if it exists.
 Integer getSslKeySize()
          Returns the SSL key size, if available and accessible.
 String getSslSessionId()
          Returns the SSL session ID, in hexadecimal encoding, if available and accessible.
protected  byte[] getSslSessionIdBytes()
          Returns the SSL session ID, as a byte array, if available and accessible in that format (to be used by getSslSessionId).
protected  boolean isClientKeepAlive()
          Indicates if the client wants a persistent connection.
protected  boolean isServerKeepAlive()
          Indicates if the server wants a persistent connection.
protected  void readRequestHead(InputStream headStream)
          Reads the HTTP request head (request line and headers).
 void sendResponse(Response response)
          Sends the response back to the client.
 boolean shouldResponseBeChunked(Response response)
          Indicates if the response should be chunked because its length is unknown.
protected  void writeResponseBody(Representation entity, OutputStream responseEntityStream)
          Effectively writes the response body.
protected  void writeResponseHead(Response response)
          Writes the response status line and headers.
protected  void writeResponseHead(Response response, OutputStream headStream)
          Writes the response head to the given output stream.
 
Methods inherited from class org.restlet.engine.adapter.Call
getClientAddress, getClientPort, getLogger, getMethod, getProtocol, getReasonPhrase, getRepresentation, getRepresentation, getRequestHeaders, getRequestUri, getResponseHeaders, getServerAddress, getServerPort, getStatusCode, getUserPrincipal, getVersion, isBroken, isConfidential, isConnectionBroken, isKeepAlive, isRequestChunked, isResponseChunked, setClientAddress, setClientPort, setConfidential, setHostDomain, setHostPort, setMethod, setProtocol, setReasonPhrase, setRequestUri, setServerAddress, setServerPort, setStatusCode, setUserPrincipal, setVersion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServerCall

public ServerCall(Server server)
Constructor.

Parameters:
server - The parent server connector.

ServerCall

public ServerCall(String serverAddress,
                  int serverPort)
Constructor.

Parameters:
serverAddress - The server IP address.
serverPort - The server port.
Method Detail

abort

public abstract boolean abort()
Ask the connector to abort the related network connection, for example immediately closing the socket.

Returns:
True if the request was aborted.

complete

public void complete()
Complete the response


getCertificates

public List<Certificate> getCertificates()
Returns the chain of client SSL certificates, if available and accessible.

Returns:
The chain of client SSL certificates, if available and accessible.

getCipherSuite

public String getCipherSuite()
Returns the SSL Cipher Suite, if available and accessible.

Returns:
The SSL Cipher Suite, if available and accessible.

getContentLength

protected long getContentLength()
Returns the content length of the request entity if know, Representation.UNKNOWN_SIZE otherwise.

Returns:
The request content length.

getHostDomain

public String getHostDomain()
Returns the host domain name.

Overrides:
getHostDomain in class Call
Returns:
The host domain name.

getHostPort

public int getHostPort()
Returns the host port.

Overrides:
getHostPort in class Call
Returns:
The host port.

getRequestEntity

public Representation getRequestEntity()
Returns the request entity if available.

Returns:
The request entity if available.

getRequestEntityStream

public abstract InputStream getRequestEntityStream(long size)
Returns the request entity stream if it exists.

Parameters:
size - The expected entity size or -1 if unknown.
Returns:
The request entity stream if it exists.

getRequestHeadStream

public abstract InputStream getRequestHeadStream()
Returns the request head stream if it exists.

Returns:
The request head stream if it exists.

getResponseEntityStream

public abstract OutputStream getResponseEntityStream()
Returns the response entity stream if it exists.

Returns:
The response entity stream if it exists.

getSslKeySize

public Integer getSslKeySize()
Returns the SSL key size, if available and accessible.

Returns:
The SSL key size, if available and accessible.

getSslSessionId

public String getSslSessionId()
Returns the SSL session ID, in hexadecimal encoding, if available and accessible.

Returns:
The SSL session ID, in hexadecimal encoding, if available and accessible.

getSslSessionIdBytes

protected byte[] getSslSessionIdBytes()
Returns the SSL session ID, as a byte array, if available and accessible in that format (to be used by getSslSessionId).

Returns:
The SSL session ID, as a byte array, if available and accessible in that format.

isClientKeepAlive

protected boolean isClientKeepAlive()
Description copied from class: Call
Indicates if the client wants a persistent connection.

Specified by:
isClientKeepAlive in class Call
Returns:
True if the client wants a persistent connection.

isServerKeepAlive

protected boolean isServerKeepAlive()
Description copied from class: Call
Indicates if the server wants a persistent connection.

Specified by:
isServerKeepAlive in class Call
Returns:
True if the server wants a persistent connection.

readRequestHead

protected void readRequestHead(InputStream headStream)
                        throws IOException
Reads the HTTP request head (request line and headers).

Throws:
IOException

sendResponse

public void sendResponse(Response response)
                  throws IOException
Sends the response back to the client. Commits the status, headers and optional entity and send them over the network. The default implementation only writes the response entity on the response stream or channel. Subclasses will probably also copy the response headers and status.

Parameters:
response - The high-level response.
Throws:
IOException - if the Response could not be written to the network.

shouldResponseBeChunked

public boolean shouldResponseBeChunked(Response response)
Indicates if the response should be chunked because its length is unknown.

Parameters:
response - The response to analyze.
Returns:
True if the response should be chunked.

writeResponseBody

protected void writeResponseBody(Representation entity,
                                 OutputStream responseEntityStream)
                          throws IOException
Effectively writes the response body. The entity to write is guaranteed to be non null. Attempts to write the entity on the response channel or response stream by default.

Parameters:
entity - The representation to write as entity of the body.
responseEntityStream - The response entity stream or null if a channel is used.
Throws:
IOException

writeResponseHead

protected void writeResponseHead(Response response)
                          throws IOException
Writes the response status line and headers. Does nothing by default.

Parameters:
response - The response.
Throws:
IOException

writeResponseHead

protected void writeResponseHead(Response response,
                                 OutputStream headStream)
                          throws IOException
Writes the response head to the given output stream.

Parameters:
response - The response.
headStream - The output stream to write to.
Throws:
IOException


Copyright © 2005-2013 Restlet.