00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PRODUCT_H 00013 #define ZYPP_PRODUCT_H 00014 00015 #include <list> 00016 #include <string> 00017 00018 #include "zypp/ResObject.h" 00019 #include "zypp/detail/ProductImplIf.h" 00020 00022 namespace zypp 00023 { 00024 00025 DEFINE_PTR_TYPE(Product); 00026 00028 // 00029 // CLASS NAME : ResObject 00030 // 00033 class Product : public ResObject 00034 { 00035 public: 00036 typedef detail::ProductImplIf Impl; 00037 typedef Product Self; 00038 typedef ResTraits<Self> TraitsType; 00039 typedef TraitsType::PtrType Ptr; 00040 typedef TraitsType::constPtrType constPtr; 00041 00042 public: 00044 std::string type() const; 00046 std::string category() const ZYPP_DEPRECATED 00047 { return type(); } 00048 00050 Label vendor() const; 00051 00053 Url releaseNotesUrl() const; 00054 00059 std::list<Url> updateUrls() const; 00060 00065 std::list<Url> extraUrls() const; 00066 00072 std::list<Url> optionalUrls() const; 00073 00075 std::list<std::string> flags() const; 00076 00078 Label shortName() const; 00079 00081 Label longName() const; 00082 00084 std::string distributionName() const; 00085 00087 Edition distributionEdition() const; 00088 00089 protected: 00091 Product( const NVRAD & nvrad_r ); 00093 virtual ~Product(); 00094 00095 private: 00097 virtual Impl & pimpl() = 0; 00099 virtual const Impl & pimpl() const = 0; 00100 }; 00101 00103 } // namespace zypp 00105 #endif // ZYPP_PRODUCT_H
1.5.3