libzypp  17.5.0
Target.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_TARGET_H
13 #define ZYPP_TARGET_H
14 
15 #include <iosfwd>
16 
18 #include "zypp/base/NonCopyable.h"
19 #include "zypp/base/PtrTypes.h"
20 #include "zypp/APIConfig.h"
21 
22 #include "zypp/Product.h"
23 #include "zypp/Pathname.h"
24 #include "zypp/ResPool.h"
25 
27 namespace zypp
28 {
29  namespace target
30  {
31  class TargetImpl;
32  namespace rpm {
33  class RpmDb;
34  }
35  }
36  namespace zypp_detail
37  {
38  class ZYppImpl;
39  }
40 
42 
44  //
45  // CLASS NAME : Target
46  //
50  {
51  public:
53  typedef intrusive_ptr<Impl> Impl_Ptr;
54  typedef std::list<PoolItem> PoolItemList;
55 
56  public:
57 
61  void buildCache();
62 
66  void cleanCache();
67 
71  void load();
72 
73  void reload();
74 
79  void unload();
80 
83 
86  bool providesFile (const std::string & name_str, const std::string & path_str) const;
87 
91  std::string whoOwnsFile (const std::string & path_str) const;
92 
94  Pathname root() const;
95 
97  Pathname assertRootPrefix( const Pathname & path_r ) const
98  { return Pathname::assertprefix( root(), path_r ); }
99 
101  Date timestamp() const;
102 
120 
125  LocaleSet requestedLocales() const;
128  static LocaleSet requestedLocales( const Pathname & root_r );
129 
133  void updateAutoInstalled();
134 
135  public:
147  std::string targetDistribution() const;
149  static std::string targetDistribution( const Pathname & root_r );
150 
154  std::string targetDistributionRelease() const;
156  static std::string targetDistributionRelease( const Pathname & root_r );
157 
162  std::string targetDistributionFlavor() const;
164  static std::string targetDistributionFlavor( const Pathname & root_r );
165 
166  struct DistributionLabel { std::string shortName; std::string summary; };
172  static DistributionLabel distributionLabel( const Pathname & root_r );
173 
178  std::string distributionVersion() const;
180  static std::string distributionVersion( const Pathname & root_r );
181 
190  std::string distributionFlavor() const;
192  static std::string distributionFlavor( const Pathname & root_r );
193 
202  std::string anonymousUniqueId() const;
204  static std::string anonymousUniqueId( const Pathname & root_r );
206 
207  public:
211  explicit
212  Target( const Pathname & root = "/", bool doRebuild_r = false );
214  explicit
215  Target( const Impl_Ptr & impl_r );
216 
217  private:
218  friend std::ostream & operator<<( std::ostream & str, const Target & obj );
220  std::ostream & dumpOn( std::ostream & str ) const;
221 
222  private:
224  friend class zypp_detail::ZYppImpl;
225 
228  };
230 
232  inline std::ostream & operator<<( std::ostream & str, const Target & obj )
233  { return obj.dumpOn( str ); }
234 
242  std::ostream & operator<<( std::ostream & str, const Target::DistributionLabel & obj );
243 
245 } // namespace zypp
247 #endif // ZYPP_TARGET_H
std::string targetDistribution() const
This is register.target attribute of the installed base product.
Definition: Target.cc:105
Interface to the rpm program.
Definition: RpmDb.h:47
std::string distributionVersion() const
This is version attribute of the installed base product.
Definition: Target.cc:125
std::ostream & operator<<(std::ostream &str, const Target &obj)
Definition: Target.h:232
void cleanCache()
cleans the target cache (.solv files)
Definition: Target.cc:64
bool providesFile(const std::string &name_str, const std::string &path_str) const
If the package is installed and provides the file Needed to evaluate split provides during Resolver::...
Definition: Target.cc:82
void reload()
Definition: Target.cc:70
String related utilities and Regular expression matching.
TraitsType::constPtrType constPtr
Definition: Product.h:38
std::string whoOwnsFile(const std::string &path_str) const
Return name of package owning path_str or empty string if no installed package owns path_str...
Definition: Target.cc:85
target::rpm::RpmDb & rpmDb()
Refference to the RPM database.
Definition: Target.cc:76
target::TargetImpl Impl
Definition: Target.h:52
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Definition: NonCopyable.h:26
Store and operate on date (time_t).
Definition: Date.h:32
Base class for concrete Target implementations.
Definition: TargetImpl.h:53
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
LocaleSet requestedLocales() const
Languages to be supported by the system.
Definition: Target.cc:97
DEFINE_PTR_TYPE(Application)
Provides API related macros.
RW_pointer< Impl, rw_pointer::Intrusive< Impl > > _pimpl
Pointer to implementation.
Definition: Target.h:227
static Pathname assertprefix(const Pathname &root_r, const Pathname &path_r)
Return path_r prefixed with root_r, unless it is already prefixed.
Definition: Pathname.cc:235
Product::constPtr baseProduct() const
returns the target base installed product, also known as the distribution or platform.
Definition: Target.cc:94
intrusive_ptr< Impl > Impl_Ptr
Definition: Target.h:53
void buildCache()
builds or refreshes the target cache
Definition: Target.cc:61
Base class for reference counted objects.
std::string targetDistributionRelease() const
This is register.release attribute of the installed base product.
Definition: Target.cc:110
Date timestamp() const
return the last modification date of the target
Definition: Target.cc:91
Pathname assertRootPrefix(const Pathname &path_r) const
Return the path prefixed by the target root, unless it already is prefixed.
Definition: Target.h:97
void load()
load resolvables into the pool
Definition: Target.cc:67
void unload()
unload target resolvables from the pool
Definition: Target.cc:73
DistributionLabel distributionLabel() const
This is shortName and summary attribute of the installed base product.
Definition: Target.cc:120
Target(const Pathname &root="/", bool doRebuild_r=false)
Ctor.
Definition: Target.cc:32
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:285
friend std::ostream & operator<<(std::ostream &str, const Target &obj)
std::ostream & dumpOn(std::ostream &str) const
Stream output.
Definition: Target.cc:88
std::string anonymousUniqueId() const
anonymous unique id
Definition: Target.cc:135
void updateAutoInstalled()
Update the database of autoinstalled packages.
Definition: Target.cc:102
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
std::string distributionFlavor() const
This is flavor attribute of the installed base product but does not require the target to be loaded a...
Definition: Target.cc:130
std::unordered_set< Locale > LocaleSet
Definition: Locale.h:27
std::list< PoolItem > PoolItemList
Definition: Target.h:54
Pathname root() const
Return the root set for this target.
Definition: Target.cc:79
std::string targetDistributionFlavor() const
This is register.flavor attribute of the installed base product.
Definition: Target.cc:115