File indexing completed on 2024-04-28 16:54:32
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 } 0159 0160 Q_DECLARE_METATYPE(SessionInfo); 0161 Q_DECLARE_METATYPE(QList<SessionInfo>); 0162 0163 Q_DECLARE_METATYPE(UserInfo); 0164 Q_DECLARE_METATYPE(QList<UserInfo>); 0165 0166 Q_DECLARE_METATYPE(NamedSeatPath); 0167 Q_DECLARE_METATYPE(QList<NamedSeatPath>); 0168 0169 Q_DECLARE_METATYPE(NamedUserPath); 0170 0171 Q_DECLARE_METATYPE(Inhibitor); 0172 Q_DECLARE_METATYPE(QList<Inhibitor>);