File indexing completed on 2024-04-28 03:51:50
0001 /* 0002 SPDX-FileCopyrightText: 1999 Carsten Pfeiffer <pfeiffer@kde.org> 0003 SPDX-FileCopyrightText: 1999-2001 David Faure <faure@kde.org> 0004 SPDX-FileCopyrightText: 2005 Till Adam <adam@kde.org> 0005 SPDX-FileCopyrightText: 2014 Alex Richardson <arichardson@kde.org> 0006 SPDX-FileCopyrightText: 2018 Friedrich W. H. Kossebau <kossebau@kde.org> 0007 SPDX-FileCopyrightText: 2020 Stefan BrĂ¼ns <bruns@kde.org> 0008 0009 SPDX-License-Identifier: LGPL-2.0-or-later 0010 */ 0011 0012 #ifndef BALOO_KIO_COMMON_USERGROUPCACHE_H_ 0013 #define BALOO_KIO_COMMON_USERGROUPCACHE_H_ 0014 0015 #include <KUser> 0016 0017 #include <QHash> 0018 #include <QString> 0019 0020 namespace Baloo { 0021 0022 class UserGroupCache 0023 { 0024 public: 0025 QString getUserName(const KUserId &uid) const; 0026 QString getGroupName(const KGroupId &gid) const; 0027 0028 private: 0029 mutable QHash<KUserId, QString> mUsercache; 0030 mutable QHash<KGroupId, QString> mGroupcache; 0031 }; 0032 0033 inline QString 0034 UserGroupCache::getUserName(const KUserId &uid) const 0035 { 0036 if (Q_UNLIKELY(!uid.isValid())) { 0037 return QString(); 0038 } 0039 if (!mUsercache.contains(uid)) { 0040 KUser user(uid); 0041 QString name = user.loginName(); 0042 if (name.isEmpty()) { 0043 name = uid.toString(); 0044 } 0045 mUsercache.insert(uid, name); 0046 return name; 0047 } 0048 return mUsercache[uid]; 0049 } 0050 0051 inline QString 0052 UserGroupCache::getGroupName(const KGroupId &gid) const 0053 { 0054 if (Q_UNLIKELY(!gid.isValid())) { 0055 return QString(); 0056 } 0057 if (!mGroupcache.contains(gid)) { 0058 KUserGroup group(gid); 0059 QString name = group.name(); 0060 if (name.isEmpty()) { 0061 name = gid.toString(); 0062 } 0063 mGroupcache.insert(gid, name); 0064 return name; 0065 } 0066 return mGroupcache[gid]; 0067 } 0068 0069 } 0070 #endif