Plasma-workspace

loginddbustypes.h
1// SPDX-FileCopyrightText: 2019 David Edmundson <kde@davidedmundson.co.uk>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#pragma once
5
6#include <QDBusArgument>
7#include <QDBusObjectPath>
8
9struct SessionInfo {
10 QString sessionId;
11 uint userId;
12 QString userName;
13 QString seatId;
14 QDBusObjectPath sessionPath;
15};
16
17typedef QList<SessionInfo> SessionInfoList;
18
19inline QDBusArgument &operator<<(QDBusArgument &argument, const SessionInfo &sessionInfo)
20{
21 argument.beginStructure();
22 argument << sessionInfo.sessionId;
23 argument << sessionInfo.userId;
24 argument << sessionInfo.userName;
25 argument << sessionInfo.seatId;
26 argument << sessionInfo.sessionPath;
27 argument.endStructure();
28
29 return argument;
30}
31
32inline const QDBusArgument &operator>>(const QDBusArgument &argument, SessionInfo &sessionInfo)
33{
34 argument.beginStructure();
35 argument >> sessionInfo.sessionId;
36 argument >> sessionInfo.userId;
37 argument >> sessionInfo.userName;
38 argument >> sessionInfo.seatId;
39 argument >> sessionInfo.sessionPath;
40 argument.endStructure();
41
42 return argument;
43}
44
45struct UserInfo {
46 uint userId;
47 QString name;
48 QDBusObjectPath path;
49};
50
51typedef QList<UserInfo> UserInfoList;
52
53inline QDBusArgument &operator<<(QDBusArgument &argument, const UserInfo &userInfo)
54{
55 argument.beginStructure();
56 argument << userInfo.userId;
57 argument << userInfo.name;
58 argument << userInfo.path;
59 argument.endStructure();
60
61 return argument;
62}
63
64inline const QDBusArgument &operator>>(const QDBusArgument &argument, UserInfo &userInfo)
65{
66 argument.beginStructure();
67 argument >> userInfo.userId;
68 argument >> userInfo.name;
69 argument >> userInfo.path;
70 argument.endStructure();
71
72 return argument;
73}
74
75struct NamedSeatPath {
76 QString name;
77 QDBusObjectPath path;
78};
79
80inline QDBusArgument &operator<<(QDBusArgument &argument, const NamedSeatPath &namedSeat)
81{
82 argument.beginStructure();
83 argument << namedSeat.name;
84 argument << namedSeat.path;
85 argument.endStructure();
86 return argument;
87}
88
89inline const QDBusArgument &operator>>(const QDBusArgument &argument, NamedSeatPath &namedSeat)
90{
91 argument.beginStructure();
92 argument >> namedSeat.name;
93 argument >> namedSeat.path;
94 argument.endStructure();
95 return argument;
96}
97
98typedef QList<NamedSeatPath> NamedSeatPathList;
99
100typedef NamedSeatPath NamedSessionPath;
101typedef NamedSeatPathList NamedSessionPathList;
102
103struct NamedUserPath {
104 uint userId;
105 QDBusObjectPath path;
106};
107
108inline QDBusArgument &operator<<(QDBusArgument &argument, const NamedUserPath &namedUser)
109{
110 argument.beginStructure();
111 argument << namedUser.userId;
112 argument << namedUser.path;
113 argument.endStructure();
114 return argument;
115}
116
117inline const QDBusArgument &operator>>(const QDBusArgument &argument, NamedUserPath &namedUser)
118{
119 argument.beginStructure();
120 argument >> namedUser.userId;
121 argument >> namedUser.path;
122 argument.endStructure();
123 return argument;
124}
125
126struct Inhibitor {
127 QString what;
128 QString who;
129 QString why;
130 QString mode;
131 uint userId;
132 uint processId;
133};
134
135typedef QList<Inhibitor> InhibitorList;
136
137inline QDBusArgument &operator<<(QDBusArgument &argument, const Inhibitor &inhibitor)
138{
139 argument.beginStructure();
140 argument << inhibitor.what;
141 argument << inhibitor.who;
142 argument << inhibitor.why;
143 argument << inhibitor.mode;
144 argument << inhibitor.userId;
145 argument << inhibitor.processId;
146 argument.endStructure();
147 return argument;
148}
149
150inline const QDBusArgument &operator>>(const QDBusArgument &argument, Inhibitor &inhibitor)
151{
152 argument.beginStructure();
153 argument >> inhibitor.what;
154 argument >> inhibitor.who;
155 argument >> inhibitor.why;
156 argument >> inhibitor.mode;
157 argument >> inhibitor.userId;
158 argument >> inhibitor.processId;
159 argument.endStructure();
160 return argument;
161}
void beginStructure()
void endStructure()
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 12:02:58 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.