Wt  3.2.2
Public Member Functions
Wt::WFileResource Class Reference

A resource which streams the data from a local file. More...

#include <Wt/WFileResource>

Inheritance diagram for Wt::WFileResource:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 WFileResource (WObject *parent=0)
 Default constructor.
 WFileResource (const std::string &fileName, WObject *parent=0)
 Creates a new resource for a file.
 WFileResource (const std::string &mimeType, const std::string &fileName, WObject *parent=0)
 Creates a new resource with given mime-type for a file.
 ~WFileResource ()
 Destructor.
void setFileName (const std::string &fileName)
 Sets a (different) filename.
const std::string & fileName () const
 Returns the filename.
virtual void handleRequest (const Http::Request &request, Http::Response &response)
 Handles a request.

Detailed Description

A resource which streams the data from a local file.

To update the resource, either use setFileName() to point it to a new file, or emit the WResource::dataChanged() signal when only the file contents has changed, but not the filename.

The resource makes use of continuations to transmit data piecewise, without blocking a thread or requiring the entire file to be read in memory. The size of the buffer can be changed using setBufferSize().

Usage examples:

 Wt::WFileResource *csvFile = new Wt::WFileResource("text/csv", "/opt/files/afile.csv");
 csvFile->suggestFileName("data.csv");
 Wt::WAnchor *anchor = new Wt::WAnchor(csvFile, "CSV data");

 Wt::WFileResource *imageFile = new Wt::WFileResource("image/png", "/opt/files/image.png");
 imageFile->suggestFileName("data.png");
 Wt::WImage *image = new Wt::WImage(imageFile, "PNG version");
See also:
WStreamResource, WMemoryResource

Constructor & Destructor Documentation

Wt::WFileResource::WFileResource ( WObject parent = 0)

Default constructor.

You need to set a file name (and mime type) for the resource using setFileName() and setMimeType().

Wt::WFileResource::WFileResource ( const std::string &  fileName,
WObject parent = 0 
)

Creates a new resource for a file.

The mime type defaults to "text/plain".

Wt::WFileResource::~WFileResource ( )

Destructor.

It is up to the user to make sure that the resource is no longer in use (by e.g. a WImage).


Member Function Documentation

void Wt::WFileResource::handleRequest ( const Http::Request request,
Http::Response response 
) [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::WFileResource::setFileName ( const std::string &  fileName)

Sets a (different) filename.

Set the location of the file on the local filesystem which must be streamed for this resource.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator

Generated on Fri Jul 27 2012 for the C++ Web Toolkit (Wt) by doxygen 1.7.5.1