Wt
3.2.1
|
A resource which streams data from memory. More...
#include <Wt/WMemoryResource>
Public Member Functions | |
WMemoryResource (WObject *parent=0) | |
Creates a new resource. | |
WMemoryResource (const std::string &mimeType, WObject *parent=0) | |
Creates a new resource with given mime-type. | |
WMemoryResource (const std::string &mimeType, const std::vector< unsigned char > &data, WObject *parent=0) | |
Creates a new resource with given mime-type and data. | |
void | setData (const std::vector< unsigned char > &data) |
Sets new data for the resource to serve. | |
void | setData (const unsigned char *data, int count) |
Sets new data for the resource to serve. | |
const std::string | mimeType () const |
Returns the mime-type. | |
void | setMimeType (const std::string &mimeType) |
Sets the mime-type. | |
Private Member Functions | |
virtual void | handleRequest (const Http::Request &request, Http::Response &response) |
Handles a request. |
A resource which streams data from memory.
Use this resource if you want to serve resource data from memory. This is suitable for relatively small resources, which still require some computation.
If creating the data requires computation which you would like to post-pone until the resource is served, then you may want to directly reimplement WResource instead and compute the data on the fly while streaming.
Usage examples:
Wt::WMemoryResource *imageResource = new Wt::WMemoryResource("image/gif", this); static const unsigned char gifData[] = { 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0xdb, 0xdf, 0xef, 0x00, 0x00, 0x00, 0x21, 0xf9, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x44, 0x01, 0x00, 0x3b }; imageResource->setData(gifData, 43); Wt::WImage *image = new Wt::WImage(imageResource, "1 transparent pixel");
Wt::WMemoryResource::WMemoryResource | ( | WObject * | parent = 0 | ) |
Creates a new resource.
You must call setMimeType() and setData() before using the resource.
Wt::WMemoryResource::WMemoryResource | ( | const std::string & | mimeType, |
WObject * | parent = 0 |
||
) |
Creates a new resource with given mime-type.
You must call setData() before using the resource.
void Wt::WMemoryResource::handleRequest | ( | const Http::Request & | request, |
Http::Response & | response | ||
) | [private, virtual] |
Handles a request.
Reimplement this method so that a proper response is generated for the given request. From the request
object you can access request parameters and whether the request is a continuation request. In the response
object, you should set the mime type and stream the output data.
A request may also concern a continuation, indicated in Http::Request::continuation(), in which case the next part for a previously created continuation should be served.
While handling a request, which may happen at any time together with event handling, the library makes sure that the resource is not being concurrently deleted, but multiple requests may happend simultaneously for a single resource.
Implements Wt::WResource.
void Wt::WMemoryResource::setData | ( | const unsigned char * | data, |
int | count | ||
) |
Sets new data for the resource to serve.
Sets the data from using the first count
bytes from the C-style data
array.