8 using namespace swift::misc::network;
12 namespace swift::misc::db
14 CArtifactList::CArtifactList() {}
34 if (artifact.
matchesName(name, cs)) {
return artifact; }
60 bool findMoreStableDistribution)
const
65 if (!artifact.
isWithDistribution(distribution, findMoreStableDistribution)) {
continue; }
84 bool findMoreStableDistributions)
const
96 const QVersionNumber v = QVersionNumber::fromString(version);
120 return order == Qt::AscendingOrder ? av < bv : bv < av;
152 for (
const CArtifact &artifact : std::as_const(copy))
154 if (artifact.hasName()) { names.push_back(artifact.getName()); }
163 QStringList versions;
164 for (
const CArtifact &artifact : std::as_const(copy))
166 if (artifact.hasVersion()) { versions.push_back(artifact.getVersion()); }
186 for (
const QJsonValue &value : array)
iterator insert(const_iterator hint, const T &value)
For compatibility with std::inserter.
static QString humanReadableFileSize(qint64 size)
Human readable (GB, MB, ..) file size.
auto findFirstByOrDefault(Predicate p, const Value &def) const
Return a copy of the first element for which a given predicate returns true, or a default value if th...
bool contains(const T &object) const
Return true if there is an element equal to given object. Uses the most efficient implementation avai...
size_type size() const
Returns number of elements in the sequence.
const_reference frontOrDefault() const
Access the first element, or a default-initialized value if the sequence is empty.
CSequence findBy(Predicate p) const
Return a copy containing only those elements for which a given predicate returns true.
void push_back(const T &value)
Appends an element at the end of the sequence.
reference back()
Access the last element.
void sort(Predicate p)
In-place sort by a given comparator predicate.
Artifacts ("our software" products)
bool hasUnrestrictedDistribution() const
Has unrestricted distribution.
bool isWithDistribution(const CDistribution &distribution, bool acceptMoreStableDistributions) const
Is distributed with given distribution?
bool matchesAnyPlatform(const CPlatform &platform) const
Matches any platform.
network::CRemoteFile asRemoteFile() const
Turn into remote file.
int getFileSize() const
File size.
const CPlatform & getPlatform() const
OS.
static CArtifact fromDatabaseJson(const QJsonObject &json, const QString &prefix={})
Object from database JSON format.
bool matchesName(const QString &name, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Matching name?
const CDistributionList & getDistributions() const
Related distributions.
ArtifactType getType() const
Get type.
void sortByVersion(Qt::SortOrder order=Qt::AscendingOrder)
Sort by version.
qint64 getTotalFileSize() const
Size of all artifacts.
CArtifact findFirstByMatchingNameOrDefault(const QString &name, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
FInd first by name.
CArtifactList findByType(const CArtifact::ArtifactType type) const
Find by type.
CArtifact findFirstByMatchingPlatformOrDefault(const CPlatform &platform) const
Find first by platform.
CPlatformSet getPlatforms() const
All platforms for all channels.
CArtifact findFirstByVersionOrDefault(const QVersionNumber &version) const
Find by version.
CArtifactList()
Empty constructor.
CArtifactList findByDistribution(const CDistribution &distribution, bool findMoreStableDistribution=false) const
Find by distribution.
CArtifactList findByDistributionAndPlatform(const CDistribution &distribution, const CPlatform &platform, bool findMoreStableDistributions=false) const
Find by distribution and platform.
QVersionNumber getLatestQVersion() const
Latest version.
CArtifact getLatestArtifactOrDefault() const
Latest (newest) artifact.
CArtifactList findMatchingForCurrentPlatform() const
Find for my platform.
QStringList getSortedNames() const
All unique names.
CDistributionList getDistributions() const
All distributions related to these artifacts.
CArtifactList findWithUnrestrictedDistributions() const
Find artifacts with public (unrestricted) distributions.
QStringList getSortedVersions() const
All unique versions.
static CArtifactList fromDatabaseJson(const QJsonArray &array)
From database JSON by array.
network::CRemoteFileList asRemoteFiles() const
As remote files.
QString getLatestVersion() const
Latest version.
QString getTotalFileSizeHumanReadable() const
Size of all artifacts.
CArtifactList findByMatchingPlatform(const CPlatform &platform) const
Find by platform.
Distributions for channel.
Multiple distributions for different channels:
QVersionNumber getQVersion() const
Version as QVersion.
const QString & getVersion() const
Version info.
bool hasName() const
Has name?
Value object encapsulating a list of remote files.
QJsonArray jsonArrayFromString(const QString &json)
JSON Array from string.
#define SWIFT_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template definition of mixins for a CSequence subclass.