1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
17 #include "zypp/base/ReferenceCounted.h"
18 #include "zypp/base/NonCopyable.h"
19 #include "zypp/base/PtrTypes.h"
21 #include "zypp/base/Deprecated.h"
22 #include "zypp/ZYppCommit.h"
24 #include "zypp/Target.h"
25 #include "zypp/Resolver.h"
26 #include "zypp/KeyRing.h"
27 #include "zypp/DiskUsageCounter.h"
29 ///////////////////////////////////////////////////////////////////
31 { /////////////////////////////////////////////////////////////////
46 ///////////////////////////////////////////////////////////////////
51 * \todo define Exceptions
52 * ZYpp API main interface
54 class ZYpp : public base::ReferenceCounted, private base::NonCopyable
58 typedef intrusive_ptr<ZYpp> Ptr;
59 typedef intrusive_ptr<const ZYpp> constPtr;
64 * Access to the main resolvable pool
69 /** Pool of ui::Selectable.
70 * Based on the ResPool, ui::Selectable groups ResObjetcs of
73 ResPoolProxy poolProxy() const;
76 //SourceFeed_Ref sourceFeed() const;
78 void addResolvables (const ResStore& store, bool installed = false);
80 void removeResolvables (const ResStore& store);
82 DiskUsageCounter::MountPointSet diskUsage();
84 void setPartitions(const DiskUsageCounter::MountPointSet &mp);
86 DiskUsageCounter::MountPointSet getPartitions() const;
92 Target_Ptr target() const;
96 * just init the target, dont populate store or pool
98 void initializeTarget(const Pathname & root);
102 * if commit_only == true, just init the target, dont populate store or pool
104 ZYPP_DEPRECATED void initTarget(const Pathname & root, bool commit_only = false);
113 typedef ZYppCommitResult CommitResult;
115 /** Commit changes and transactions.
116 * \param \ref CommitPolicy
117 * \return \ref CommitResult
120 ZYppCommitResult commit( const ZYppCommitPolicy & policy_r );
124 Resolver_Ptr resolver() const;
125 KeyRing_Ptr keyRing() const;
127 /** Set the preferred locale for translated labels, descriptions,
128 * etc. passed to the UI.
130 void setTextLocale( const Locale & textLocale_r );
132 Locale getTextLocale() const;
135 typedef std::set<Locale> LocaleSet;
136 /** Set the requested locales.
137 * Languages to be supported by the system, e.g. language specific
138 * packages to be installed. This function operates on the pool,
139 * so only the locales that are available as resolvables
140 * are marked as requested. The rest is ignored.
142 void setRequestedLocales( const LocaleSet & locales_r );
144 LocaleSet getRequestedLocales() const;
147 * Get the set of available locales.
148 * This is computed from the package data so it actually
149 * represents all locales packages claim to support.
151 LocaleSet getAvailableLocales() const;
156 void availableLocale( const Locale & locale_r );
159 /** Get the path where zypp related plugins store persistent data and caches */
160 Pathname homePath() const;
162 /** Get the path where zypp related plugins store temp data */
163 Pathname tmpPath() const;
165 /** set the home, if you need to change it */
166 void setHomePath( const Pathname & path );
168 /** Get the system architecture. */
169 Arch architecture() const;
170 /** Set the system architecture.
171 This should be used for testing/debugging only since the Target backend
172 won't be able to install incompatible packages ;-) */
173 void setArchitecture( const Arch & arch );
179 virtual std::ostream & dumpOn( std::ostream & str ) const;
182 friend class ZYppFactory;
185 typedef zypp_detail::ZYppImpl Impl;
186 typedef shared_ptr<Impl> Impl_Ptr;
189 ZYpp( const Impl_Ptr & impl_r );
191 /** Pointer to implementation */
192 RW_pointer<Impl> _pimpl;
194 ///////////////////////////////////////////////////////////////////
196 /////////////////////////////////////////////////////////////////
198 ///////////////////////////////////////////////////////////////////
199 #endif // ZYPP_ZYPP_H