~ubuntu-branches/ubuntu/trusty/tomahawk/trusty-proposed

« back to all changes in this revision

Viewing changes to thirdparty/qxt/qxtweb-standalone/qxtweb/qxtwebevent.h

  • Committer: Package Import Robot
  • Author(s): Harald Sitter
  • Date: 2013-03-07 21:50:13 UTC
  • Revision ID: package-import@ubuntu.com-20130307215013-6gdjkdds7i9uenvs
Tags: upstream-0.6.0+dfsg
ImportĀ upstreamĀ versionĀ 0.6.0+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
 **
 
3
 ** Copyright (C) Qxt Foundation. Some rights reserved.
 
4
 **
 
5
 ** This file is part of the QxtWeb module of the Qxt library.
 
6
 **
 
7
 ** This library is free software; you can redistribute it and/or modify it
 
8
 ** under the terms of the Common Public License, version 1.0, as published
 
9
 ** by IBM, and/or under the terms of the GNU Lesser General Public License,
 
10
 ** version 2.1, as published by the Free Software Foundation.
 
11
 **
 
12
 ** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
 
13
 ** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
 
14
 ** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
 
15
 ** FITNESS FOR A PARTICULAR PURPOSE.
 
16
 **
 
17
 ** You should have received a copy of the CPL and the LGPL along with this
 
18
 ** file. See the LICENSE file and the cpl1.0.txt/lgpl-2.1.txt files
 
19
 ** included with the source distribution for more information.
 
20
 ** If you did not receive a copy of the licenses, contact the Qxt Foundation.
 
21
 **
 
22
 ** <http://libqxt.org>  <foundation@libqxt.org>
 
23
 **
 
24
 ****************************************************************************/
 
25
 
 
26
#ifndef QXTWEBEVENT_H
 
27
#define QXTWEBEVENT_H
 
28
 
 
29
#include <qxtglobal.h>
 
30
#include <QString>
 
31
#include <QByteArray>
 
32
#include <QStringList>
 
33
#include <QPointer>
 
34
#include <QUrl>
 
35
#include <QMultiHash>
 
36
#include <QDateTime>
 
37
QT_FORWARD_DECLARE_CLASS(QIODevice)
 
38
class QxtWebContent;
 
39
 
 
40
class QXT_WEB_EXPORT QxtWebEvent
 
41
{
 
42
public:
 
43
    enum EventType
 
44
    {
 
45
        None = 0,
 
46
        Request,
 
47
        FileUpload,
 
48
        Page,
 
49
        StoreCookie,
 
50
        RemoveCookie,
 
51
        Redirect
 
52
    };
 
53
 
 
54
    QxtWebEvent(EventType type, int sessionID);
 
55
    virtual ~QxtWebEvent();
 
56
 
 
57
    inline EventType type() const
 
58
    {
 
59
        return m_type;
 
60
    }
 
61
    const int sessionID;
 
62
 
 
63
private:
 
64
    EventType m_type;
 
65
};
 
66
 
 
67
class QXT_WEB_EXPORT QxtWebRequestEvent : public QxtWebEvent
 
68
{
 
69
public:
 
70
    QxtWebRequestEvent(int sessionID, int requestID, const QUrl& url);
 
71
    ~QxtWebRequestEvent();
 
72
 
 
73
    const int requestID;
 
74
 
 
75
    QUrl url;
 
76
    const QUrl originalUrl;
 
77
    QString contentType;
 
78
    QPointer<QxtWebContent> content;
 
79
    QString method;
 
80
    QString remoteAddress;
 
81
 
 
82
    QMultiHash<QString, QString> cookies;
 
83
    QMultiHash<QString, QString> headers;
 
84
};
 
85
 
 
86
/* TODO: refactor and implement
 
87
class QXT_WEB_EXPORT QxtWebFileUploadEvent : public QxtWebEvent {
 
88
public:
 
89
    QxtWebFileUploadEvent(int sessionID);
 
90
 
 
91
    QString filename;
 
92
    int contentLength;
 
93
    QIODevice* content;
 
94
};
 
95
*/
 
96
 
 
97
class QxtWebRedirectEvent;
 
98
class QXT_WEB_EXPORT QxtWebPageEvent : public QxtWebEvent
 
99
{
 
100
public:
 
101
    QxtWebPageEvent(int sessionID, int requestID, QSharedPointer<QIODevice> source);
 
102
    QxtWebPageEvent(int sessionID, int requestID, QByteArray source);    // creates a QBuffer
 
103
    virtual ~QxtWebPageEvent();
 
104
 
 
105
    QSharedPointer<QIODevice> dataSource;          // data is read from this device and written to the client
 
106
    bool chunked;
 
107
    bool streaming;
 
108
 
 
109
    const int requestID;
 
110
    int status;
 
111
    QByteArray statusMessage;
 
112
    QByteArray contentType;
 
113
 
 
114
    QMultiHash<QString, QString> headers;
 
115
 
 
116
private:
 
117
    friend class QxtWebRedirectEvent;
 
118
    QxtWebPageEvent(QxtWebEvent::EventType typeOverride, int sessionID, int requestID, QByteArray source);
 
119
};
 
120
 
 
121
class QXT_WEB_EXPORT QxtWebErrorEvent : public QxtWebPageEvent
 
122
{
 
123
public:
 
124
    QxtWebErrorEvent(int sessionID, int requestID, int status, QByteArray statusMessage);
 
125
};
 
126
 
 
127
class QXT_WEB_EXPORT QxtWebStoreCookieEvent : public QxtWebEvent
 
128
{
 
129
public:
 
130
    QxtWebStoreCookieEvent(int sessionID, QString name, QString data, QDateTime expiration = QDateTime());
 
131
 
 
132
    QString name;
 
133
    QString data;
 
134
    QDateTime expiration;
 
135
};
 
136
 
 
137
class QXT_WEB_EXPORT QxtWebRemoveCookieEvent : public QxtWebEvent
 
138
{
 
139
public:
 
140
    QxtWebRemoveCookieEvent(int sessionID, QString name);
 
141
 
 
142
    QString name;
 
143
};
 
144
 
 
145
class QXT_WEB_EXPORT QxtWebRedirectEvent : public QxtWebPageEvent
 
146
{
 
147
public:
 
148
    QxtWebRedirectEvent(int sessionID, int requestID, const QString& destination, int statusCode = 302);
 
149
 
 
150
    QString destination;
 
151
};
 
152
 
 
153
#endif // QXTWEBEVENT_H