8using namespace swift::misc::network;
12namespace swift::misc::db
67 bool findMoreStableDistribution)
const
97 bool findMoreStableDistributions)
const
142 if (this->
size() < 2)
174 for (
const CArtifact &artifact : std::as_const(copy))
176 if (artifact.hasName())
189 for (
const CArtifact &artifact : std::as_const(copy))
191 if (artifact.hasVersion())
193 versions.
push_back(artifact.getVersion());
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
bool contains(const T &object) const
Return true if there is an element equal to given object. Uses the most efficient implementation avai...
const_reference frontOrDefault() const
CSequence findBy(Predicate p) const
void push_back(const T &value)
Appends an element at the end of the sequence.
reference back()
Access the last element.
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.
const CPlatform & getPlatform() const
OS.
int getFileSize() const
File size.
const CDistributionList & getDistributions() const
Related distributions.
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?
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.
CSequence()=default
Default constructor.
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 findByDistribution(const CDistribution &distribution, bool findMoreStableDistribution=false) const
Find by distribution.
CArtifactList()=default
Empty constructor.
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:
const QString & getVersion() const
Version info.
QVersionNumber getQVersion() const
Version as QVersion.
bool hasName() const
Has name?
Value object encapsulating a list of remote files.
QJsonArray jsonArrayFromString(const QString &json)
JSON Array from string.
void push_back(QList< T >::parameter_type value)
QVersionNumber fromString(QAnyStringView string, qsizetype *suffixIndex)
#define SWIFT_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template definition of mixins for a CSequence subclass.