|
Wt
3.3.0
|
An object which streams the data from a std::istream. More...
#include <Wt/WStreamResource>

Public Member Functions | |
| WStreamResource (WObject *parent=0) | |
| Default constructor. | |
| WStreamResource (const std::string &mimeType, WObject *parent=0) | |
| Creates a new resource with given mime-type. | |
| ~WStreamResource () | |
| Destructor. | |
| void | setMimeType (const std::string &mimeType) |
| Sets the mime-type. | |
| const std::string & | mimeType () const |
| Returns the mime-type. | |
| void | setBufferSize (int size) |
| Configures the buffer size. | |
| int | bufferSize () const |
| Returns the buffer size. | |
Protected Member Functions | |
| void | handleRequestPiecewise (const Http::Request &request, Http::Response &response, std::istream &input) |
| Handles a request and streams the data from a std::istream. | |
An object which streams the data from a std::istream.
This class can be useful base for implementing resources which streams the data from std::istream derivatives.
The utility method handleRequestPiecewise() makes use of continuations to transmit data piecewise, without blocking a thread or requiring the whole data to be read in memory. The size of the buffer can be changed by using setBufferSize().
Example for a custom stream resource implementation:
class MyStreamResource : public Wt::WStreamResource { public: MyStreamResource(const std::string& fileName, Wt::WObject *parent = 0) : Wt::WStreamResource(parent), fileName_(fileName) { suggestFileName("data.txt"); } ~MyStreamResource() { beingDeleted(); } void handleRequest(const Wt::Http::Request& request, Wt::Http::Response& response) { std::ifstream r(fileName_.c_str(), std::ios::in | std::ios::binary); handleRequestPiecewise(request, response, r); } private: std::string fileName_; };
| Wt::WStreamResource::WStreamResource | ( | WObject * | parent = 0 | ) |
Default constructor.
The mime type defaults to "text/plain".
| Wt::WStreamResource::~WStreamResource | ( | ) |
Destructor.
It is up to the user to make sure that the resource is no longer in use (by e.g. a WImage).
| int Wt::WStreamResource::bufferSize | ( | ) | const |
Returns the buffer size.
| void Wt::WStreamResource::handleRequestPiecewise | ( | const Http::Request & | request, |
| Http::Response & | response, | ||
| std::istream & | input | ||
| ) | [protected] |
Handles a request and streams the data from a std::istream.
You can call this method from a custom handleRequest() implementations.
| void Wt::WStreamResource::setBufferSize | ( | int | size | ) |
Configures the buffer size.
This configures the size of the buffer used to transmit the data piece by piece.
1.7.5.1