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 Functions Variables Typedefs Enumerations Enumerator

Generated on Fri Jul 8 2011 for the C++ Web Toolkit (Wt) by doxygen 1.7.2