1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/Product.h
12 #ifndef ZYPP_PRODUCT_H
13 #define ZYPP_PRODUCT_H
18 #include "zypp/ResObject.h"
19 #include "zypp/detail/ProductImplIf.h"
21 ///////////////////////////////////////////////////////////////////
23 { /////////////////////////////////////////////////////////////////
25 DEFINE_PTR_TYPE(Product);
27 ///////////////////////////////////////////////////////////////////
29 // CLASS NAME : ResObject
31 /** Product interface.
33 class Product : public ResObject
36 typedef detail::ProductImplIf Impl;
38 typedef ResTraits<Self> TraitsType;
39 typedef TraitsType::PtrType Ptr;
40 typedef TraitsType::constPtrType constPtr;
43 /** Get the product categoty (base, add-on) */
44 std::string category() const;
46 /** Get the vendor of the product */
49 /** The URL to download the release notes for this product */
50 Url releaseNotesUrl() const;
53 * Online updates for the product.
54 * They are complementary, not alternatives. #163192
56 std::list<Url> updateUrls() const;
59 * Additional software for the product
60 * They are complementary, not alternatives.
62 std::list<Url> extraUrls() const;
65 * Optional software for the product
66 * (for example. Non OSS repositories)
67 * They are complementary, not alternatives.
69 std::list<Url> optionalUrls() const;
71 /** The product flags */
72 std::list<std::string> flags() const;
75 Label shortName() const;
78 Label longName() const;
80 /** Vendor specific distribution id. */
81 std::string distributionName() const;
83 /** Vendor specific distribution version. */
84 Edition distributionEdition() const;
88 Product( const NVRAD & nvrad_r );
93 /** Access implementation */
94 virtual Impl & pimpl() = 0;
95 /** Access implementation */
96 virtual const Impl & pimpl() const = 0;
99 /////////////////////////////////////////////////////////////////
101 ///////////////////////////////////////////////////////////////////
102 #endif // ZYPP_PRODUCT_H