libzypp 17.37.10

zypp::Product Class Reference

Product interface. More...

`#include <zypp/Product.h>`

Inheritance diagram for zypp::Product:

## Classes
class | UrlList
| Helper to iterate a products URL lists. More...

## Public Types
using | Self = Product
using | TraitsType = ResTraits<Self>
using | Ptr = TraitsType::PtrType
using | constPtr = TraitsType::constPtrType
using | ReplacedProducts = std::vector<constPtr>
Public Types inherited from zypp::ResObject
using | Self = ResObject
using | TraitsType = ResTraits<Self>
using | Ptr = TraitsType::PtrType
using | constPtr = TraitsType::constPtrType
Public Types inherited from zypp::Resolvable
using | Self = Resolvable
using | TraitsType = ResTraits<Self>
using | Kind = TraitsType::KindType
using | Ptr = TraitsType::PtrType
using | constPtr = TraitsType::constPtrType

## Public Member Functions
sat::Solvable | referencePackage () const
| The reference package providing the product metadata, if such a package exists.
std::string | referenceFilename () const
| For installed products the name of the corresponding `/etc/products`.d entry.
CapabilitySet | droplist () const
| List of packages included in older versions of this product and now dropped.
ReplacedProducts | replacedProducts () const
| Array of installed Products that would be replaced by installing this one.
std::string | productLine () const
| Vendor specific string denoting the product line.
std::string | shortName () const
| Untranslated short name like SLES 10 (fallback: name)
std::string | flavor () const
| The product flavor (LiveCD Demo, FTP edition,...).
std::string | type () const
| Get the product type Well, in an ideal world there is only one base product.
std::list< std::string > | flags () const
| The product flags.
Date | endOfLife () const
| The date when this Product goes out of support as indicated by its medadata.
bool | hasEndOfLife () const
| Return whether an EndOfLife value is actually defined in the metadata.
bool | hasEndOfLife (Date &value) const
std::vector< Repository::ContentIdentifier > | updateContentIdentifier () const
| ContentIdentifier of required update repositories.
bool | hasUpdateContentIdentifier (const Repository::ContentIdentifier &cident_r) const
| Whether cident_r is listed as required update repository.
template<class TIterator>
bool | hasUpdateContentIdentifier (TIterator begin, TIterator end) const
| Whether one of the ContentIdentifier is listed as required update repository.
bool | isTargetDistribution () const
| This is the installed product that is also targeted by the `/etc/products`.d/baseproduct symlink.
std::string | registerTarget () const
| This is `register.target` attribute of a product.
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.
UrlList | urls (const std::string &key_r) const
| Retrieve URLs flagged with `key_r` for this product.
UrlList | releaseNotesUrls () const
| The URL to download the release notes for this product.
UrlList | registerUrls () const
| The URL for registration.
UrlList | smoltUrls () const
| The URL for SMOLT.
UrlList | updateUrls () const
| Online updates for the product.
UrlList | extraUrls () const
| Additional software for the product They are complementary, not alternatives.
UrlList | optionalUrls () const
| Optional software for the product.
Public Member Functions inherited from zypp::ResObject
template<class TRes>
ResTraits< TRes >::constPtrType | asKind () const
| Convert `this` into a Ptr of a certain Kind.
template<class TRes>
ResTraits< TRes >::PtrType | asKind ()
Vendor | vendor () const
| Vendor.
Public Member Functions inherited from zypp::Resolvable
| operator sat::Solvable () const
| This is a sat::SolvableType.
PoolItem | poolItem () const
| Access the corresponding PoolItem.
Public Member Functions inherited from zypp::sat::SolvableType< Resolvable >
Solvable | satSolvable () const
| Return the corresponding sat::Solvable.
| operator bool () const
IdString | ident () const
ResKind | kind () const
std::string | name () const
Edition | edition () const
Arch | arch () const
IdString | vendor () const
Repository | repository () const
RepoInfo | repoInfo () const
bool | isSystem () const
bool | onSystemByUser () const
bool | onSystemByAuto () const
bool | identIsAutoInstalled () const
bool | multiversionInstall () const
bool | isNeedreboot () const
bool | isBlacklisted () const
bool | isRetracted () const
bool | isPtf () const
bool | isPtfMaster () const
bool | isPtfPackage () const
Date | buildtime () const
Date | installtime () const
std::string | asString () const
std::string | asUserString () const
Capabilities | dep_provides () const
Capabilities | dep_requires () const
Capabilities | dep_conflicts () const
Capabilities | dep_obsoletes () const
Capabilities | dep_recommends () const
Capabilities | dep_suggests () const
Capabilities | dep_enhances () const
Capabilities | dep_supplements () const
Capabilities | dep_prerequires () const
Capabilities | dep (Dep which_r) const
Capabilities | operator[] (Dep which_r) const
Capabilities | provides () const
Capabilities | conflicts () const
Capabilities | obsoletes () const
Capabilities | recommends () const
Capabilities | suggests () const
Capabilities | enhances () const
Capabilities | supplements () const
Capabilities | prerequires () const
CapabilitySet | providesNamespace (const std::string &namespace_r) const
CapabilitySet | valuesOfNamespace (const std::string &namespace_r) const
bool | supportsLocales () const
bool | supportsLocale (const Locale &locale_r) const
bool | supportsRequestedLocales () const
LocaleSet | getSupportedLocales () const
CpeId | cpeId () const
unsigned | mediaNr () const
ByteCount | installSize () const
ByteCount | downloadSize () const
std::string | distribution () const
std::string | summary (const Locale &lang_r=Locale()) const
std::string | description (const Locale &lang_r=Locale()) const
std::string | insnotify (const Locale &lang_r=Locale()) const
std::string | delnotify (const Locale &lang_r=Locale()) const
std::string | licenseToConfirm (const Locale &lang_r=Locale()) const
bool | needToAcceptLicense () const
std::string | lookupStrAttribute (const SolvAttr &attr) const
bool | lookupBoolAttribute (const SolvAttr &attr) const
detail::IdType | lookupIdAttribute (const SolvAttr &attr) const
unsigned long long | lookupNumAttribute (const SolvAttr &attr) const
CheckSum | lookupCheckSumAttribute (const SolvAttr &attr) const
OnMediaLocation | lookupLocation () const
Solvable::IdType | id () const
Public Member Functions inherited from zypp::base::ReferenceCounted
| ReferenceCounted ()
| Default ctor.
| ReferenceCounted (const ReferenceCounted &rhs)
| Copy ctor.
virtual | ~ReferenceCounted ()
| Dtor.
ReferenceCounted & | operator= (const ReferenceCounted &)
| Assignment.
unsigned | refCount () const
| Return reference counter value.
void | ref () const
| Add a reference.
void | unref () const
| Release a reference.

