aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux/linuxprocessinterface.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/remotelinux/linuxprocessinterface.h')
-rw-r--r--src/plugins/remotelinux/linuxprocessinterface.h33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/plugins/remotelinux/linuxprocessinterface.h b/src/plugins/remotelinux/linuxprocessinterface.h
index 949c5934200..e2a8e82fc8c 100644
--- a/src/plugins/remotelinux/linuxprocessinterface.h
+++ b/src/plugins/remotelinux/linuxprocessinterface.h
@@ -5,32 +5,35 @@
#include "remotelinux_export.h"
-#include "sshprocessinterface.h"
+#include "linuxdevice.h"
+
+#include <utils/processinterface.h>
namespace RemoteLinux {
-class LinuxDevice;
class SshProcessInterfacePrivate;
-class REMOTELINUX_EXPORT LinuxProcessInterface : public SshProcessInterface
+class REMOTELINUX_EXPORT SshProcessInterface : public Utils::ProcessInterface
{
public:
- LinuxProcessInterface(const LinuxDevice *linuxDevice);
- ~LinuxProcessInterface();
+ explicit SshProcessInterface(const ProjectExplorer::IDevice::ConstPtr &device);
+ ~SshProcessInterface();
-private:
- void handleSendControlSignal(Utils::ControlSignal controlSignal) override;
+protected:
+ void emitStarted(qint64 processId);
+ void killIfRunning();
+ qint64 processId() const;
+ bool runInShell(const Utils::CommandLine &command, const QByteArray &data = {});
- void handleStarted(qint64 processId) final;
- void handleDone(const Utils::ProcessResultData &resultData) final;
- void handleReadyReadStandardOutput(const QByteArray &outputData) final;
- void handleReadyReadStandardError(const QByteArray &errorData) final;
+private:
+ virtual void handleSendControlSignal(Utils::ControlSignal controlSignal);
- QString fullCommandLine(const Utils::CommandLine &commandLine) const final;
+ void start() final;
+ qint64 write(const QByteArray &data) final;
+ void sendControlSignal(Utils::ControlSignal controlSignal) final;
- QByteArray m_output;
- QByteArray m_error;
- bool m_pidParsed = false;
+ friend class SshProcessInterfacePrivate;
+ SshProcessInterfacePrivate *d = nullptr;
};
} // namespace RemoteLinux