KPty 5.109.0
kptyprocess.h
1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 2007 Oswald Buddenhagen <ossi@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#ifndef KPTYPROCESS_H
9#define KPTYPROCESS_H
10
11#include <KProcess>
12
13#include "kpty_export.h"
14
15#include <memory>
16
17class KPtyDevice;
18
19class KPtyProcessPrivate;
20
59class KPTY_EXPORT KPtyProcess : public KProcess
60{
61 Q_OBJECT
62 Q_DECLARE_PRIVATE(KPtyProcess)
63
64public:
69 NoChannels = 0,
70 StdinChannel = 1,
71 StdoutChannel = 2,
72 StderrChannel = 4,
73 AllOutputChannels = 6,
74 AllChannels = 7,
75 };
76
80 Q_DECLARE_FLAGS(PtyChannels, PtyChannelFlag)
81
82
85 explicit KPtyProcess(QObject *parent = nullptr);
86
94 KPtyProcess(int ptyMasterFd, QObject *parent = nullptr);
95
99 ~KPtyProcess() override;
100
108 void setPtyChannels(PtyChannels channels);
109
115 PtyChannels ptyChannels() const;
116
128 void setUseUtmp(bool value);
129
135 bool isUseUtmp() const;
136
142 KPtyDevice *pty() const;
143
144protected:
148#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
149 void setupChildProcess() override;
150#endif
151
152private:
153 std::unique_ptr<KPtyProcessPrivate> const d_ptr;
154};
155
156Q_DECLARE_OPERATORS_FOR_FLAGS(KPtyProcess::PtyChannels)
157
158#endif
Encapsulates KPty into a QIODevice, so it can be used with Q*Stream, etc.
Definition kptydevice.h:21
This class extends KProcess by support for PTYs (pseudo TTYs).
Definition kptyprocess.h:60
QFlags< PtyChannelFlag > PtyChannels
Stores a combination of #PtyChannelFlag values.
Definition kptyprocess.h:80
PtyChannelFlag
Definition kptyprocess.h:68