## Protected Member Functions
| Product (const sat::Solvable &solvable_r)
| Ctor.
| ~Product () override
| Dtor.
Protected Member Functions inherited from zypp::ResObject
| ResObject (const sat::Solvable &solvable_r)
| Ctor.
| ~ResObject () override
| Dtor.
std::ostream & | dumpOn (std::ostream &str) const override
| Helper for stream output.
| operator sat::Solvable () const
| This is a sat::SolvableType (allow implicit conversion in derived classes).
Protected Member Functions inherited from zypp::Resolvable
| Resolvable (const sat::Solvable &solvable_r)
| Ctor.
| ~Resolvable () override
| Dtor.
std::ostream & | dumpOn (std::ostream &str) const override
| Helper for stream output.
Protected Member Functions inherited from zypp::sat::SolvableType< Resolvable >
| SolvableType ()
SolvableType & | operator= (const SolvableType &)=default
| ~SolvableType ()
Protected Member Functions inherited from zypp::base::ReferenceCounted
virtual void | ref_to (unsigned) const
| Trigger derived classes after refCount was increased.
virtual void | unref_to (unsigned) const
| Trigger derived classes after refCount was decreased.

## Friends
Ptr | make (const sat::Solvable &solvable_r)
| Directly create a certain kind of ResObject from sat::Solvable.

