00001 // -*- c++ -*- 00002 00003 #ifndef QHTTPSERVLETRUNNER_H 00004 #define QHTTPSERVLETRUNNER_H 00005 00006 #include <qasciidict.h> 00007 #include <qcstring.h> 00008 #include <qvaluelist.h> 00009 00010 class QTextStream; 00011 00012 class QHttpServlet; 00013 class QHttpServletRequest; 00014 class QHttpServletResponse; 00015 class QHttpSession; 00016 class QHttpSessionContext; 00017 00022 class QHttpServletRunner 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 00062 private: 00063 QServletContext *ctx; 00064 QHttpSessionContext *sessctx; 00065 QValueList<QCString> paths; 00066 QAsciiDict<QHttpServlet> srvs; 00067 QString banner; 00068 00069 struct QHttpServletRunnerPrivate *d; 00070 }; 00071 00072 #endif 00073 00074 // Local Variables: 00075 // c-basic-offset: 3 00076 // End: