Cupt
version.hpp
Go to the documentation of this file.
1/**************************************************************************
2* Copyright (C) 2010 by Eugene V. Lyubimkin *
3* *
4* This program is free software; you can redistribute it and/or modify *
5* it under the terms of the GNU General Public License *
6* (version 3 or above) as published by the Free Software Foundation. *
7* *
8* This program is distributed in the hope that it will be useful, *
9* but WITHOUT ANY WARRANTY; without even the implied warranty of *
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
11* GNU General Public License for more details. *
12* *
13* You should have received a copy of the GNU GPL *
14* along with this program; if not, write to the *
15* Free Software Foundation, Inc., *
16* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA *
17**************************************************************************/
18#ifndef CUPT_CACHE_VERSION_SEEN
19#define CUPT_CACHE_VERSION_SEEN
20
22
23#include <cstdint>
24#include <map>
25
26#include <cupt/fwd.hpp>
27#include <cupt/common.hpp>
28#include <cupt/hashsums.hpp>
29
30namespace cupt {
31namespace cache {
32
33using std::map;
34
36
39struct CUPT_API Version
40{
42 struct Source
43 {
45 string directory;
46 };
49 {
50 string baseUri;
51 string directory;
52 };
55 {
57 enum Type { Required, Important, Standard, Optional, Extra };
59 static const string strings[];
60 };
63 {
64 string name;
65 uint32_t size;
67 };
68 vector< Source > sources;
69 string packageName;
71 string section;
72 string maintainer;
74 map< string, string >* others;
75
79 virtual ~Version();
81
86 virtual bool areHashesEqual(const Version* other) const = 0;
87
89 bool isVerified() const;
91 vector< DownloadRecord > getDownloadInfo() const;
92
94
97 bool operator<(const Version&) const;
98
100 static bool parseRelations;
102 static bool parseInfoOnly;
104 static bool parseOthers;
105
107 string getCodenameAndComponentString(const string&) const;
109};
110
111} // namespace
112} // namespace
113
114#endif
115
hash sums
Definition hashsums.hpp:29
release information
Definition releaseinfo.hpp:31
download place record
Definition version.hpp:49
string directory
directory on the baseUri
Definition version.hpp:51
string baseUri
base URI
Definition version.hpp:50
file information
Definition version.hpp:63
HashSums hashSums
hash sums
Definition version.hpp:66
string name
file name
Definition version.hpp:64
uint32_t size
file size
Definition version.hpp:65
priority
Definition version.hpp:55
Type
priority types
Definition version.hpp:57
where version comes from
Definition version.hpp:43
const ReleaseInfo * release
release info
Definition version.hpp:44
string directory
remote directory containing files
Definition version.hpp:45
common version information
Definition version.hpp:40
string packageName
package name
Definition version.hpp:69
Version()
constructor
bool operator<(const Version &) const
less-than operator
bool isVerified() const
does version have at least one verified Source?
Priorities::Type priority
priority
Definition version.hpp:70
static bool parseOthers
enables parsing unknown fields in versions, false by default
Definition version.hpp:104
virtual bool areHashesEqual(const Version *other) const =0
determines file equality between two versions
map< string, string > * others
unknown fields in the form 'name' -> 'value', NULL by default
Definition version.hpp:74
virtual ~Version()
destructor
static bool parseRelations
enables parsing relation fields in versions, true by default
Definition version.hpp:100
string maintainer
maintainer (usually name and mail address)
Definition version.hpp:72
static bool parseInfoOnly
enables parsing info-only fields in versions, true by default
Definition version.hpp:102
string versionString
version
Definition version.hpp:73
string section
section
Definition version.hpp:71
vector< DownloadRecord > getDownloadInfo() const
gets list of available download records for version
vector< Source > sources
list of sources
Definition version.hpp:68