## Related Symbols
(Note that these are not member symbols.)
std::ostream & | operator<< (std::ostream &str, const Product::UrlList &obj)
| Stream output.
Related Symbols inherited from zypp::ResObject
template<class TRes>
ResTraits< TRes >::PtrType | asKind (const ResObject::Ptr &p)
| Convert ResObject::Ptr into Ptr of a certain Kind.
Related Symbols inherited from zypp::Resolvable
std::ostream & | operator<< (std::ostream &str, const Resolvable &obj)
| Stream output.
std::ostream & | dumpOn (std::ostream &str, const Resolvable &obj)
| More verbose stream output including dependencies.
template<class TRes>
bool | isKind (const Resolvable::constPtr &p)
| Test whether a Resolvable::Ptr is of a certain Kind.
template<class TRes>
ResTraits< TRes >::PtrType | asKind (const Resolvable::Ptr &p)
| Convert Resolvable::Ptr into Ptr of a certain Kind.
int | compareByN (const Resolvable::constPtr &lhs, const Resolvable::constPtr &rhs)
| Compare Resolvable::constPtr according to kind and name.
int | compareByNVR (const Resolvable::constPtr &lhs, const Resolvable::constPtr &rhs)
| Compare according to kind, name and edition.
int | compareByNVRA (const Resolvable::constPtr &lhs, const Resolvable::constPtr &rhs)
| Compare Resolvable::constPtr according to kind, name, edition and arch.
Related Symbols inherited from zypp::sat::SolvableType< Resolvable >
std::ostream & | operator<< (std::ostream &str, const SolvableType< Resolvable > &obj)
| Stream output.
std::ostream & | dumpOn (std::ostream &str, const SolvableType< Resolvable > &obj)
| More verbose stream output including dependencies.
bool | operator== (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Equal.
bool | operator!= (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| NotEqual.
bool | operator< (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Less.
bool | isKind (const SolvableType< Resolvable > &solvable_r)
| Test whether the Solvable is of a certain ResKind.
bool | identical (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Test for same content.
bool | sameNVRA (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Test for same name version release and arch.
int | compareByN (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Compare according to kind and name.
int | compareByNVR (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Compare according to kind, name and edition.
int | compareByNVRA (const SolvableType< LDerived > &lhs, const SolvableType< RDerived > &rhs)
| Compare according to kind, name, edition and arch.
Related Symbols inherited from zypp::base::ReferenceCounted
void | intrusive_ptr_add_ref (const ReferenceCounted *ptr_r)
| intrusive_ptr hook to add_ref.
void | intrusive_ptr_release (const ReferenceCounted *ptr_r)
| intrusive_ptr hook to release.
std::ostream & | operator<< (std::ostream &str, const ReferenceCounted &obj)
| Stream output.

## Additional Inherited Members
Static Public Member Functions inherited from zypp::base::ReferenceCounted
static void | add_ref (const ReferenceCounted *ptr_r)
| Called by zypp::intrusive_ptr to add a reference.
static void | release (const ReferenceCounted *ptr_r)
| Called by zypp::intrusive_ptr to add a reference.
Public Attributes inherited from zypp::sat::SolvableType< Resolvable >
Capabilities | const

## Detailed Description

Product interface.

Definition at line 33 of file Product.h.

## Member Typedef Documentation

## ◆ Self

using zypp::Product::Self = Product

Definition at line 36 of file Product.h.

## ◆ TraitsType

using zypp::Product::TraitsType = ResTraits<Self>

Definition at line 37 of file Product.h.

## ◆ Ptr

using zypp::Product::Ptr = TraitsType::PtrType

Definition at line 38 of file Product.h.

## ◆ constPtr

using zypp::Product::constPtr = TraitsType::constPtrType

Definition at line 39 of file Product.h.

## ◆ ReplacedProducts

using zypp::Product::ReplacedProducts = std::vector<constPtr>

Definition at line 74 of file Product.h.

## Constructor & Destructor Documentation

## ◆ Product()

zypp::Product::Product | ( | const sat::Solvable & | solvable_r | ) |
| protected

Ctor.

Definition at line 50 of file Product.cc.

## ◆ ~Product()

zypp::Product::~Product | ( |  | ) |
| override protected

Dtor.

Definition at line 59 of file Product.cc.

## Member Function Documentation

## ◆ referencePackage()

sat::Solvable zypp::Product::referencePackage | ( |  | ) | const

The reference package providing the product metadata, if such a package exists.

Definition at line 64 of file Product.cc.

## ◆ referenceFilename()

std::string zypp::Product::referenceFilename | ( |  | ) | const

For installed products the name of the corresponding `/etc/products`.d entry.

Definition at line 117 of file Product.cc.

## ◆ droplist()

CapabilitySet zypp::Product::droplist | ( |  | ) | const

List of packages included in older versions of this product and now dropped.

This evaluates the referencePackage `weakremover` namespace. It actually returns a CapabilitySet, because we support to drop specific versions or version ranges of a package. Use sat::WhatProvides to get the actually installed and available packages matching this list.

const Product & openSUSE;
sat::WhatProvides dropped( openSUSE.droplist() );
for_( it, dropped.poolItemBegin(), dropped.poolItemEnd() )
{
if ( it->status().isInstalled() )
{
MIL << "Installed but no longer supported package: " << *it << endl;
}
}
zypp::Product::Product
Product(const sat::Solvable &solvable_r)
Ctor.
Definition Product.cc:50
zypp::Product::droplist
CapabilitySet droplist() const
List of packages included in older versions of this product and now dropped.
Definition Product.cc:146
zypp::sat::WhatProvides
Container of Solvable providing a Capability (read only).
Definition WhatProvides.h:89
for_
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
MIL
#define MIL
Definition Logger.h:100

Definition at line 146 of file Product.cc.

## ◆ replacedProducts()

Product::ReplacedProducts zypp::Product::replacedProducts | ( |  | ) | const

Array of installed Products that would be replaced by installing this one.

Definition at line 120 of file Product.cc.

## ◆ productLine()

std::string zypp::Product::productLine | ( |  | ) | const

Vendor specific string denoting the product line.

Definition at line 149 of file Product.cc.

## ◆ shortName()

std::string zypp::Product::shortName | ( |  | ) | const

Untranslated short name like SLES 10 (fallback: name)

Definition at line 154 of file Product.cc.

## ◆ flavor()

std::string zypp::Product::flavor | ( |  | ) | const

The product flavor (LiveCD Demo, FTP edition,...).

Definition at line 162 of file Product.cc.

## ◆ type()

std::string zypp::Product::type | ( |  | ) | const

Get the product type Well, in an ideal world there is only one base product.

It's the installed product denoted by a symlink in `/etc/products`.d.

Definition at line 191 of file Product.cc.

## ◆ flags()

std::list< std::string > zypp::Product::flags | ( |  | ) | const

The product flags.

Definition at line 194 of file Product.cc.

## ◆ endOfLife()

Date zypp::Product::endOfLife | ( |  | ) | const

The date when this Product goes out of support as indicated by its medadata.

Use hasEOfLife if it's important to distinguish whether the value is not defined in the metadata, or defined but empty/invalid/TBD.

Definition at line 201 of file Product.cc.

## ◆ hasEndOfLife() [1/2]

bool zypp::Product::hasEndOfLife | ( |  | ) | const

Return whether an EndOfLife value is actually defined in the metadata.

A missing value (`false`) usually indicates that there will be no EOL, while an empty/invalid value indicates that there will be an EOL date, but it's not yet known (FATE#320699).

Definition at line 204 of file Product.cc.

## ◆ hasEndOfLife() [2/2]

bool zypp::Product::hasEndOfLife | ( | Date & | value | ) | const

Definition at line 207 of file Product.cc.

## ◆ updateContentIdentifier()

std::vector< Repository::ContentIdentifier > zypp::Product::updateContentIdentifier | ( |  | ) | const

ContentIdentifier of required update repositories.

Definition at line 217 of file Product.cc.

## ◆ hasUpdateContentIdentifier() [1/2]

bool zypp::Product::hasUpdateContentIdentifier | ( | const Repository::ContentIdentifier & | cident_r | ) | const

Whether cident_r is listed as required update repository.

Definition at line 230 of file Product.cc.

## ◆ hasUpdateContentIdentifier() [2/2]

template<class TIterator>

bool zypp::Product::hasUpdateContentIdentifier | ( | TIterator | begin,
|  | TIterator | end ) const
| inline

Whether one of the ContentIdentifier is listed as required update repository.

Definition at line 128 of file Product.h.

## ◆ isTargetDistribution()

bool zypp::Product::isTargetDistribution | ( |  | ) | const

This is the installed product that is also targeted by the `/etc/products`.d/baseproduct symlink.

Definition at line 241 of file Product.cc.

## ◆ registerTarget()

std::string zypp::Product::registerTarget | ( |  | ) | const

This is `register.target` attribute of a product.

Used for registration and filtering service repos.

Definition at line 244 of file Product.cc.

## ◆ registerRelease()

std::string zypp::Product::registerRelease | ( |  | ) | const

This is `register.release` attribute of an installed product.

Used for registration.

Definition at line 247 of file Product.cc.

## ◆ registerFlavor()

std::string zypp::Product::registerFlavor | ( |  | ) | const

This is `register.flavor` attribute of a product.

Used for registration.

Definition at line 250 of file Product.cc.

## ◆ urls()

Product::UrlList zypp::Product::urls | ( | const std::string & | key_r | ) | const

Retrieve URLs flagged with `key_r` for this product.

This is the most common interface. There are convenience methods for wellknown flags like `"releasenotes"`, `"register"`, `"updateurls"`, `"extraurls"`, `"optionalurls"` and `"smolt"` below.

Definition at line 255 of file Product.cc.

## ◆ releaseNotesUrls()

Product::UrlList zypp::Product::releaseNotesUrls | ( |  | ) | const

The URL to download the release notes for this product.

Definition at line 283 of file Product.cc.

## ◆ registerUrls()

Product::UrlList zypp::Product::registerUrls | ( |  | ) | const

The URL for registration.

Definition at line 284 of file Product.cc.

## ◆ smoltUrls()

Product::UrlList zypp::Product::smoltUrls | ( |  | ) | const

The URL for SMOLT.

See also
  http://smolts.org/wiki/Main_Page.

Definition at line 285 of file Product.cc.

## ◆ updateUrls()

Product::UrlList zypp::Product::updateUrls | ( |  | ) | const

Online updates for the product.

They are complementary, not alternatives. #163192

Definition at line 286 of file Product.cc.

## ◆ extraUrls()

Product::UrlList zypp::Product::extraUrls | ( |  | ) | const

Additional software for the product They are complementary, not alternatives.

Definition at line 287 of file Product.cc.

## ◆ optionalUrls()

Product::UrlList zypp::Product::optionalUrls | ( |  | ) | const

Optional software for the product.

(for example. Non OSS repositories) They are complementary, not alternatives.

Definition at line 288 of file Product.cc.

## Friends And Related Symbol Documentation

## ◆ make

Ptr make | ( | const sat::Solvable & | solvable_r | ) |
| friend

Directly create a certain kind of ResObject from sat::Solvable.

If the sat::Solvables kind is not appropriate, a NULL pointer is returned.

sat::Solvable s;
ResObject::Ptr p( makeResObject( s ) );
ResObject::Ptr q( make<ResObject>( s ) );
Package::Ptr pkg( make<Package>( s ) );
zypp::Package::Ptr
TraitsType::PtrType Ptr
Definition Package.h:38
zypp::Product::make
friend Ptr make(const sat::Solvable &solvable_r)
Directly create a certain kind of ResObject from sat::Solvable.
Definition ResObject.h:118
zypp::ResObject::makeResObject
friend ResObject::Ptr makeResObject(const sat::Solvable &solvable_r)
Create ResObject from sat::Solvable.
Definition ResObject.cc:43
zypp::ResObject::Ptr
TraitsType::PtrType Ptr
Definition ResObject.h:42
zypp::sat::Solvable
A Solvable object within the sat Pool.
Definition Solvable.h:54

Todo
  make<> was a poor choice (AFAIR because gcc had some trouble with asKind<>(sat::Solvable)). Remove it in favour of asKind<>(sat::Solvable)

Definition at line 118 of file ResObject.h.

The documentation for this class was generated from the following files:

- zypp/Product.h
- zypp/Product.cc