libzypp  12.16.5
ResObject.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_RESOBJECT_H
13 #define ZYPP_RESOBJECT_H
14 
15 #include "zypp/APIConfig.h"
16 
17 #include "zypp/Resolvable.h"
18 #include "zypp/Date.h"
19 #include "zypp/Locale.h"
20 #include "zypp/Vendor.h"
21 #include "zypp/ByteCount.h"
22 #include "zypp/DiskUsage.h"
23 #include "zypp/OnMediaLocation.h"
24 #include "zypp/Repository.h"
25 
26 #include "zypp/sat/LookupAttr.h"
27 #include "zypp/sat/SolvableSet.h"
28 
30 namespace zypp
31 {
32 
34  //
35  // CLASS NAME : ResObject
36  //
44  class ResObject : public Resolvable
45  {
46  public:
47  typedef ResObject Self;
51 
52  public:
53 
66  template<class _Res>
67  inline typename ResTraits<_Res>::constPtrType asKind() const;
68 
69  template<class _Res>
70  inline typename ResTraits<_Res>::PtrType asKind();
71 
72  public:
78  bool supportsLocales() const
79  { return sat::Solvable::supportsLocales(); }
80 
82  bool supportsLocale( const Locale & locale_r ) const
83  { return sat::Solvable::supportsLocale( locale_r ); }
84 
85  bool supportsLocale( const LocaleSet & locales_r ) const
86  { return sat::Solvable::supportsLocale( locales_r ); }
87 
91 
96 
97  public:
102  std::string summary( const Locale & lang_r = Locale() ) const;
103 
107  std::string description( const Locale & lang_r = Locale() ) const;
108 
115  std::string insnotify( const Locale & lang_r = Locale() ) const;
116 
123  std::string delnotify( const Locale & lang_r = Locale() ) const;
124 
131  std::string licenseToConfirm( const Locale & lang_r = Locale() ) const;
132 
139  bool needToAcceptLicense() const;
140 
146  Vendor vendor() const
147  { return Resolvable::vendor().asString(); }
148 
152  std::string distribution() const;
153 
160  std::string cpeId() const;
161 
163  ByteCount installSize() const;
164 
166  ByteCount downloadSize() const;
167 
170  { return sat::Solvable::repository(); }
171 
176  { return repository().info(); }
177 
182  unsigned mediaNr() const;
183 
187  Date buildtime() const;
188 
193  Date installtime() const;
194 
201  const DiskUsage & diskusage() const;
202 
203  protected:
204  friend ResObject::Ptr makeResObject( const sat::Solvable & solvable_r );
206  ResObject( const sat::Solvable & solvable_r );
208  virtual ~ResObject();
210  virtual std::ostream & dumpOn( std::ostream & str ) const;
211  };
213 
230  ResObject::Ptr makeResObject( const sat::Solvable & solvable_r );
231 
245  template<class _Res>
246  inline typename ResTraits<_Res>::PtrType make( const sat::Solvable & solvable_r )
247  { return( isKind<_Res>( solvable_r ) ? new _Res( solvable_r ) : 0 ); }
249  template<>
250  inline ResObject::Ptr make<ResObject>( const sat::Solvable & solvable_r )
251  { return makeResObject( solvable_r ); }
252 
254  template<class _Res>
255  inline typename ResTraits<_Res>::PtrType asKind( const sat::Solvable & solvable_r )
256  { return make<_Res>( solvable_r ); }
257 
266  template<class _Res>
267  inline typename ResTraits<_Res>::PtrType asKind( const ResObject::Ptr & p )
268  { return dynamic_pointer_cast<_Res>(p); }
269 
270  template<class _Res>
272  { return dynamic_pointer_cast<const _Res>(p); }
273 
274  template<class _Res>
276  { return dynamic_cast<const _Res *>( this ); }
277 
278  template<class _Res>
280  { return dynamic_cast<_Res *>( this ); }
281 
283 } // namespace zypp
285 #endif // ZYPP_RESOBJECT_H