PageRenderTime 163ms CodeModel.GetById 81ms app.highlight 3ms RepoModel.GetById 77ms app.codeStats 0ms

/thirdparty/qxt/qxtweb-standalone/qxtweb/qxtwebcgiservice_p.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 71 lines | 39 code | 8 blank | 24 comment | 0 complexity | 02a68561936730ec4b70011c22928bed MD5 | raw file
 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 QXTWEBCGISERVICE_P_H
27#define QXTWEBCGISERVICE_P_H
28
29#include "qxtwebcgiservice.h"
30#include <QString>
31#include <QHash>
32#include <QPair>
33#include <QTimer>
34#include <QSignalMapper>
35
36#ifndef QXT_DOXYGEN_RUN
37QT_FORWARD_DECLARE_CLASS(QProcess)
38class QxtWebContent;
39
40struct QxtCgiRequestInfo
41{
42    QxtCgiRequestInfo();
43    QxtCgiRequestInfo(QxtWebRequestEvent* req);
44    int sessionID, requestID;
45    QHash<QString, QString> headers;
46    bool eventSent, terminateSent;
47    QTimer* timeout;
48};
49
50class QxtWebCgiServicePrivate : public QObject, public QxtPrivate<QxtWebCgiService>
51{
52    Q_OBJECT
53public:
54    QXT_DECLARE_PUBLIC(QxtWebCgiService)
55
56    QHash<QProcess*, QxtCgiRequestInfo> requests;
57    QHash<QxtWebContent*, QProcess*> processes;
58    QString binary;
59    int timeout;
60    bool timeoutOverride;
61    QSignalMapper timeoutMapper;
62
63public Q_SLOTS:
64    void browserReadyRead(QObject* o_content = 0);
65    void processReadyRead();
66    void processFinished();
67    void terminateProcess(QObject* o_process);
68};
69#endif // QXT_DOXYGEN_RUN
70
71#endif // QXTWEBSERVICEDIRECTORY_P_H