1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
10 #ifndef ZYPP_REPO_DELTACANDIDATES_H
11 #define ZYPP_REPO_DELTACANDIDATES_H
16 #include "zypp/base/PtrTypes.h"
17 #include "zypp/base/Function.h"
18 #include "zypp/repo/PackageDelta.h"
19 #include "zypp/Repository.h"
20 #include "zypp/Package.h"
22 ///////////////////////////////////////////////////////////////////
24 { /////////////////////////////////////////////////////////////////
25 ///////////////////////////////////////////////////////////////////
27 { /////////////////////////////////////////////////////////////////
30 * \short Candidate delta and patches for a package
32 * Basically a container that given N repositories,
33 * gets all patches and deltas from them for a given
38 friend std::ostream & operator<<( std::ostream & str, const DeltaCandidates & obj );
47 * \short Creates a candidate calculator
48 * \param repos Set of repositories providing patch and delta packages
50 DeltaCandidates( const std::list<Repository> & repos, const std::string & pkgname = "" );
54 std::list<packagedelta::DeltaRpm> deltaRpms(const Package::constPtr & package) const;
57 /** Pointer to implementation */
58 RWCOW_pointer<Impl> _pimpl;
60 ///////////////////////////////////////////////////////////////////
62 /** \relates DeltaCandidates Stream output */
63 std::ostream & operator<<( std::ostream & str, const DeltaCandidates & obj );
65 ///////////////////////////////////////////////////////////////////
67 /** \relates DeltaCandidates Convenient construction.
68 * \todo templated ctor
70 template<class RepoIter>
71 inline DeltaCandidates makeDeltaCandidates( RepoIter begin_r, RepoIter end_r )
72 { return DeltaCandidates( std::list<Repository>( begin_r, end_r ) ); }
74 /** \relates DeltaCandidates Convenient construction.
75 * \todo templated ctor
77 template<class RepoContainer>
78 inline DeltaCandidates makeDeltaCandidates( const RepoContainer & cont_r )
79 { return makeDeltaCandidates( cont_r.begin(), cont_r.end() ); }
82 /////////////////////////////////////////////////////////////////
84 ///////////////////////////////////////////////////////////////////
85 /////////////////////////////////////////////////////////////////
87 ///////////////////////////////////////////////////////////////////
88 #endif // ZYPP_REPO_DELTACANDIDATES_H