libzypp  17.25.1
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  class VendorAttr;
30  namespace target
31  {
32  class TargetImpl;
33  namespace rpm {
34  class RpmDb;
35  }
36  }
37  namespace zypp_detail
38  {
39  class ZYppImpl;
40  }
41 
43 
45  //
46  // CLASS NAME : Target
47  //
51  {
52  public:
54  typedef intrusive_ptr<Impl> Impl_Ptr;
55  typedef std::list<PoolItem> PoolItemList;
56 
57  public:
58 
62  void buildCache();
63 
67  void cleanCache();
68 
72  void load();
73 
74  void reload();
75 
80  void unload();
81 
84 
87  bool providesFile (const std::string & name_str, const std::string & path_str) const;
88 
92  std::string whoOwnsFile (const std::string & path_str) const;
93 
95  Pathname root() const;
96 
98  bool chrooted() const
99  { return( ! root().emptyOrRoot() ); }
100 
102  Pathname assertRootPrefix( const Pathname & path_r ) const
103  { return Pathname::assertprefix( root(), path_r ); }
104 
122 
127  LocaleSet requestedLocales() const;
130  static LocaleSet requestedLocales( const Pathname & root_r );
131 
135  void updateAutoInstalled();
136 
137  public:
149  std::string targetDistribution() const;
151  static std::string targetDistribution( const Pathname & root_r );
152 
156  std::string targetDistributionRelease() const;
158  static std::string targetDistributionRelease( const Pathname & root_r );
159 
164  std::string targetDistributionFlavor() const;
166  static std::string targetDistributionFlavor( const Pathname & root_r );
167 
168  struct DistributionLabel { std::string shortName; std::string summary; };
174  static DistributionLabel distributionLabel( const Pathname & root_r );
175 
180  std::string distributionVersion() const;
182  static std::string distributionVersion( const Pathname & root_r );
183 
192  std::string distributionFlavor() const;
194  static std::string distributionFlavor( const Pathname & root_r );
195 
204  std::string anonymousUniqueId() const;
206  static std::string anonymousUniqueId( const Pathname & root_r );
208 
209  public:
217  const VendorAttr & vendorAttr() const;
219  void vendorAttr( VendorAttr vendorAttr_r );
221 
222  public:
226  explicit
227  Target( const Pathname & root = "/", bool doRebuild_r = false );
229  explicit
230  Target( const Impl_Ptr & impl_r );
231 
232  private:
233  friend std::ostream & operator<<( std::ostream & str, const Target & obj );
235  std::ostream & dumpOn( std::ostream & str ) const;
236 
237  private:
239  friend class zypp_detail::ZYppImpl;
240 
243  };
245 
247  inline std::ostream & operator<<( std::ostream & str, const Target & obj )
248  { return obj.dumpOn( str ); }
249 
257  std::ostream & operator<<( std::ostream & str, const Target::DistributionLabel & obj );
258 
260 } // namespace zypp
262 #endif // ZYPP_TARGET_H
ResPool.h
zypp::Target::targetDistributionFlavor
std::string targetDistributionFlavor() const
This is register.flavor attribute of the installed base product.
Definition: Target.cc:112
zypp::Target::distributionFlavor
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:127
zypp::Target::operator<<
std::ostream & operator<<(std::ostream &str, const Target &obj)
Definition: Target.h:247
zypp::DEFINE_PTR_TYPE
DEFINE_PTR_TYPE(Application)
zypp::Target::root
Pathname root() const
Return the root set for this target.
Definition: Target.cc:79
zypp::Target
Definition: Target.h:50
zypp::Target::DistributionLabel
Definition: Target.h:168
zypp::Target::DistributionLabel::summary
std::string summary
Definition: Target.h:168
zypp::Target::cleanCache
void cleanCache()
cleans the target cache (.solv files)
Definition: Target.cc:64
zypp::Target::targetDistribution
std::string targetDistribution() const
This is register.target attribute of the installed base product.
Definition: Target.cc:102
zypp::Product::constPtr
TraitsType::constPtrType constPtr
Definition: Product.h:38
zypp::Target::reload
void reload()
Definition: Target.cc:70
zypp::Target::Impl
target::TargetImpl Impl
Definition: Target.h:53
zypp::base::ReferenceCounted
Base class for reference counted objects.
Definition: ReferenceCounted.h:33
PtrTypes.h
zypp::Target::chrooted
bool chrooted() const
Whether the targets root is not "/".
Definition: Target.h:98
zypp::VendorAttr
Definition of vendor equivalence.
Definition: VendorAttr.h:60
zypp::filesystem::Pathname::assertprefix
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
zypp::Target::providesFile
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
Product.h
Pathname.h
zypp::Target::whoOwnsFile
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
zypp::Target::rpmDb
target::rpm::RpmDb & rpmDb()
Refference to the RPM database.
Definition: Target.cc:76
zypp::Target::requestedLocales
LocaleSet requestedLocales() const
Languages to be supported by the system.
Definition: Target.cc:94
zypp::RW_pointer
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:285
zypp::target::TargetImpl
Base class for concrete Target implementations.
Definition: TargetImpl.h:54
zypp::base::NonCopyable
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Definition: NonCopyable.h:26
zypp::Target::Impl_Ptr
intrusive_ptr< Impl > Impl_Ptr
Definition: Target.h:54
zypp::target::rpm::RpmDb
Interface to the rpm program.
Definition: RpmDb.h:47
zypp::Target::baseProduct
Product::constPtr baseProduct() const
returns the target base installed product, also known as the distribution or platform.
Definition: Target.cc:91
zypp::Target::DistributionLabel::shortName
std::string shortName
Definition: Target.h:168
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
zypp::Target::_pimpl
RW_pointer< Impl, rw_pointer::Intrusive< Impl > > _pimpl
Pointer to implementation.
Definition: Target.h:242
zypp::Target::targetDistributionRelease
std::string targetDistributionRelease() const
This is register.release attribute of the installed base product.
Definition: Target.cc:107
zypp::Target::load
void load()
load resolvables into the pool
Definition: Target.cc:67
zypp::Target::unload
void unload()
unload target resolvables from the pool
Definition: Target.cc:73
zypp::Target::distributionLabel
DistributionLabel distributionLabel() const
This is shortName and summary attribute of the installed base product.
Definition: Target.cc:117
zypp::zypp_detail::ZYppImpl
Definition: ZYppImpl.h:38
zypp::Target::buildCache
void buildCache()
builds or refreshes the target cache
Definition: Target.cc:61
zypp::Target::operator<<
friend std::ostream & operator<<(std::ostream &str, const Target &obj)
zypp::Target::dumpOn
std::ostream & dumpOn(std::ostream &str) const
Stream output.
Definition: Target.cc:88
zypp::Target::anonymousUniqueId
std::string anonymousUniqueId() const
anonymous unique id
Definition: Target.cc:132
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
ReferenceCounted.h
zypp::Target::assertRootPrefix
Pathname assertRootPrefix(const Pathname &path_r) const
Return the path prefixed by the target root, unless it already is prefixed.
Definition: Target.h:102
zypp::LocaleSet
std::unordered_set< Locale > LocaleSet
Definition: Locale.h:27
zypp::filesystem::Pathname
Pathname.
Definition: Pathname.h:44
zypp::Target::Target
Target(const Pathname &root="/", bool doRebuild_r=false)
Ctor.
Definition: Target.cc:32
zypp::Target::vendorAttr
const VendorAttr & vendorAttr() const
The targets current vendor equivalence settings.
Definition: Target.cc:137
zypp::Target::updateAutoInstalled
void updateAutoInstalled()
Update the database of autoinstalled packages.
Definition: Target.cc:99
str
String related utilities and Regular expression matching.
zypp::Target::distributionVersion
std::string distributionVersion() const
This is version attribute of the installed base product.
Definition: Target.cc:122
zypp::Target::PoolItemList
std::list< PoolItem > PoolItemList
Definition: Target.h:55
NonCopyable.h