/**************************************************************************** ** Copyright (c) 2006 - 2011, the LibQxt project. ** See the Qxt AUTHORS file for a list of authors and copyright holders. ** All rights reserved. ** ** Redistribution and use in source and binary forms, with or without ** modification, are permitted provided that the following conditions are met: ** * Redistributions of source code must retain the above copyright ** notice, this list of conditions and the following disclaimer. ** * Redistributions in binary form must reproduce the above copyright ** notice, this list of conditions and the following disclaimer in the ** documentation and/or other materials provided with the distribution. ** * Neither the name of the LibQxt project nor the ** names of its contributors may be used to endorse or promote products ** derived from this software without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ** DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY ** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ** ** *****************************************************************************/ #ifndef QXTWEBCGISERVICE_P_H #define QXTWEBCGISERVICE_P_H #include "qxtwebcgiservice.h" #include #include #include #include #include #ifndef QXT_DOXYGEN_RUN QT_FORWARD_DECLARE_CLASS(QProcess) class QxtWebContent; struct QxtCgiRequestInfo { QxtCgiRequestInfo(); QxtCgiRequestInfo(QxtWebRequestEvent* req); int sessionID, requestID; QHash headers; bool eventSent, terminateSent; QTimer* timeout; }; class QxtWebCgiServicePrivate : public QObject, public QxtPrivate { Q_OBJECT public: QXT_DECLARE_PUBLIC(QxtWebCgiService) QHash requests; QHash processes; QString binary; int timeout; bool timeoutOverride; QSignalMapper timeoutMapper; public Q_SLOTS: void browserReadyRead(QObject* o_content = 0); void processReadyRead(); void processFinished(); void terminateProcess(QObject* o_process); }; #endif // QXT_DOXYGEN_RUN #endif // QXTWEBSERVICEDIRECTORY_P_H