File indexing completed on 2024-05-12 05:36:53
0001 /* 0002 * SPDX-FileCopyrightText: 2018-2019 Daniel Vrátil <dvratil@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "enum.h" 0008 #include "libkbolt_debug.h" 0009 0010 #include <QList> 0011 #include <QStringList> 0012 #include <QStringView> 0013 0014 Bolt::Status Bolt::statusFromString(const QString &str) 0015 { 0016 if (str == QLatin1String("unknown")) { 0017 return Bolt::Status::Unknown; 0018 } else if (str == QLatin1String("disconnected")) { 0019 return Bolt::Status::Disconnected; 0020 } else if (str == QLatin1String("connecting")) { 0021 return Bolt::Status::Connecting; 0022 } else if (str == QLatin1String("connected")) { 0023 return Bolt::Status::Connected; 0024 } else if (str == QLatin1String("authorizing")) { 0025 return Bolt::Status::Authorizing; 0026 } else if (str == QLatin1String("authorized")) { 0027 return Bolt::Status::Authorized; 0028 } else if (str == QLatin1String("auth-error")) { 0029 return Bolt::Status::AuthError; 0030 } else { 0031 qCCritical(log_libkbolt, "Unknown Status enum value '%s'", qUtf8Printable(str)); 0032 Q_ASSERT(false); 0033 return Bolt::Status::Unknown; 0034 } 0035 } 0036 0037 QString Bolt::statusToString(Bolt::Status status) 0038 { 0039 switch (status) { 0040 case Bolt::Status::Unknown: 0041 return QStringLiteral("unknown"); 0042 case Bolt::Status::Disconnected: 0043 return QStringLiteral("disconnected"); 0044 case Bolt::Status::Connecting: 0045 return QStringLiteral("connecting"); 0046 case Bolt::Status::Connected: 0047 return QStringLiteral("connected"); 0048 case Bolt::Status::Authorizing: 0049 return QStringLiteral("authorizing"); 0050 case Bolt::Status::Authorized: 0051 return QStringLiteral("authorized"); 0052 case Bolt::Status::AuthError: 0053 return QStringLiteral("auth-error"); 0054 } 0055 Q_UNREACHABLE(); 0056 return {}; 0057 } 0058 0059 Bolt::AuthFlags Bolt::authFlagsFromString(const QString &str) 0060 { 0061 const auto splitRef = str.split(QStringLiteral("|")); 0062 Bolt::AuthFlags outFlags = Bolt::Auth::None; 0063 for (const auto &flag : splitRef) { 0064 const auto f = flag.trimmed(); 0065 if (f == QLatin1String("none")) { 0066 outFlags |= Bolt::Auth::None; 0067 } else if (f == QLatin1String("nopcie")) { 0068 outFlags |= Bolt::Auth::NoPCIE; 0069 } else if (f == QLatin1String("secure")) { 0070 outFlags |= Bolt::Auth::Secure; 0071 } else if (f == QLatin1String("nokey")) { 0072 outFlags |= Bolt::Auth::NoKey; 0073 } else if (f == QLatin1String("boot")) { 0074 outFlags |= Bolt::Auth::Boot; 0075 } else { 0076 qCCritical(log_libkbolt, "Unknown AuthFlags enum value '%s'", qUtf8Printable(str)); 0077 Q_ASSERT(false); 0078 return Bolt::Auth::None; 0079 } 0080 } 0081 return outFlags; 0082 } 0083 0084 QString Bolt::authFlagsToString(AuthFlags flags) 0085 { 0086 QStringList str; 0087 if (flags == AuthFlags(Bolt::Auth::None)) { 0088 return QStringLiteral("none"); 0089 } 0090 if (flags & Bolt::Auth::NoPCIE) { 0091 str.push_back(QStringLiteral("nopcie")); 0092 } 0093 if (flags & Bolt::Auth::Secure) { 0094 str.push_back(QStringLiteral("secure")); 0095 } 0096 if (flags & Bolt::Auth::NoKey) { 0097 str.push_back(QStringLiteral("nokey")); 0098 } 0099 if (flags & Bolt::Auth::Boot) { 0100 str.push_back(QStringLiteral("boot")); 0101 } 0102 0103 return str.join(QStringLiteral(" | ")); 0104 } 0105 0106 Bolt::KeyState Bolt::keyStateFromString(const QString &str) 0107 { 0108 if (str == QLatin1String("unknown")) { 0109 return Bolt::KeyState::Unknown; 0110 } else if (str == QLatin1String("missing")) { 0111 return Bolt::KeyState::Missing; 0112 } else if (str == QLatin1String("have")) { 0113 return Bolt::KeyState::Have; 0114 } else if (str == QLatin1String("new")) { 0115 return Bolt::KeyState::New; 0116 } else { 0117 qCCritical(log_libkbolt, "Unknown KeyState enum value '%s'", qUtf8Printable(str)); 0118 Q_ASSERT(false); 0119 return Bolt::KeyState::Unknown; 0120 } 0121 } 0122 0123 Bolt::Policy Bolt::policyFromString(const QString &str) 0124 { 0125 if (str == QLatin1String("unknown")) { 0126 return Bolt::Policy::Unknown; 0127 } else if (str == QLatin1String("default")) { 0128 return Bolt::Policy::Default; 0129 } else if (str == QLatin1String("manual")) { 0130 return Bolt::Policy::Manual; 0131 } else if (str == QLatin1String("auto")) { 0132 return Bolt::Policy::Auto; 0133 } else { 0134 qCCritical(log_libkbolt, "Unknown Policy enum value '%s'", qUtf8Printable(str)); 0135 Q_ASSERT(false); 0136 return Bolt::Policy::Unknown; 0137 } 0138 } 0139 0140 QString Bolt::policyToString(Bolt::Policy policy) 0141 { 0142 switch (policy) { 0143 case Policy::Unknown: 0144 return QStringLiteral("unknown"); 0145 case Policy::Auto: 0146 return QStringLiteral("auto"); 0147 case Policy::Default: 0148 return QStringLiteral("default"); 0149 case Policy::Manual: 0150 return QStringLiteral("manual"); 0151 } 0152 0153 Q_UNREACHABLE(); 0154 return {}; 0155 } 0156 0157 Bolt::Type Bolt::typeFromString(const QString &str) 0158 { 0159 if (str == QLatin1String("unknown")) { 0160 return Bolt::Type::Unknown; 0161 } else if (str == QLatin1String("host")) { 0162 return Bolt::Type::Host; 0163 } else if (str == QLatin1String("peripheral")) { 0164 return Bolt::Type::Peripheral; 0165 } else { 0166 qCCritical(log_libkbolt, "Unknown Type enum value '%s'", qUtf8Printable(str)); 0167 Q_ASSERT(false); 0168 return Bolt::Type::Unknown; 0169 } 0170 } 0171 0172 Bolt::AuthMode Bolt::authModeFromString(const QString &str) 0173 { 0174 if (str == QLatin1String("disabled")) { 0175 return Bolt::AuthMode::Disabled; 0176 } else if (str == QLatin1String("enabled")) { 0177 return Bolt::AuthMode::Enabled; 0178 } else { 0179 qCCritical(log_libkbolt, "Unknown AuthMode enum value '%s'", qUtf8Printable(str)); 0180 Q_ASSERT(false); 0181 return Bolt::AuthMode::Disabled; 0182 } 0183 } 0184 0185 QString Bolt::authModeToString(Bolt::AuthMode authMode) 0186 { 0187 switch (authMode) { 0188 case Bolt::AuthMode::Enabled: 0189 return QStringLiteral("enabled"); 0190 case Bolt::AuthMode::Disabled: 0191 return QStringLiteral("disabled"); 0192 } 0193 0194 Q_UNREACHABLE(); 0195 return {}; 0196 } 0197 0198 Bolt::Security Bolt::securityFromString(const QString &str) 0199 { 0200 if (str == QLatin1String("unknown")) { 0201 return Bolt::Security::Unknown; 0202 } else if (str == QLatin1String("none")) { 0203 return Bolt::Security::None; 0204 } else if (str == QLatin1String("dponly")) { 0205 return Bolt::Security::DPOnly; 0206 } else if (str == QLatin1String("user")) { 0207 return Bolt::Security::User; 0208 } else if (str == QLatin1String("secure")) { 0209 return Bolt::Security::Secure; 0210 } else if (str == QLatin1String("usbonly")) { 0211 return Bolt::Security::USBOnly; 0212 } else { 0213 qCCritical(log_libkbolt, "Unknown Security enum value '%s'", qUtf8Printable(str)); 0214 Q_ASSERT(false); 0215 return Bolt::Security::Unknown; 0216 } 0217 } 0218 0219 #include "moc_enum.cpp"