File indexing completed on 2024-04-28 05:35:35

0001 #pragma once
0002 
0003 #include <QDBusArgument>
0004 #include <QDBusObjectPath>
0005 
0006 struct SessionInfo {
0007     QString sessionId;
0008     uint userId;
0009     QString userName;
0010     QString seatId;
0011     QDBusObjectPath sessionPath;
0012 };
0013 
0014 typedef QList<SessionInfo> SessionInfoList;
0015 
0016 inline QDBusArgument &operator<<(QDBusArgument &argument, const SessionInfo &sessionInfo)
0017 {
0018     argument.beginStructure();
0019     argument << sessionInfo.sessionId;
0020     argument << sessionInfo.userId;
0021     argument << sessionInfo.userName;
0022     argument << sessionInfo.seatId;
0023     argument << sessionInfo.sessionPath;
0024     argument.endStructure();
0025 
0026     return argument;
0027 }
0028 
0029 inline const QDBusArgument &operator>>(const QDBusArgument &argument, SessionInfo &sessionInfo)
0030 {
0031     argument.beginStructure();
0032     argument >> sessionInfo.sessionId;
0033     argument >> sessionInfo.userId;
0034     argument >> sessionInfo.userName;
0035     argument >> sessionInfo.seatId;
0036     argument >> sessionInfo.sessionPath;
0037     argument.endStructure();
0038 
0039     return argument;
0040 }
0041 
0042 struct UserInfo {
0043     uint userId;
0044     QString name;
0045     QDBusObjectPath path;
0046 };
0047 
0048 typedef QList<UserInfo> UserInfoList;
0049 
0050 inline QDBusArgument &operator<<(QDBusArgument &argument, const UserInfo &userInfo)
0051 {
0052     argument.beginStructure();
0053     argument << userInfo.userId;
0054     argument << userInfo.name;
0055     argument << userInfo.path;
0056     argument.endStructure();
0057 
0058     return argument;
0059 }
0060 
0061 inline const QDBusArgument &operator>>(const QDBusArgument &argument, UserInfo &userInfo)
0062 {
0063     argument.beginStructure();
0064     argument >> userInfo.userId;
0065     argument >> userInfo.name;
0066     argument >> userInfo.path;
0067     argument.endStructure();
0068 
0069     return argument;
0070 }
0071 
0072 struct NamedSeatPath {
0073     QString name;
0074     QDBusObjectPath path;
0075 };
0076 
0077 inline QDBusArgument &operator<<(QDBusArgument &argument, const NamedSeatPath &namedSeat)
0078 {
0079     argument.beginStructure();
0080     argument << namedSeat.name;
0081     argument << namedSeat.path;
0082     argument.endStructure();
0083     return argument;
0084 }
0085 
0086 inline const QDBusArgument &operator>>(const QDBusArgument &argument, NamedSeatPath &namedSeat)
0087 {
0088     argument.beginStructure();
0089     argument >> namedSeat.name;
0090     argument >> namedSeat.path;
0091     argument.endStructure();
0092     return argument;
0093 }
0094 
0095 typedef QList<NamedSeatPath> NamedSeatPathList;
0096 
0097 typedef NamedSeatPath NamedSessionPath;
0098 typedef NamedSeatPathList NamedSessionPathList;
0099 
0100 struct NamedUserPath {
0101     uint userId;
0102     QDBusObjectPath path;
0103 };
0104 
0105 inline QDBusArgument &operator<<(QDBusArgument &argument, const NamedUserPath &namedUser)
0106 {
0107     argument.beginStructure();
0108     argument << namedUser.userId;
0109     argument << namedUser.path;
0110     argument.endStructure();
0111     return argument;
0112 }
0113 
0114 inline const QDBusArgument &operator>>(const QDBusArgument &argument, NamedUserPath &namedUser)
0115 {
0116     argument.beginStructure();
0117     argument >> namedUser.userId;
0118     argument >> namedUser.path;
0119     argument.endStructure();
0120     return argument;
0121 }
0122 
0123 struct Inhibitor {
0124     QString what;
0125     QString who;
0126     QString why;
0127     QString mode;
0128     uint userId;
0129     uint processId;
0130 };
0131 
0132 typedef QList<Inhibitor> InhibitorList;
0133 
0134 inline QDBusArgument &operator<<(QDBusArgument &argument, const Inhibitor &inhibitor)
0135 {
0136     argument.beginStructure();
0137     argument << inhibitor.what;
0138     argument << inhibitor.who;
0139     argument << inhibitor.why;
0140     argument << inhibitor.mode;
0141     argument << inhibitor.userId;
0142     argument << inhibitor.processId;
0143     argument.endStructure();
0144     return argument;
0145 }
0146 
0147 inline const QDBusArgument &operator>>(const QDBusArgument &argument, Inhibitor &inhibitor)
0148 {
0149     argument.beginStructure();
0150     argument >> inhibitor.what;
0151     argument >> inhibitor.who;
0152     argument >> inhibitor.why;
0153     argument >> inhibitor.mode;
0154     argument >> inhibitor.userId;
0155     argument >> inhibitor.processId;
0156     argument.endStructure();
0157     return argument;
0158 }