File indexing completed on 2024-04-28 16:51:32

0001 /*
0002     SPDX-FileCopyrightText: 2017 Kai Uwe Broulik <kde@privat.broulik.de>
0003     SPDX-FileCopyrightText: 2017 David Edmundson <davidedmundson@kde.org>
0004 
0005     SPDX-License-Identifier: MIT
0006 */
0007 
0008 #pragma once
0009 
0010 #include <QFile>
0011 #include <QJsonObject>
0012 #include <QObject>
0013 
0014 /*
0015  * This class is responsible for managing all stdout/stdin connections emitting JSON
0016  */
0017 class Connection : public QObject
0018 {
0019     Q_OBJECT
0020 public:
0021     static Connection *self();
0022     void sendData(const QJsonObject &data);
0023 
0024 Q_SIGNALS:
0025     void dataReceived(const QJsonObject &data);
0026 
0027 private:
0028     Connection();
0029     ~Connection() override = default;
0030     void readData();
0031     QFile m_stdOut;
0032     QFile m_stdIn;
0033 };