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:"; const char descriptionKey[] = "Description:";
} // namespace } // namespace
using namespace Android; namespace Android::Internal {
using namespace Android::Internal;
using MarkerTagsType = std::map<SdkManagerOutputParser::MarkerTag, const char *>; using MarkerTagsType = std::map<SdkManagerOutputParser::MarkerTag, const char *>;
Q_GLOBAL_STATIC_WITH_ARGS(MarkerTagsType, markerTags, 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::NdkMarker, Constants::ndkPackageName},
{SdkManagerOutputParser::MarkerTag::ExtrasMarker, "extras"}})); {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) void SdkManagerOutputParser::parsePackageListing(const QString &output)
{ {
QStringList packageData; QStringList packageData;
@@ -238,10 +248,8 @@ static bool valueForKey(QString key, const QString &line, QString *value = nullp
return false; return false;
} }
bool SdkManagerOutputParser::parseAbstractData(SdkManagerOutputParser::GenericPackageData &output, static bool parseAbstractData(GenericPackageData &output, const QStringList &input, int minParts,
const QStringList &input, int minParts, const QString &logStrTag, const QStringList &extraKeys = {})
const QString &logStrTag,
const QStringList &extraKeys) const
{ {
if (input.isEmpty()) { if (input.isEmpty()) {
qCDebug(sdkManagerLog) << logStrTag + ": Empty input"; qCDebug(sdkManagerLog) << logStrTag + ": Empty input";
@@ -448,3 +456,5 @@ SdkManagerOutputParser::MarkerTag SdkManagerOutputParser::parseMarkers(const QSt
return None; return None;
} }
} // namespace Android::Internal

View File

@@ -4,12 +4,7 @@
#include "androidsdkpackage.h" #include "androidsdkpackage.h"
#include <utils/filepath.h> namespace Android::Internal {
#include <QVersionNumber>
namespace Android {
namespace Internal {
/*! /*!
\class SdkManagerOutputParser \class SdkManagerOutputParser
\brief The SdkManagerOutputParser class is a helper class to parse the output of the \c sdkmanager \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 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: public:
enum MarkerTag enum MarkerTag
{ {
@@ -57,9 +41,6 @@ public:
private: private:
void compilePackageAssociations(); void compilePackageAssociations();
void parsePackageData(MarkerTag packageMarker, const QStringList &data); 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; AndroidSdkPackage *parsePlatform(const QStringList &data) const;
QPair<SystemImage *, int> parseSystemImage(const QStringList &data) const; QPair<SystemImage *, int> parseSystemImage(const QStringList &data) const;
BuildTools *parseBuildToolsPackage(const QStringList &data) const; BuildTools *parseBuildToolsPackage(const QStringList &data) const;
@@ -75,5 +56,5 @@ private:
QHash<AndroidSdkPackage *, int> m_systemImages; QHash<AndroidSdkPackage *, int> m_systemImages;
friend class SdkManagerOutputParserTest; friend class SdkManagerOutputParserTest;
}; };
} // namespace Internal
} // namespace Android } // namespace Android::Internal