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

qhttpservletrunner.h

00001 // -*- c++ -*-
00002 
00003 #ifndef QHTTPSERVLETRUNNER_H
00004 #define QHTTPSERVLETRUNNER_H
00005 
00006 #include <qservletbase.h>
00007 #include <qasciidict.h>
00008 #include <qcstring.h>
00009 #include <qvaluelist.h>
00010 
00011 class QTextStream;
00012 
00013 class QHttpServlet;
00014 class QHttpServletRequest;
00015 class QHttpServletResponse;
00016 class QHttpSession;
00017 
00022 class QHttpServletRunner : public QServletBase
00023 {
00024 public: 
00025    QHttpServletRunner();
00026    virtual ~QHttpServletRunner();
00027 
00029    QServletContext *context() { return ctx; }
00030 
00036    void addServlet( const char *path, QHttpServlet *sv );
00037 
00042    bool removeServlet( const char *path );
00043       
00045    QHttpServletRequest *createRequest( QTextStream *in );
00046 
00048    QHttpServletResponse *createResponse( QIODevice *out, QHttpServletRequest *req );
00049 
00057    bool processRequest( QHttpServletRequest *req, QHttpServletResponse *res );
00058    
00060    QHttpServlet *findServlet( QHttpServletRequest *req );
00061 
00063    QHttpSession *findSession( QHttpServletRequest *req );
00064    
00065 private:
00067    QServletContext *createContext();
00068 
00069    QString createSessionId( QHttpServletRequest *req );
00070 private:
00071    QServletContext *ctx;
00072    QValueList<QCString> paths;
00073    QAsciiDict<QHttpServlet> srvs;
00074    QString banner;
00075    
00076    class QHttpServletRunnerData *d;
00077    static ulong session_number;
00078 };
00079 
00080 #endif
00081 
00082 // Local Variables:
00083 // c-basic-offset: 3
00084 // End:

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