libzypp 17.37.17
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::ContentIdentifierupdateContentIdentifier () 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.
ReferenceCountedoperator= (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 ()
SolvableTypeoperator= (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.

(Note that these are not member symbols.)

std::ostream & operator<< (std::ostream &str, const Product::UrlList &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

Definition at line 36 of file Product.h.

◆ TraitsType

Definition at line 37 of file Product.h.

◆ Ptr

Definition at line 38 of file Product.h.

◆ constPtr

Definition at line 39 of file Product.h.

◆ ReplacedProducts

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 ( )
overrideprotected

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;
}
}
Product(const sat::Solvable &solvable_r)
Ctor.
Definition Product.cc:50
CapabilitySet droplist() const
List of packages included in older versions of this product and now dropped.
Definition Product.cc:146
Container of Solvable providing a Capability (read only).
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:27
#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.

◆ 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.

TraitsType::PtrType Ptr
Definition Package.h:38
friend Ptr make(const sat::Solvable &solvable_r)
Directly create a certain kind of ResObject from sat::Solvable.
Definition ResObject.h:118
friend ResObject::Ptr makeResObject(const sat::Solvable &solvable_r)
Create ResObject from sat::Solvable.
Definition ResObject.cc:43
TraitsType::PtrType Ptr
Definition ResObject.h:42
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: