php.java.bridge
Class Request

java.lang.Object
  extended by php.java.bridge.Request
All Implemented Interfaces:
IDocHandler

public final class Request
extends java.lang.Object
implements IDocHandler

This class is used to handle requests from the front-end.

Author:
jostb

Nested Class Summary
static class Request.AbortException
          This exception isn't an exception but a construct to emulate a one-shot continuation in Java.
 
Field Summary
 Response response
          The current response handle or null.
 
Constructor Summary
Request(JavaBridge bridge)
          Creates an empty request object.
 
Method Summary
 boolean begin(ParserTag[] tag)
          Called for each <tag arg1 ... argn>
 ParserString createParserString()
          Create a parser string, according to options
 void end(ParserString[] string)
          Called for each </tag>
 void handleRequests()
          Start handling requests until EOF.
 boolean init(java.io.InputStream in, java.io.OutputStream out)
          This method must be called with the current input and output streams.
 void recycle()
          re-initialize for new requests
 void reset()
          Reset the internal state so that a new input and output stream can be used for the next packed.
 void setBridge(JavaBridge bridge)
          Set a temporary bridge into this request.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

response

public Response response
The current response handle or null. There is only one response handle for each request object. response.reset() or response.flush() must be called at the end of each packet.

Constructor Detail

Request

public Request(JavaBridge bridge)
Creates an empty request object.

Parameters:
bridge - The bridge instance.
See Also:
init(InputStream, OutputStream)
Method Detail

init

public boolean init(java.io.InputStream in,
                    java.io.OutputStream out)
             throws java.io.IOException
This method must be called with the current input and output streams. It reads the protocol header and initializes the request object.

Parameters:
in - The input stream.
out - The output stream.
Returns:
true, if the protocol header was valid, false otherwise.
Throws:
java.io.IOException

begin

public boolean begin(ParserTag[] tag)
Description copied from interface: IDocHandler
Called for each <tag arg1 ... argn>

Specified by:
begin in interface IDocHandler
Parameters:
tag - The tag and the args.
Returns:
true, if the parser should stop after reading the top-level end tag, false otherwise. Implements a short path: Set this to true, if you already know that the current top-level request doesn't need a reply.

end

public void end(ParserString[] string)
Description copied from interface: IDocHandler
Called for each </tag>

Specified by:
end in interface IDocHandler
Parameters:
string - The tag and the args.
See Also:
IDocHandler.begin(ParserTag[])

handleRequests

public void handleRequests()
                    throws java.io.IOException
Start handling requests until EOF. Creates a response object and handles all packets.

Throws:
java.io.IOException

reset

public void reset()
Reset the internal state so that a new input and output stream can be used for the next packed. Note that request options (from init()) remain valid.

See Also:
init(InputStream, OutputStream)

setBridge

public void setBridge(JavaBridge bridge)
Set a temporary bridge into this request. The bridge and its associated session-/contextFactory will be automatically destroyed when the request is done.

Parameters:
bridge - The fresh bridge and its ContextFactory
See Also:
IContextFactory.recycle(String)

recycle

public void recycle()
re-initialize for new requests


createParserString

public ParserString createParserString()
Create a parser string, according to options

Specified by:
createParserString in interface IDocHandler
Returns:
The parser string