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

50 lines
1.3 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"
2021-09-15 08:03:28 -07:00
#include "rep_ipc_interface_replica.h"
2024-09-20 04:12:22 -07:00
#include "rep_ipc_process_tun2socks_replica.h"
2021-09-15 08:03:28 -07:00
2021-11-19 19:02:39 +03:00
#include "privileged_process.h"
2021-02-02 01:47:40 +03:00
class IpcClient : public QObject
{
Q_OBJECT
public:
2021-10-26 12:59:20 +03:00
explicit IpcClient(QObject *parent = nullptr);
static IpcClient *Instance();
static QSharedPointer<IpcInterfaceReplica> Interface();
2024-09-20 04:12:22 -07:00
static QSharedPointer<IpcProcessTun2SocksReplica> InterfaceTun2Socks();
2021-11-19 19:02:39 +03:00
static QSharedPointer<PrivilegedProcess> CreatePrivilegedProcess();
2021-02-02 01:47:40 +03:00
2021-10-26 12:59:20 +03:00
bool isSocketConnected() const;
2021-02-02 01:47:40 +03:00
signals:
private:
bool establishConnection();
2021-02-02 01:47:40 +03:00
QLocalSocket m_localSocket;
2021-02-18 15:00:41 +03:00
QRemoteObjectNode m_ClientNode;
2021-02-02 01:47:40 +03:00
QSharedPointer<IpcInterfaceReplica> m_ipcClient;
2024-09-20 04:12:22 -07:00
QSharedPointer<IpcProcessTun2SocksReplica> m_Tun2SocksClient;
2021-02-02 01:47:40 +03:00
2021-02-18 15:00:41 +03:00
struct ProcessDescriptor {
ProcessDescriptor () {
replicaNode = QSharedPointer<QRemoteObjectNode>(new QRemoteObjectNode());
2021-11-19 19:02:39 +03:00
ipcProcess = QSharedPointer<PrivilegedProcess>();
2021-02-18 15:00:41 +03:00
localSocket = QSharedPointer<QLocalSocket>();
}
2021-11-19 19:02:39 +03:00
QSharedPointer<PrivilegedProcess> ipcProcess;
2021-02-18 15:00:41 +03:00
QSharedPointer<QRemoteObjectNode> replicaNode;
QSharedPointer<QLocalSocket> localSocket;
};
2021-10-26 12:59:20 +03:00
bool m_isSocketConnected {false};
2021-02-02 01:47:40 +03:00
};
#endif // IPCCLIENT_H