13 #include <zypp/base/LogTools.h> 34 void fillList( std::list<std::string> & ret_r, sat::Solvable solv_r, sat::SolvAttr attr_r )
36 sat::LookupAttr query( attr_r, solv_r );
37 for_( it, query.begin(), query.end() )
39 ret_r.push_back( it.asString() );
74 bool foundBuildTime =
false;
80 bool fitsBuildtime = ( it->buildtime() ==
buildtime() );
83 bool lowerEdition = ( it->edition() <= found.
edition() );
84 if ( ( foundBuildTime && ( !fitsBuildtime || lowerEdition ) )
85 || ( !foundBuildTime && ( !fitsBuildtime && lowerEdition ) ) )
90 foundBuildTime =
true;
100 if ( ! refFile.empty() )
108 INT <<
"Product referenceFilename unexpectedly empty!" << endl;
112 WAR << *
this <<
": no reference package found: " << identCap << endl;
121 std::vector<constPtr> ret;
131 ret.push_back( make<Product>( *it ) );
140 ret.push_back( make<Product>( (*it).buddy() ) );
156 if ( ret.empty() ) ret =
name();
177 std::string capstr( cap->asString() );
181 capstr.erase( capstr.size()-1 );
187 return std::string();
195 std::list<std::string> ret;
218 std::vector<Repository::ContentIdentifier> ret;
224 ret.push_back( it.asString() );
234 if ( it.asString() == cident_r )
264 for (;url_it != url.
end(); ++url_it, ++url_type_it)
267 if (url_type_it == url_type.
end())
269 ERR << *
this <<
" : The thing that should not happen, happened." << endl;
273 if ( url_type_it.asString() == key_r )
275 ret.
_list.push_back(url_it.asString());
static const SolvAttr productFlags
Product(const sat::Solvable &solvable_r)
Ctor.
static const SolvAttr productUpdates
array of repoids, hopefully label s too
const_iterator begin() const
const_iterator begin() const
Iterator pointing to the first Solvable.
A Solvable object within the sat Pool.
Container of Solvable providing a Capability (read only).
UrlList registerUrls() const
The URL for registration.
Capabilities provides() const
UrlList updateUrls() const
Online updates for the product.
bool isTargetDistribution() const
This is the installed product that is also targeted by the /etc/products.d/baseproduct symlink...
Container of Capability (currently read only).
UrlList optionalUrls() const
Optional software for the product.
std::string productLine() const
Vendor specific string denoting the product line.
Helper to iterate a products URL lists.
std::string stripPrefix(const C_Str &str_r, const C_Str &prefix_r)
Strip a prefix_r from str_r and return the resulting string.
std::ostream & operator<<(std::ostream &str, const InputStream &obj)
CapabilitySet droplist() const
List of packages included in older versions of this product and now dropped.
std::string registerRelease() const
This is register.release attribute of an installed product.
UrlList smoltUrls() const
The URL for SMOLT.
std::vector< Repository::ContentIdentifier > updateContentIdentifier() const
ContentIdentifier of required update repositories.
const_iterator end() const
Iterator pointing behind the last Capability.
String matching (STRING|SUBSTRING|GLOB|REGEX).
Lightweight attribute value lookup.
std::string key() const
The key used to retrieve this list (for debug)
std::ostream & dumpRange(std::ostream &str, TIterator begin, TIterator end, const std::string &intro="{", const std::string &pfx="\ ", const std::string &sep="\ ", const std::string &sfx="\, const std::string &extro="}")
Print range defined by iterators (multiline style).
std::string registerFlavor() const
This is register.flavor attribute of a product.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
static const SolvAttr productRegisterRelease
static const SolvAttr productEndOfLife
String related utilities and Regular expression matching.
static const SolvAttr productProductLine
static const SolvAttr productUrlType
sat::Solvable buddy() const
Return the buddy we share our status object with.
UrlList releaseNotesUrls() const
The URL to download the release notes for this product.
PoolItem_iterator poolItemBegin() const
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
PoolItem_iterator poolItemEnd() const
std::string type() const
Get the product type Well, in an ideal world there is only one base product.
const_iterator end() const
Iterator pointing behind the last Solvable.
CapabilitySet valuesOfNamespace(const std::string &namespace_r) const
Return 'value[ op edition]' for namespaced provides 'namespace(value)[ op edition]'.
static const SolvAttr productRegisterTarget
iterator end() const
Iterator behind the end of query results.
const_iterator begin() const
Iterator pointing to the first Capability.
Store and operate on date (time_t).
UrlList extraUrls() const
Additional software for the product They are complementary, not alternatives.
Edition edition() const
The edition (version-release).
const_iterator end() const
static const SolvAttr productRegisterFlavor
bool hasEndOfLife() const
Return whether an EndOfLife value is actually defined in the metadata.
IMPL_PTR_TYPE(Application)
static const SolvAttr productType
void setStrMatcher(const StrMatcher &matcher_r)
Set the pattern to match.
Base for resolvable objects.
Container of installed Solvable which would be obsoleted by the Solvable passed to the ctor...
static const SolvAttr productUrl
ReplacedProducts replacedProducts() const
Array of installed Products that would be replaced by installing this one.
std::string ContentIdentifier
std::unordered_set< Capability > CapabilitySet
std::vector< constPtr > ReplacedProducts
UrlList urls(const std::string &key_r) const
Retrieve URLs flagged with key_r for this product.
static const SolvAttr productUpdatesRepoid
sat::Solvable referencePackage() const
The reference package providing the product metadata, if such a package exists.
Solvable inSolvable() const
The current Solvable.
std::string shortName() const
Untranslated short name like SLES 10 (fallback: name)
unsigned long long lookupNumAttribute(const SolvAttr &attr) const
const_iterator begin() const
Iterator pointing to the first Solvable.
static const SolvAttr filelist
bool hasUpdateContentIdentifier(const Repository::ContentIdentifier &cident_r) const
Whether cident_r is listed as required update repository.
std::string flavor() const
The product flavor (LiveCD Demo, FTP edition,...).
Date endOfLife() const
The date when this Product goes out of support as indicated by it's medadata.
std::string registerTarget() const
This is register.target attribute of a product.
std::string lookupStrAttribute(const SolvAttr &attr) const
static const ResKind product
Easy-to use interface to the ZYPP dependency resolver.
std::string referenceFilename() const
For installed products the name of the corresponding /etc/products.d entry.
std::list< std::string > flags() const
The product flags.
static const SolvAttr productReferenceFile
Solvable satSolvable() const
Return the corresponding sat::Solvable.
bool hasPrefix(const C_Str &str_r, const C_Str &prefix_r)
Return whether str_r has prefix prefix_r.
static const Match FILES
LookupAttr: match full path when matching in filelists, otherwise just the basenames.
const_iterator end() const
Iterator pointing behind the last Solvable.
Repository repository() const
static const SolvAttr productShortlabel
bool empty() const
Whether the query is empty.
iterator begin() const
Iterator to the begin of query results.
PoolItem poolItem() const
Access the corresponding PoolItem.