00001
00002
00003 #ifndef QSERVLETCONTEXT_H
00004 #define QSERVLETCONTEXT_H
00005
00006 #include <qmap.h>
00007 #include <qptrlist.h>
00008 #include <qstring.h>
00009 #include <qstringlist.h>
00010 #include <qurl.h>
00011 #include <qvariant.h>
00012
00013 class QIODevice;
00014
00015 class QRequestDispatcher;
00016 class QServlet;
00017
00023 class QServletContext
00024 {
00025 public:
00026 QServletContext( const char *info=0 );
00027 virtual ~QServletContext();
00028
00029 int majorVersion() const;
00030 int minorVersion() const;
00031
00033 virtual QString mimeType( const QString &filename ) const;
00034 virtual QString realPath( const QString &path ) const;
00035
00036 virtual QServletContext *servletContext( const QString &uripath );
00037 virtual QRequestDispatcher *requestDispatcher( const QString &urlpath );
00038
00039 virtual QUrl resource( const QString &path );
00040 virtual QIODevice *resourceAsStream( const QString &path );
00041
00043 QString serverInfo() { return srvInfo; }
00044 virtual void log( const QString &msg );
00045
00047 QVariant attribute( const QString &name ) const;
00049 QStringList attributeNames() const;
00051 void setAttribute( const QString &name, const QVariant &val );
00053 void removeAttribute( const QString &name );
00054
00056 QServlet *servlet( const QString &name );
00058 QStringList servletNames();
00060 QPtrList<QServlet> servlets();
00061
00062 private:
00063 QString srvInfo;
00064 QMap<QString, QVariant> attrs;
00065 };
00066
00067 #endif // QSERVLETCONTEXT_H
00068
00069
00070
00071
00072