Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

qhttpservletresponse.h

00001 // -*- c++ -*-
00002 
00003 #ifndef QHTTPSERVLETRESPONSE_H
00004 #define QHTTPSERVLETRESPONSE_H
00005 
00006 #include <qmap.h>
00007 #include <qstring.h>
00008 
00009 #include <qhttpservletrequest.h>
00010 #include <qservletresponse.h>
00011 
00012 class QDateTime;
00013 class QHttpServletRequest;
00014 
00018 class QHttpServletResponse : public QServletResponse
00019 {
00020 public:
00022    enum ResponseStatus {
00023       StatusNull = 0,
00024       
00025       StatusContinue = 100,
00026       StatusSwitchingProtocols = 101,
00027       
00028       StatusOk = 200,
00029       StatusCreated = 201,
00030       StatusAccepted = 202,
00031       StatusNonAuthoritativeInformation = 203,
00032       StatusNoContent = 204,
00033       StatusResetContent = 205,
00034       StatusPartialContent = 206,
00035       
00036       StatusMultipleChoices = 300,
00037       StatusMovedPermanently = 301,
00038       StatusMovedTemporarily = 302,
00039       StatusSeeOther = 303,
00040       StatusNotModified = 304,
00041       StatusUseProxy = 305,
00042 
00043       StatusBadRequest = 400,
00044       StatusUnauthorised = 401,
00045       StatusPaymentRequired = 402,
00046       StatusForbidden = 403,
00047       StatusNotFound = 404,
00048       StatusMethodNotAllowed = 405,
00049       // TODO: 406 - 415
00050       
00051       StatusInternalServerError = 500,
00052       StatusNotImplemented = 501
00053       // TODO: 502 - 505
00054    };
00055 
00056    QHttpServletResponse( QIODevice *out, QHttpServletRequest *req );
00057    virtual ~QHttpServletResponse();
00058 
00063    virtual QTextStream *outputStream();
00064 
00066    void setStatus( int status ) { stat = status; }
00067 
00069    int status() const { return stat; }
00070 
00071    virtual QHttpServletRequest *request() const {
00072       return (QHttpServletRequest *) QServletResponse::request();
00073    }
00074    
00075    //
00076    // Convenience methods for sending standard responses.
00077    //
00078 
00080    virtual bool sendMessage( const QString &msg=QString::null );
00081 
00083    virtual bool sendError( int status, const QString &msg=QString::null );
00084 
00086    virtual bool sendRedirect( const QString &location );
00087 
00088    //
00089    // HTTP header methods.
00090    //
00091 
00093 
00094    void setHeader( const QString &name, const QString &value );
00095    void setHeader( const QString &name, int value );
00096    void setHeader( const QString &name, const QDateTime &value );
00098 
00100    void sendHeaders( QTextStream *out );
00101 
00102    static QString statusString( int status );
00103 private:
00104    int stat;
00105    QMap<QString,QString> headers; // name -> value
00106 };
00107 
00108 #endif // QHTTPSERVLETRESPONSE_H
00109 
00110 // Local Variables:
00111 // c-basic-offset: 3
00112 // End:
00113 

Generated on Mon Mar 31 01:08:13 2003 for QXServlet by doxygen1.2.17