Wt
4.0.0
|
An object which streams the data from a std::istream. More...
#include <Wt/WStreamResource.h>
Public Member Functions | |
WStreamResource () | |
Default constructor. More... | |
WStreamResource (const std::string &mimeType) | |
Creates a new resource with given mime-type. | |
~WStreamResource () | |
Destructor. More... | |
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. More... | |
int | bufferSize () const |
Returns the buffer size. More... | |
![]() | |
WResource () | |
Creates a new resource. | |
~WResource () | |
Destroys the resource. More... | |
void | suggestFileName (const Wt::WString &name, ContentDisposition disposition=ContentDisposition::Attachment) |
Suggests a filename to the user for the data streamed by this resource. More... | |
const Wt::WString & | suggestedFileName () const |
Returns the suggested file name. More... | |
void | setDispositionType (ContentDisposition cd) |
Configures the Content-Disposition header. More... | |
ContentDisposition | dispositionType () const |
Returns the currently configured content disposition. More... | |
void | setChanged () |
Generates a new URL for this resource and emits the changed signal. More... | |
void | setInternalPath (const std::string &path) |
Sets an internal path for this resource. More... | |
std::string | internalPath () const |
Returns the internal path. More... | |
const std::string & | generateUrl () |
Generates an URL for this resource. More... | |
const std::string & | url () const |
Returns the current URL for this resource. More... | |
Signal & | dataChanged () |
Signal emitted when the data presented in this resource has changed. More... | |
void | setUploadProgress (bool enabled) |
Indicate interest in upload progress. More... | |
Signal<::uint64_t,::uint64_t > & | dataReceived () |
Signal emitted when data has been received for this resource. More... | |
void | write (std::ostream &out, const Http::ParameterMap ¶meters=Http::ParameterMap(), const Http::UploadedFileMap &files=Http::UploadedFileMap()) |
Stream the resource to a stream. More... | |
virtual void | handleRequest (const Http::Request &request, Http::Response &response)=0 |
Handles a request. More... | |
virtual void | handleAbort (const Http::Request &request) |
Handles a continued request being aborted. More... | |
void | haveMoreData () |
Indicate that more data is available. More... | |
![]() | |
void | addChild (std::unique_ptr< WObject > child) |
Add a child WObject whose lifetime is determined by this WObject. | |
template<typename Child > | |
Child * | addChild (std::unique_ptr< Child > child) |
Add a child WObject, returning a raw pointer. More... | |
std::unique_ptr< WObject > | removeChild (WObject *child) |
Remove a child WObject, so its lifetime is no longer determined by this WObject. | |
virtual const std::string | id () const |
Returns the (unique) identifier for this object. More... | |
virtual void | setObjectName (const std::string &name) |
Sets an object name. More... | |
virtual std::string | objectName () const |
Returns the object name. More... | |
void | resetLearnedSlots () |
Resets learned stateless slot implementations. More... | |
template<class T > | |
void | resetLearnedSlot (void(T::*method)()) |
Resets a learned stateless slot implementation. More... | |
template<class T > | |
WStatelessSlot * | implementStateless (void(T::*method)()) |
Declares a slot to be stateless and learn client-side behaviour on first invocation. More... | |
template<class T > | |
WStatelessSlot * | implementStateless (void(T::*method)(), void(T::*undoMethod)()) |
Declares a slot to be stateless and learn client-side behaviour in advance. More... | |
void | isNotStateless () |
Marks the current function as not stateless. More... | |
template<class T > | |
WStatelessSlot * | implementJavaScript (void(T::*method)(), const std::string &jsCode) |
Provides a JavaScript implementation for a method. More... | |
![]() | |
observable () | |
Default constructor. | |
virtual | ~observable () |
Destructor. More... | |
template<typename... Args, typename C > | |
auto | bindSafe (void(C::*method)(Args...)) |
Protects a method call against object destruction. More... | |
template<typename... Args, typename C > | |
auto | bindSafe (void(C::*method)(Args...) const) const |
Protects a const method call against object destruction. More... | |
template<typename Function > | |
auto | bindSafe (const Function &function) |
Protects a function against object destruction. More... | |
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. More... | |
![]() | |
void | beingDeleted () |
Prepares the resource for deletion. More... | |
![]() | |
virtual WStatelessSlot * | getStateless (Method method) |
On-demand stateless slot implementation. More... | |
Additional Inherited Members | |
![]() | |
typedef void(WObject::* | Method) () |
Typedef for a WObject method without arguments. | |
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:
Wt::WStreamResource::WStreamResource | ( | ) |
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.
|
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.