this class implements a chunked request handler supporting the DataStream protocol
More...
Inherits AbstractRestStreamRequestHandler.
|
code | rcb |
| the receive callback as returned by the DataStreamUtil module
|
|
code | scb |
| the send callback as returned by the DataStreamUtil module
|
|
bool | recv_done = False |
| flag for when all data has been received
|
|
bool | send_done = False |
| flag for when all data has been sent
|
|
int | err |
| HTTP status code for error response sent.
|
|
*string | send_error |
| send error string received
|
|
|
nothing | recvDataDone (*string err) |
| this method is called when all data has been received
|
|
nothing | recvData (any data) |
| This is the concrete method called when data is received; it calls recvDataImpl() in turn. More...
|
|
any | sendData () |
| This is the concrete method called when data is received; it calls recvDataImpl() in turn. More...
|
|
nothing | recvDataDoneImpl (*string err) |
| this method is called when all data has been received
|
|
abstract nothing | recvDataImpl (any data) |
| reimplement this method in subclasses to receive decoded and deserialized data More...
|
|
abstract any | sendDataImpl () |
| reimplement this method in subclasses to support streamed data transfers; when this method returns no value, it signifies the end of the streamed data transfer More...
|
|
this class implements a chunked request handler supporting the DataStream protocol
this class must be subclassed and then the recvDataImpl() and sendDataImpl() methods reimplemented to provide data receiving and sending support, respectively.
*hash DataStreamRequestHandler::AbstractDataStreamRequestHandler::getErrorResponse |
( |
| ) |
|
if an error occurred, then return a hash giving an error response, otherwise return nothing
this method is meant to be called by getResponseHeaderMessageImpl()
hash DataStreamRequestHandler::AbstractDataStreamRequestHandler::getResponseHeaderMessageImpl |
( |
| ) |
|
returns the response header to the request
- Returns
- a hash with the following keys:
"code"
: the HTTP return code (see HttpServer::HttpCodes)
"body"
: the message body to return in the response; if this key is returned, then the reply is sent immediately; a chunked reply is not made, and send() and sendImpl() are not called
"close"
: (optional) set this key to True if the connection should be unconditionally closed when the handler returns
"hdr"
: (optional) set this key to a hash of extra header information to be returned with the response
- Note
- this method is called after the message body has been received
nothing DataStreamRequestHandler::AbstractDataStreamRequestHandler::recvData |
( |
any |
data | ) |
|
|
private |
This is the concrete method called when data is received; it calls recvDataImpl() in turn.
- Parameters
-
abstract nothing DataStreamRequestHandler::AbstractDataStreamRequestHandler::recvDataImpl |
( |
any |
data | ) |
|
|
privatepure virtual |
reimplement this method in subclasses to receive decoded and deserialized data
- Parameters
-
data | the argument passed to this callback is the decoded and deserialized data in the message |
any DataStreamRequestHandler::AbstractDataStreamRequestHandler::sendData |
( |
| ) |
|
|
private |
This is the concrete method called when data is received; it calls recvDataImpl() in turn.
- Returns
- data the data to be sent over the link
abstract any DataStreamRequestHandler::AbstractDataStreamRequestHandler::sendDataImpl |
( |
| ) |
|
|
privatepure virtual |
reimplement this method in subclasses to support streamed data transfers; when this method returns no value, it signifies the end of the streamed data transfer
- Returns
- the data returned by this callback will be serialized to YAML and send via the DataStream protocol to the remote HTTP REST server in HTTP chunked format; when all data has been send then this callback should return nothing, which will close the chunked message and terminate the request