File indexing completed on 2024-05-12 05:22:15
0001 /* 0002 * This file is part of LibKGAPI library 0003 * 0004 * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #pragma once 0010 0011 #include "job.h" 0012 0013 #include <QNetworkReply> 0014 #include <QQueue> 0015 #include <QScopedPointer> 0016 #include <QTimer> 0017 0018 class QFile; 0019 0020 namespace KGAPI2 0021 { 0022 0023 struct Request { 0024 QNetworkRequest request; 0025 QByteArray rawData; 0026 QString contentType; 0027 }; 0028 0029 class Q_DECL_HIDDEN FileLogger 0030 { 0031 public: 0032 ~FileLogger(); 0033 0034 static FileLogger *self(); 0035 0036 void logRequest(const QNetworkRequest &request, const QByteArray &rawData); 0037 void logReply(const QNetworkReply *reply, const QByteArray &rawData); 0038 0039 private: 0040 FileLogger(); 0041 QScopedPointer<QFile> mFile; 0042 0043 static FileLogger *sInstance; 0044 }; 0045 0046 class Q_DECL_HIDDEN Job::Private 0047 { 0048 public: 0049 Private(Job *parent); 0050 void init(); 0051 0052 QString parseErrorMessage(const QByteArray &json); 0053 0054 void _k_doStart(); 0055 void _k_doEmitFinished(); 0056 void _k_replyReceived(QNetworkReply *reply); 0057 void _k_dispatchTimeout(); 0058 0059 bool isRunning; 0060 0061 Error error; 0062 QString errorString; 0063 0064 AccountPtr account; 0065 QNetworkAccessManager *accessManager; 0066 QQueue<Request> requestQueue; 0067 QTimer *dispatchTimer; 0068 int maxTimeout; 0069 bool prettyPrint; 0070 QStringList fields; 0071 0072 Request currentRequest; 0073 0074 private: 0075 Job *const q; 0076 }; 0077 0078 }