|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
T
- Type of data that is returned by the requestpublic interface ClientRequest<T>
ClientRequest represents a single request/response combination to a remote Voldemort instance -- a new instance is created for each request to the server.
This class is used to support both blocking and non-blocking communication with a remote server.
Method Summary | |
---|---|
void |
complete()
Called by the ClientRequestExecutor once all the processing
(normal or abnormal) has occurred on the ClientRequest object. |
boolean |
formatRequest(java.io.DataOutputStream outputStream)
This eventually calls into a nested RequestFormat instance's
writeXxx method. |
T |
getResult()
Once completed has been called, this will return the result of the request or thrown an error if the request wasn't completed. |
boolean |
isComplete()
Returns true if complete() was called. |
boolean |
isCompleteResponse(java.nio.ByteBuffer buffer)
isCompleteResponse determines if the response that the ClientRequestExecutor 's received thus far is inclusive of the
entire response. |
boolean |
isTimedOut()
Returns true if ClientRequestExecutor timed out. |
void |
parseResponse(java.io.DataInputStream inputStream)
Parses the response from the server to turn it into a result. |
void |
timeOut()
Called by the ClientRequestExecutor after it has timed out. |
Method Detail |
---|
T getResult() throws VoldemortException, java.io.IOException
VoldemortException
java.io.IOException
boolean formatRequest(java.io.DataOutputStream outputStream)
RequestFormat
instance's
writeXxx method. The ClientRequest actually buffers all I/O, so the data
written via formatRequest is actually inserted into a ByteBuffer
which is later sent over the wire to the server.
This is used internally by the ClientRequest
logic and should not
be invoked by users of the sub-system.
outputStream
- Write the request to this output streamboolean isCompleteResponse(java.nio.ByteBuffer buffer)
ClientRequestExecutor
's received thus far is inclusive of the
entire response. This relies on the RequestFormat
instance's
isCompleteXxxResponse methods.
This is used internally by the ClientRequest
logic and should not
be invoked by users of the sub-system.
buffer
- ByteBuffer containing the data received thus far
void parseResponse(java.io.DataInputStream inputStream)
getResult()
is called.
This is used internally by the ClientRequest
logic and should not
be invoked by users of the sub-system.
inputStream
- InputStream from which to read the responsevoid complete()
ClientRequestExecutor
once all the processing
(normal or abnormal) has occurred on the ClientRequest
object.
This exists mainly to implement blocking operations whereby we need to
have a mechanism to unblock the caller waiting for the response.
This is used internally by the ClientRequest
logic and should not
be invoked by users of the sub-system.
boolean isComplete()
true
if complete()
was called.
true
if completed, false
otherwisevoid timeOut()
ClientRequestExecutor
after it has timed out. This
is different from the complete call, since the timeout event needs to be
notified to the caller in a special way.
This is used internally by the ClientRequest
logic and should not
be invoked by users of the sub-system.
boolean isTimedOut()
true
if ClientRequestExecutor
timed out.
true
if timed out, false
otherwise
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |