libzypp  11.13.5
Product.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_PRODUCT_H
13 #define ZYPP_PRODUCT_H
14 
15 #include <list>
16 #include <string>
17 
18 #include "zypp/ResObject.h"
19 
21 namespace zypp
22 {
23 
24  DEFINE_PTR_TYPE(Product);
25 
27  //
28  // CLASS NAME : Product
29  //
32  class Product : public ResObject
33  {
34  public:
35  typedef Product Self;
39 
40  public:
45 
49  std::string referenceFilename() const;
50 
69  CapabilitySet droplist() const;
70 
71  public:
72  /***/
73  typedef std::vector<constPtr> ReplacedProducts;
74 
79 
81  std::string productLine() const;
82 
83  public:
85  std::string shortName() const;
86 
88  std::string flavor() const;
89 
97  std::string type() const ZYPP_DEPRECATED;
98 
100  std::list<std::string> flags() const;
101 
102  public:
106  bool isTargetDistribution() const;
107 
111  std::string registerTarget() const;
112 
116  std::string registerRelease() const;
117 
118  public:
119  /***/
120  class UrlList;
121 
128  UrlList urls( const std::string & key_r ) const;
129 
131  UrlList releaseNotesUrls() const;
132 
134  UrlList registerUrls() const;
135 
137  UrlList smoltUrls() const;
138 
143  UrlList updateUrls() const;
144 
149  UrlList extraUrls() const;
150 
156  UrlList optionalUrls() const;
157 
158  protected:
159  friend Ptr make<Self>( const sat::Solvable & solvable_r );
161  Product( const sat::Solvable & solvable_r );
163  virtual ~Product();
164  };
165 
170  class Product::UrlList
171  {
172  private:
174  typedef std::list<Url> ListType;
175 
176  public:
177  typedef ListType::value_type value_type;
179  typedef ListType::const_iterator const_iterator;
180 
181  bool empty() const
182  { return _list.empty(); }
183 
184  size_type size() const
185  { return _list.size(); }
186 
187  const_iterator begin() const
188  { return _list.begin(); }
189 
190  const_iterator end() const
191  { return _list.end(); }
192 
194  Url first() const
195  { return empty() ? value_type() : _list.front(); }
196 
197  public:
199  std::string key() const
200  { return _key; }
201 
202  private:
203  friend class Product;
205  std::string _key;
206  ListType _list;
207  };
208 
210  std::ostream & operator<<( std::ostream & str, const Product::UrlList & obj );
211 
213 } // namespace zypp
215 #endif // ZYPP_PRODUCT_H