Audacity 3.2.0
VersionId.cpp
Go to the documentation of this file.
1/*!********************************************************************
2 Audacity: A Digital Audio Editor
3
4 @file VersionId.h
5 @brief Declare a class with version number manipulation.
6
7 Anton Gerasimov
8 **********************************************************************/
9#include "VersionId.h"
10
11VersionId::VersionId(int version, int release, int revision)
12 : mVersion(version),
13 mRelease(release),
14 mRevision(revision)
15{}
16
17wxString VersionId::MakeString(int version, int release, int revision)
18{
19 return std::to_string(version)
20 + "." + std::to_string(release)
21 + "." + std::to_string(revision);
22}
23
24VersionId VersionId::ParseFromString(wxString& versionString)
25{
26 auto versionStringParts = wxSplit(versionString, '.');
27
28 // If we have corrupted version string,
29 // then return the zero version number, that not allow us to update.
30 if (versionStringParts.size() != 3)
31 return VersionId{};
32
33 for (auto& v : versionStringParts)
34 {
35 if (v.empty() || !v.IsNumber())
36 return VersionId{};
37 }
38
39 return VersionId(
40 std::stoi(versionStringParts[0].ToStdString()),
41 std::stoi(versionStringParts[1].ToStdString()),
42 std::stoi(versionStringParts[2].ToStdString())
43 );
44}
45
46wxString VersionId::GetString() const
47{
49}
50
52{
53 return std::tie(mVersion, mRelease, mRevision) ==
54 std::tie(other.mVersion, other.mRelease, other.mRevision);
55}
56
58{
59 return !(*this == other);
60}
61
63{
64 return std::tie(mVersion, mRelease, mRevision) <
65 std::tie(other.mVersion, other.mRelease, other.mRevision);
66}
67
69{
70 return !(*this < other) && (*this != other);
71}
Declare a class with version number manipulation.
A class, that supports base manipulation with version number.
Definition: VersionId.h:19
bool operator!=(const VersionId &other)
Definition: VersionId.cpp:57
bool operator==(const VersionId &other)
Definition: VersionId.cpp:51
static VersionId ParseFromString(wxString &versionString)
Parse and return version object from version string like "1.2.3".
Definition: VersionId.cpp:24
wxString GetString() const
Make string with version by MakeString() from instance values.
Definition: VersionId.cpp:46
bool operator>(const VersionId &other)
Definition: VersionId.cpp:68
int mRevision
Definition: VersionId.h:42
int mRelease
Definition: VersionId.h:41
VersionId()=default
Creates an zero version object.
int mVersion
Definition: VersionId.h:40
static wxString MakeString(int version, int release, int revision)
Creates version string like "1.2.3" by parameters.
Definition: VersionId.cpp:17
bool operator<(const VersionId &other)
Definition: VersionId.cpp:62