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
53 class ZYpp : public base::ReferenceCounted, private base::NonCopyable
57 typedef intrusive_ptr<ZYpp> Ptr;
58 typedef intrusive_ptr<const ZYpp> constPtr;
62 /** Pool of ResStatus for individual ResObjetcs. */
65 /** Pool of ui::Selectable.
66 * Based on the ResPool, ui::Selectable groups ResObjetcs of
69 ResPoolProxy poolProxy() const;
72 //SourceFeed_Ref sourceFeed() const;
74 void addResolvables (const ResStore& store, bool installed = false);
76 void removeResolvables (const ResStore& store);
78 DiskUsageCounter::MountPointSet diskUsage();
80 void setPartitions(const DiskUsageCounter::MountPointSet &mp);
83 ZYPP_DEPRECATED void reset() {}
88 Target_Ptr target() const;
92 * if commit_only == true, just init, don't populate store or pool
94 void initTarget(const Pathname & root, bool commit_only = false);
103 typedef ZYppCommitResult CommitResult;
105 /** Commit changes and transactions.
106 * \param \ref CommitPolicy
107 * \return \ref CommitResult
110 ZYppCommitResult commit( const ZYppCommitPolicy & policy_r );
112 ZYPP_DEPRECATED ZYppCommitResult commit( int medianr_r, bool dry_run = false )
114 ZYppCommitPolicy policy;
115 policy.restrictToMedia( medianr_r ).dryRun( dry_run );
116 return commit( policy );
122 Resolver_Ptr resolver() const;
123 KeyRing_Ptr keyRing() const;
125 /** Set the preferd locale for translated labels, descriptions,
126 * etc. passed to the UI.
128 void setTextLocale( const Locale & textLocale_r );
130 Locale getTextLocale() const;
133 typedef std::set<Locale> LocaleSet;
134 /** Set the requested locales.
135 * Languages to be supported by the system, e.g. language specific
136 * packages to be installed.
138 void setRequestedLocales( const LocaleSet & locales_r );
140 LocaleSet getRequestedLocales() const;
143 * Get the set of available locales.
144 * This is computed from the package data so it actually
145 * represents all locales packages claim to support.
147 LocaleSet getAvailableLocales() const;
152 void availableLocale( const Locale & locale_r );
155 /** Get the path where zypp related plugins store persistent data and caches */
156 Pathname homePath() const;
157 /** set the home, if you need to change it */
158 void setHomePath( const Pathname & path );
160 /** Get the system architecture. */
161 Arch architecture() const;
162 /** Set the system architecture.
163 This should be used for testing/debugging only since the Target backend
164 won't be able to install incompatible packages ;-) */
165 void setArchitecture( const Arch & arch );
171 virtual std::ostream & dumpOn( std::ostream & str ) const;
174 friend class ZYppFactory;
177 typedef zypp_detail::ZYppImpl Impl;
178 typedef shared_ptr<Impl> Impl_Ptr;
181 ZYpp( const Impl_Ptr & impl_r );
183 /** Pointer to implementation */
184 RW_pointer<Impl> _pimpl;
186 ///////////////////////////////////////////////////////////////////
188 /////////////////////////////////////////////////////////////////
190 ///////////////////////////////////////////////////////////////////
191 #endif // ZYPP_ZYPP_H