DtkSystemSettings  1.0.3
dtk library for systemsettings.
dloginsession.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include <qobject.h>
8#include <dexpected.h>
9
10#include "dlogintypes.h"
11
12DLOGIN_BEGIN_NAMESPACE
13using DCORE_NAMESPACE::DExpected;
14class DLoginSessionPrivate;
15
16class DLoginSession : public QObject
17{
18 Q_OBJECT
19
20public:
21 virtual ~DLoginSession();
22 Q_PROPERTY(bool active READ active);
23 Q_PROPERTY(bool idleHint READ idleHint WRITE setIdleHint);
24 Q_PROPERTY(bool locked READ locked NOTIFY lockedChanged);
25 Q_PROPERTY(bool remote READ remote);
26 Q_PROPERTY(SessionClass sessionClass READ sessionClass);
27 Q_PROPERTY(QString desktop READ desktop);
28 Q_PROPERTY(QString display READ display);
29 Q_PROPERTY(QString id READ id);
30 Q_PROPERTY(QString name READ name);
31 Q_PROPERTY(QString remoteHost READ remoteHost);
32 Q_PROPERTY(QString remoteUser READ remoteUser);
33 Q_PROPERTY(QString scope READ scope);
34 Q_PROPERTY(QString service READ service);
35 Q_PROPERTY(SessionState state READ state);
36 Q_PROPERTY(QString TTY READ TTY);
37 Q_PROPERTY(SessionType type READ type WRITE setType);
38 Q_PROPERTY(QString seat READ seat);
39 Q_PROPERTY(quint32 user READ user);
40 Q_PROPERTY(quint32 audit READ audit);
41 Q_PROPERTY(quint32 leader READ leader);
42 Q_PROPERTY(quint32 VTNr READ VTNr);
43 Q_PROPERTY(QDateTime idleSinceHint READ idleSinceHint);
44 Q_PROPERTY(quint64 idleSinceHintMonotonic READ idleSinceHintMonotonic);
45 Q_PROPERTY(QDateTime createdTime READ createdTime);
46 Q_PROPERTY(quint64 createdTimeMonotonic READ createdTimeMonotonic);
47
48 bool active() const;
49 bool idleHint() const;
50 bool locked() const;
51 bool remote() const;
53 QString desktop() const;
54 QString display() const;
55 QString id() const;
56 QString name() const;
57 QString remoteHost() const;
58 QString remoteUser() const;
59 QString scope() const;
60 QString service() const;
62 QString TTY() const;
64 QString seat() const;
65 quint32 user() const;
66 quint32 audit() const;
67 quint32 leader() const;
68 quint32 VTNr() const;
69
70 QDateTime idleSinceHint() const;
71 quint64 idleSinceHintMonotonic() const;
72 QDateTime createdTime() const;
73 quint64 createdTimeMonotonic() const;
74
75signals:
76 void lockedChanged(bool locked);
77 void autostartAdded(const QString &fileName);
78 void autostartRemoved(const QString &fileName);
79
80public slots:
81 DExpected<void> activate();
82 DExpected<void> kill(DTK_LOGIN_NAMESPACE::SessionRole who, qint32 signalNumber);
83 DExpected<void> lock();
84 DExpected<void> setIdleHint(bool idle);
85 DExpected<void> setType(DTK_LOGIN_NAMESPACE::SessionType type);
86 DExpected<void> terminate();
87 DExpected<QStringList> autostartList();
88 DExpected<bool> isAutostart(const QString &fileName);
89 DExpected<bool> removeAutostart(const QString &fileName);
90 DExpected<bool> addAutostart(const QString &fileName);
91
92private:
93 friend class DLoginManager;
94 explicit DLoginSession(const QString &path, QObject *parent = nullptr);
95 QScopedPointer<DLoginSessionPrivate> d_ptr;
96 Q_DECLARE_PRIVATE(DLoginSession)
97};
98DLOGIN_END_NAMESPACE
登陆管理类
Definition: dloginmanager.h:35
定义了会话管理的接口
Definition: dloginsession.h:17
quint32 audit() const
返回此session ID的内核审计会话
QString id() const
编码当前session的id
DExpected< void > activate()
对 Manger对象的相应调用 对应Login上的Activate方法, 类似Manger对象的相应调用
void lockedChanged(bool locked)
锁屏切换信号
QString remoteUser() const
远程session的用户名
DExpected< bool > isAutostart(const QString &fileName)
是否自动启动
QString service() const
返回注册使用身份认证的服务
quint64 createdTimeMonotonic() const
以CLOCK_MONOTONIC的形式获取session创建的时间戳
QDateTime idleSinceHint() const
session空闲状态
DExpected< void > kill(DTK_LOGIN_NAMESPACE::SessionRole who, qint32 signalNumber)
和Manager相应对象调用类似 对应Login上的Kill方法, 和Manager对象相应调用类似
QString name() const
用户名称
QString display() const
返回x11显示名字的编码
QString scope() const
当前session的scope名字
bool active() const
读取 active 属性
DExpected< void > lock()
和Manager相应对象调用类似 对应Login上的Kill方法, 和Manager对象相应调用类似
DExpected< bool > removeAutostart(const QString &fileName)
移除自动启动
quint64 idleSinceHintMonotonic() const
session空闲状态
quint32 VTNr() const
当前session的虚拟终端号
SessionClass sessionClass() const
返回session的class类型
QString seat() const
编码这个session所处的位置
DExpected< void > terminate()
和Manger对象的相应工作方式类似 和Manger对象的相应工作方式类似
QString desktop() const
返回当前session正在运行的桌面环境(如果是已知的话)
SessionType type() const
当前session类型的编码 TTY, X11, Mir, Wayland, Unspecified其中一种
bool idleHint() const
读取session的闲置状态
DExpected< void > setType(DTK_LOGIN_NAMESPACE::SessionType type)
更改session的类型
DExpected< QStringList > autostartList()
列出所有自启动应用名
QString TTY() const
如果为文本登陆返回对应内核的tty路径
QString remoteHost() const
远程用户的host名称
quint32 leader() const
注册当前session进程的编码
void autostartRemoved(const QString &fileName)
自启应用被删除信号
SessionState state() const
编码session的状态
bool locked() const
读取session的锁定状态
DExpected< bool > addAutostart(const QString &fileName)
添加自动启动
DExpected< void > setIdleHint(bool idle)
改变session的空闲状态 由session对象调用时候以便更改会话的空闲状态
void autostartAdded(const QString &fileName)
自启应用被添加信号
bool remote() const
判断session是本地的还是远程的
quint32 user() const
编码此会话所属用户的用户 ID
QDateTime createdTime() const
获取session创建时间
SessionClass
会话类别
Definition: dlogintypes.h:51
SessionType
会话类型
Definition: dlogintypes.h:50
SessionState
会话状态
Definition: dlogintypes.h:49