File indexing completed on 2024-04-14 04:46:58

0001 /*
0002     SPDX-FileCopyrightText: 2021 Vincent Pinon <vpinon@kde.org>
0003     SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005 
0006 #pragma once
0007 
0008 #include <QJsonObject>
0009 #include <QLocalServer>
0010 #include <QLocalSocket>
0011 #include <QPointer>
0012 #include <QProcess>
0013 
0014 class RenderServer : public QObject
0015 {
0016     Q_OBJECT
0017 public:
0018     RenderServer(QObject *parent);
0019     ~RenderServer() override;
0020 
0021 Q_SIGNALS:
0022     void setRenderingProgress(const QString &url, int progress, int frame);
0023     void setRenderingFinished(const QString &url, int status, const QString &error);
0024 
0025 public Q_SLOTS:
0026     void abortJob(const QString &job);
0027 
0028 private Q_SLOTS:
0029     void jobConnected();
0030     void handleJson(const QJsonObject &json, QLocalSocket *socket);
0031     void jobSent();
0032 
0033 private:
0034     QLocalServer m_server;
0035     QHash<QString, QLocalSocket*> m_jobSocket;
0036 };