Files
amnezia-client/client/core/ipcclient.h
T

43 lines
1.2 KiB
C++
Raw Normal View History

2021-02-02 01:47:40 +03:00
#ifndef IPCCLIENT_H
#define IPCCLIENT_H
2021-02-03 15:42:36 +03:00
#include <QLocalSocket>
2021-02-02 01:47:40 +03:00
#include <QObject>
#include "ipc.h"
#include "rep_ipcinterface_replica.h"
class IpcClient : public QObject
{
Q_OBJECT
public:
static IpcClient &Instance();
2021-02-18 15:00:41 +03:00
static bool init();
static QSharedPointer<IpcInterfaceReplica> Interface() { return Instance().m_ipcClient; }
static QSharedPointer<IpcProcessInterfaceReplica> CreatePrivilegedProcess();
2021-02-02 01:47:40 +03:00
signals:
private:
explicit IpcClient(QObject *parent = nullptr);
2021-02-18 15:00:41 +03:00
QRemoteObjectNode m_ClientNode;
2021-02-02 01:47:40 +03:00
QSharedPointer<IpcInterfaceReplica> m_ipcClient;
2021-02-03 15:42:36 +03:00
QSharedPointer<QLocalSocket> m_localSocket;
2021-02-02 01:47:40 +03:00
2021-02-18 15:00:41 +03:00
struct ProcessDescriptor {
ProcessDescriptor () {
replicaNode = QSharedPointer<QRemoteObjectNode>(new QRemoteObjectNode());
ipcProcess = QSharedPointer<IpcProcessInterfaceReplica>();
localSocket = QSharedPointer<QLocalSocket>();
}
QSharedPointer<IpcProcessInterfaceReplica> ipcProcess;
QSharedPointer<QRemoteObjectNode> replicaNode;
QSharedPointer<QLocalSocket> localSocket;
};
QMap<int, QSharedPointer<ProcessDescriptor>> m_processNodes;
2021-02-02 01:47:40 +03:00
};
#endif // IPCCLIENT_H