18 #ifndef CUPT_CACHE_PACKAGE_SEEN
19 #define CUPT_CACHE_PACKAGE_SEEN
28 struct VersionParseParameters;
30 template<
typename VersionType >
31 class CUPT_API BasePackageIterator:
public std::iterator< std::bidirectional_iterator_tag, const VersionType* >
33 friend class cache::Package;
34 friend class cache::BinaryPackage;
35 friend class cache::SourcePackage;
37 typedef vector< unique_ptr< cache::Version > >::const_iterator UnderlyingIterator;
39 UnderlyingIterator __ui;
41 BasePackageIterator(UnderlyingIterator);
43 typedef BasePackageIterator Self;
46 const VersionType* operator*()
const;
47 bool operator==(
const Self&)
const;
48 bool operator!=(
const Self&)
const;
58 vector< unique_ptr< Version > > __parsed_versions;
60 CUPT_LOCAL
void __merge_version(unique_ptr< Version >&&);
66 const string* _binary_architecture;
68 CUPT_LOCAL
const vector< unique_ptr< Version > >& _get_versions()
const;
69 CUPT_LOCAL
virtual unique_ptr< Version > _parse_version(
const internal::VersionParseParameters&)
const = 0;
70 CUPT_LOCAL
virtual bool _is_architecture_appropriate(
const Version*)
const = 0;
77 Package(
const string* binaryArchitecture);
81 CUPT_LOCAL
void addEntry(
const internal::VersionParseParameters&);
85 vector< const Version* > getVersions()
const;
91 const Version* getSpecificVersion(
const string& versionString)
const;
93 typedef internal::BasePackageIterator< Version > iterator;
94 iterator begin()
const;
Definition: binarypackage.hpp:26
common version information
Definition: version.hpp:39
a container for all versions of the same package name
Definition: package.hpp:56