libzypp 17.31.23
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
17#include <zypp/base/ReferenceCounted.h>
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
27namespace 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
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:
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
Provides API related macros.
TraitsType::constPtrType constPtr
Definition: Product.h:38
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
Pathname root() const
Return the root set for this target.
Definition: Target.cc:79
std::string anonymousUniqueId() const
anonymous unique id
Definition: Target.cc:132
void reload()
Definition: Target.cc:70
bool chrooted() const
Whether the targets root is not "/".
Definition: Target.h:98
target::TargetImpl Impl
Definition: Target.h:53
std::ostream & dumpOn(std::ostream &str) const
Stream output.
Definition: Target.cc:88
Product::constPtr baseProduct() const
returns the target base installed product, also known as the distribution or platform.
Definition: Target.cc:91
std::string targetDistribution() const
This is register.target attribute of the installed base product.
Definition: Target.cc:102
std::string targetDistributionRelease() const
This is register.release attribute of the installed base product.
Definition: Target.cc:107
LocaleSet requestedLocales() const
Languages to be supported by the system.
Definition: Target.cc:94
target::rpm::RpmDb & rpmDb()
Refference to the RPM database.
Definition: Target.cc:76
std::list< PoolItem > PoolItemList
Definition: Target.h:55
void buildCache()
builds or refreshes the target cache
Definition: Target.cc:61
Pathname assertRootPrefix(const Pathname &path_r) const
Return the path prefixed by the target root, unless it already is prefixed.
Definition: Target.h:102
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
RW_pointer< Impl, rw_pointer::Intrusive< Impl > > _pimpl
Pointer to implementation.
Definition: Target.h:242
const VendorAttr & vendorAttr() const
The targets current vendor equivalence settings.
Definition: Target.cc:137
std::string targetDistributionFlavor() const
This is register.flavor attribute of the installed base product.
Definition: Target.cc:112
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
friend std::ostream & operator<<(std::ostream &str, const Target &obj)
void updateAutoInstalled()
Update the database of autoinstalled packages.
Definition: Target.cc:99
void unload()
unload target resolvables from the pool
Definition: Target.cc:73
std::string distributionVersion() const
This is version attribute of the installed base product.
Definition: Target.cc:122
void cleanCache()
cleans the target cache (.solv files)
Definition: Target.cc:64
intrusive_ptr< Impl > Impl_Ptr
Definition: Target.h:54
DistributionLabel distributionLabel() const
This is shortName and summary attribute of the installed base product.
Definition: Target.cc:117
void load()
load resolvables into the pool
Definition: Target.cc:67
Definition of vendor equivalence.
Definition: VendorAttr.h:61
Base class for reference counted objects.
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:272
Base class for concrete Target implementations.
Definition: TargetImpl.h:54
Interface to the rpm program.
Definition: RpmDb.h:50
String related utilities and Regular expression matching.
boost::noncopyable NonCopyable
Ensure derived classes cannot be copied.
Definition: NonCopyable.h:26
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
std::unordered_set< Locale > LocaleSet
Definition: Locale.h:28
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition: SerialNumber.cc:52
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:286
#define DEFINE_PTR_TYPE(NAME)
Forward declaration of Ptr types.
Definition: PtrTypes.h:623