libzypp: zyppng::Product Class Reference

libzypp 17.38.11

zyppng::Product Class Reference

Product interface. More...

`#include <zypp/Product.h>`

Inheritance diagram for zyppng::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
bool | isKind (const ResKind &kind_r) 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
Capability | patternProvides () const
bool | isPatternPackage () const
Capability | productProvides () const
bool | isProductPackage () 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
bool | identical (const Solvable &rhs) const
bool | sameNVRA (const Solvable &rhs) 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.

## 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 64 of file Product.cc.

## ◆ ~Product()

zypp::Product::~Product | ( |  | ) |
| overrideprotected

Dtor.

Definition at line 73 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 78 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 135 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;
}
}
for_
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
MIL
#define MIL
Definition Logger.h:103
zypp::Product::droplist
CapabilitySet droplist() const
List of packages included in older versions of this product and now dropped.
Definition Product.cc:164
zyppng::Product::Product
Product(const sat::Solvable &solvable_r)
Ctor.
Definition Product.cc:64

Definition at line 164 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 138 of file Product.cc.

## ◆ productLine()

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

Vendor specific string denoting the product line.

Definition at line 167 of file Product.cc.

## ◆ shortName()

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

Untranslated short name like SLES 10 (fallback: name).

Definition at line 172 of file Product.cc.

## ◆ flavor()

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

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

Definition at line 180 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 209 of file Product.cc.

## ◆ flags()

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

The product flags.

Definition at line 212 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 219 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 222 of file Product.cc.

## ◆ hasEndOfLife() [2/2]

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

Definition at line 225 of file Product.cc.

## ◆ updateContentIdentifier()

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

ContentIdentifier of required update repositories.

Definition at line 235 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 248 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 259 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 262 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 265 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 268 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 273 of file Product.cc.

## ◆ releaseNotesUrls()

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

The URL to download the release notes for this product.

Definition at line 301 of file Product.cc.

## ◆ registerUrls()

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

The URL for registration.

Definition at line 302 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 303 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 304 of file Product.cc.

## ◆ extraUrls()

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

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

Definition at line 305 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 306 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::ResObject::makeResObject
friend ResObject::Ptr makeResObject(const sat::Solvable &solvable_r)
Create ResObject from sat::Solvable.
Definition ResObject.cc:43
zyppng::Package::Ptr
TraitsType::PtrType Ptr
Definition Package.h:38
zyppng::Product::make
friend Ptr make(const sat::Solvable &solvable_r)
Directly create a certain kind of ResObject from sat::Solvable.
Definition ResObject.h:118
zyppng::ResObject::Ptr
TraitsType::PtrType Ptr
Definition ResObject.h:42
zyppng::sat::Solvable
A Solvable object within the sat Pool.
Definition solvable.h:66

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