SdkManagerOutputParser: Hide some impl details in cpp

Change-Id: Ibeaee715f5b2d5f35ef68fe5c00f7982dea437f7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Jarek Kobus
2024-01-31 21:15:49 +01:00
parent d26217e50c
commit 3433ee2d4d
2 changed files with 19 additions and 28 deletions

View File

@@ -19,8 +19,7 @@ const char revisionKey[] = "Version:";
const char descriptionKey[] = "Description:";
} // namespace
using namespace Android;
using namespace Android::Internal;
namespace Android::Internal {
using MarkerTagsType = std::map<SdkManagerOutputParser::MarkerTag, const char *>;
Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags,
@@ -37,6 +36,17 @@ Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags,
{SdkManagerOutputParser::MarkerTag::NdkMarker, Constants::ndkPackageName},
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}}));
class GenericPackageData
{
public:
bool isValid() const { return !revision.isNull() && !description.isNull(); }
QStringList headerParts;
QVersionNumber revision;
QString description;
Utils::FilePath installedLocation;
QMap<QString, QString> extraData;
};
void SdkManagerOutputParser::parsePackageListing(const QString &output)
{
QStringList packageData;
@@ -238,10 +248,8 @@ static bool valueForKey(QString key, const QString &line, QString *value = nullp
return false;
}
bool SdkManagerOutputParser::parseAbstractData(SdkManagerOutputParser::GenericPackageData &output,
const QStringList &input, int minParts,
const QString &logStrTag,
const QStringList &extraKeys) const
static bool parseAbstractData(GenericPackageData &output, const QStringList &input, int minParts,
const QString &logStrTag, const QStringList &extraKeys = {})
{
if (input.isEmpty()) {
qCDebug(sdkManagerLog) << logStrTag + ": Empty input";
@@ -448,3 +456,5 @@ SdkManagerOutputParser::MarkerTag SdkManagerOutputParser::parseMarkers(const QSt
return None;
}
} // namespace Android::Internal

View File

@@ -4,12 +4,7 @@
#include "androidsdkpackage.h"
#include <utils/filepath.h>
#include <QVersionNumber>
namespace Android {
namespace Internal {
namespace Android::Internal {
/*!
\class SdkManagerOutputParser
\brief The SdkManagerOutputParser class is a helper class to parse the output of the \c sdkmanager
@@ -17,17 +12,6 @@ namespace Internal {
*/
class SdkManagerOutputParser
{
class GenericPackageData
{
public:
bool isValid() const { return !revision.isNull() && !description.isNull(); }
QStringList headerParts;
QVersionNumber revision;
QString description;
Utils::FilePath installedLocation;
QMap<QString, QString> extraData;
};
public:
enum MarkerTag
{
@@ -57,9 +41,6 @@ public:
private:
void compilePackageAssociations();
void parsePackageData(MarkerTag packageMarker, const QStringList &data);
bool parseAbstractData(GenericPackageData &output, const QStringList &input, int minParts,
const QString &logStrTag,
const QStringList &extraKeys = QStringList()) const;
AndroidSdkPackage *parsePlatform(const QStringList &data) const;
QPair<SystemImage *, int> parseSystemImage(const QStringList &data) const;
BuildTools *parseBuildToolsPackage(const QStringList &data) const;
@@ -75,5 +56,5 @@ private:
QHash<AndroidSdkPackage *, int> m_systemImages;
friend class SdkManagerOutputParserTest;
};
} // namespace Internal
} // namespace Android
} // namespace Android::Internal