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