this class implements a chunked request handler supporting the DataStream protocol
More...
Inherits RestHandler::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 (auto data) |
| This is the concrete method called when data is received; it calls recvDataImpl() in turn. More...
|
|
auto | 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 (auto data) |
| reimplement this method in subclasses to receive decoded and deserialized data More...
|
|
abstract auto | 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.
◆ getErrorResponse()
*hash<auto> 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()
◆ getResponseHeaderMessageImpl()
hash<auto> 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
◆ recvData()
nothing DataStreamRequestHandler::AbstractDataStreamRequestHandler::recvData |
( |
auto |
data | ) |
|
|
private |
This is the concrete method called when data is received; it calls recvDataImpl() in turn.
- Parameters
-
◆ recvDataImpl()
abstract nothing DataStreamRequestHandler::AbstractDataStreamRequestHandler::recvDataImpl |
( |
auto |
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 |
◆ sendData()
auto 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
◆ sendDataImpl()
abstract auto 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
The documentation for this class was generated from the following file:
- doxygen/qlib/DataStreamRequestHandler.qm.dox.h