34 void fillList( std::list<Url> & 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() )
41 ret_r.push_back( Url( it.asString() ) );
43 catch(
const url::UrlException & )
48 void fillList( std::list<std::string> & ret_r, sat::Solvable solv_r, sat::SolvAttr attr_r )
50 sat::LookupAttr query( attr_r, solv_r );
51 for_( it, query.begin(), query.end() )
53 ret_r.push_back( it.asString() );
88 bool foundBuildTime =
false;
94 bool fitsBuildtime = ( it->buildtime() ==
buildtime() );
97 bool lowerEdition = ( it->edition() <= found.
edition() );
98 if ( ( foundBuildTime && ( !fitsBuildtime || lowerEdition ) )
99 || ( !foundBuildTime && ( !fitsBuildtime && lowerEdition ) ) )
104 foundBuildTime =
true;
114 if ( ! refFile.empty() )
122 INT <<
"Product referenceFilename unexpectedly empty!" << endl;
126 WAR << *
this <<
": no reference package found: " << identCap << endl;
135 std::vector<constPtr> ret;
145 ret.push_back( make<Product>( *it ) );
154 ret.push_back( make<Product>( (*it).buddy() ) );
170 if ( ret.empty() ) ret =
name();
191 std::string capstr( cap->asString() );
195 capstr.erase( capstr.size()-1 );
201 return std::string();
209 std::list<std::string> ret;
232 std::vector<Repository::ContentIdentifier> ret;
238 ret.push_back( it.asString() );
248 if ( it.asString() == cident_r )
278 for (;url_it != url.
end(); ++url_it, ++url_type_it)
281 if (url_type_it == url_type.
end())
283 ERR << *
this <<
" : The thing that should not happen, happened." << endl;
287 if ( url_type_it.asString() == key_r )
289 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 end() const
A Solvable object within the sat Pool.
Container of Solvable providing a Capability (read only).
UrlList releaseNotesUrls() const
The URL to download the release notes for this product.
Container of Capability (currently read only).
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::string lookupStrAttribute(const SolvAttr &attr) const
String matching (STRING|SUBSTRING|GLOB|REGEX).
Lightweight attribute value lookup.
std::string key() const
The key used to retrieve this list (for debug)
static const SolvAttr productRegisterRelease
UrlList registerUrls() const
The URL for registration.
UrlList optionalUrls() const
Optional software for the product.
static const SolvAttr productEndOfLife
static const SolvAttr productProductLine
static const SolvAttr productUrlType
const_iterator begin() const
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Date endOfLife() const
The date when this Product goes out of support as indicated by it's medadata.
UrlList extraUrls() const
Additional software for the product They are complementary, not alternatives.
CapabilitySet valuesOfNamespace(const std::string &namespace_r) const
Return 'value[ op edition]' for namespaced provides 'namespace(value)[ op edition]'.
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
std::string registerRelease() const
This is register.release attribute of an installed product.
std::string registerFlavor() const
This is register.flavor attribute of a product.
Repository repository() const
static const SolvAttr productRegisterTarget
Store and operate on date (time_t).
std::ostream & dumpRange(std::ostream &str, TIterator begin, TIterator end, const std::string &intro="{", const std::string &pfx="\n ", const std::string &sep="\n ", const std::string &sfx="\n", const std::string &extro="}")
Print range defined by iterators (multiline style).
iterator end() const
Iterator behind the end of query results.
const_iterator begin() const
Iterator pointing to the first Solvable.
std::ostream & operator<<(std::ostream &str, const Exception &obj)
std::string flavor() const
The product flavor (LiveCD Demo, FTP edition,...).
const_iterator end() const
Iterator pointing behind the last Solvable.
PoolItem_iterator poolItemEnd() const
Solvable inSolvable() const
The current Solvable.
static const SolvAttr productRegisterFlavor
PoolItem poolItem() const
Access the corresponding PoolItem.
IMPL_PTR_TYPE(Application)
const_iterator begin() const
Iterator pointing to the first Solvable.
static const SolvAttr productType
PoolItem_iterator poolItemBegin() const
void setStrMatcher(const StrMatcher &matcher_r)
Set the pattern to match.
sat::Solvable referencePackage() const
The reference package providing the product metadata, if such a package exists.
Base for resolvable objects.
std::vector< Repository::ContentIdentifier > updateContentIdentifier() const
ContentIdentifier of required update repositories.
std::string type() const
Get the product type Well, in an ideal world there is only one base product.
Container of installed Solvable which would be obsoleted by the Solvable passed to the ctor...
UrlList updateUrls() const
Online updates for the product.
static const SolvAttr productUrl
ReplacedProducts replacedProducts() const
Array of installed Products that would be replaced by installing this one.
bool empty() const
Whether the query is empty.
std::string ContentIdentifier
const_iterator end() const
Iterator pointing behind the last Capability.
std::unordered_set< Capability > CapabilitySet
std::vector< constPtr > ReplacedProducts
std::string shortName() const
Untranslated short name like SLES 10 (fallback: name)
CapabilitySet droplist() const
List of packages included in older versions of this product and now dropped.
bool isTargetDistribution() const
This is the installed product that is also targeted by the /etc/products.d/baseproduct symlink...
sat::Solvable buddy() const
Return the buddy we share our status object with.
std::string productLine() const
Vendor specific string denoting the product line.
static const SolvAttr productUpdatesRepoid
Solvable satSolvable() const
Return the corresponding sat::Solvable.
static const SolvAttr filelist
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.
bool hasUpdateContentIdentifier(const Repository::ContentIdentifier &cident_r) const
Whether cident_r is listed as required update repository.
std::string registerTarget() const
This is register.target attribute of a product.
Capabilities provides() const
static const ResKind product
static const SolvAttr productReferenceFile
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.
UrlList urls(const std::string &key_r) const
Retrieve URLs flagged with key_r for this product.
unsigned long long lookupNumAttribute(const SolvAttr &attr) const
const_iterator begin() const
Iterator pointing to the first Capability.
Edition edition() const
The edition (version-release).
static const SolvAttr productShortlabel
const_iterator end() const
Iterator pointing behind the last Solvable.
bool hasEndOfLife() const
Return whether an EndOfLife value is actually defined in the metadata.
iterator begin() const
Iterator to the begin of query results.
UrlList smoltUrls() const
The URL for SMOLT.