libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
PoolItemBest.h
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#ifndef ZYPP_POOLITEMBEST_H
13
#define ZYPP_POOLITEMBEST_H
14
15
#include <iosfwd>
16
17
#include "
zypp/base/PtrTypes.h
"
18
#include "
zypp/base/Function.h
"
19
#include "
zypp/base/Iterator.h
"
20
#include "
zypp/base/Tr1hash.h
"
21
22
#include "
zypp/PoolItem.h
"
23
25
namespace
zypp
26
{
27
29
//
30
// CLASS NAME : PoolItemBest
31
//
60
class
PoolItemBest
61
{
62
typedef
std::tr1::unordered_map<IdString,PoolItem>
Container
;
63
public
:
65
typedef
boost::function<bool ( const PoolItem & lhs, const PoolItem & rhs )>
Predicate
;
66
67
typedef
Container::size_type
size_type
;
68
typedef
Container::value_type
value_type
;
69
typedef
MapKVIteratorTraits<Container>::Value_const_iterator
iterator
;
70
typedef
MapKVIteratorTraits<Container>::Key_const_iterator
ident_iterator
;
71
72
public
:
74
PoolItemBest
()
75
{}
76
78
PoolItemBest
(
sat::Solvable
slv_r )
79
{
_ctor_init
();
add
( slv_r ); }
80
82
PoolItemBest
(
const
PoolItem
& pi_r )
83
{
_ctor_init
();
add
( pi_r ); }
84
86
template
<
class
_Iterator>
87
PoolItemBest
( _Iterator begin_r, _Iterator end_r )
88
{
_ctor_init
();
add
( begin_r, end_r ); }
89
90
public
:
92
void
add
(
sat::Solvable
slv_r )
93
{
add
(
PoolItem
( slv_r ) ); }
94
96
void
add
(
const
PoolItem
& pi_r );
97
99
template
<
class
_Iterator>
100
void
add
( _Iterator begin_r, _Iterator end_r )
101
{
102
for_
( it, begin_r, end_r )
103
add
( *it );
104
}
105
106
public
:
110
bool
empty
()
const
{
return
container
().empty(); }
112
size_type
size
()
const
{
return
container
().size(); }
114
iterator
begin
()
const
{
return
make_map_value_begin
(
container
() ); }
116
iterator
end
()
const
{
return
make_map_value_end
(
container
() ); }
117
119
PoolItem
find
(
IdString
ident_r )
const
;
121
PoolItem
find
(
sat::Solvable
slv_r )
const
{
return
find
( slv_r.
ident
() ); }
123
PoolItem
find
(
const
PoolItem
& pi_r )
const
{
return
find
( pi_r.
satSolvable
().
ident
() ); }
125
129
ident_iterator
identBegin
()
const
{
return
make_map_key_begin
(
container
() ); }
131
ident_iterator
identEnd
()
const
{
return
make_map_key_end
(
container
() ); }
133
134
private
:
135
void
_ctor_init
();
136
const
Container
&
container
()
const
;
137
private
:
139
class
Impl;
141
RWCOW_pointer<Impl>
&
pimpl
() {
return
*(
reinterpret_cast<
RWCOW_pointer<Impl>
*
>
(
_dont_use_this_use_pimpl
.get() )); }
143
const
RWCOW_pointer<Impl>
&
pimpl
()
const
{
return
*(
reinterpret_cast<
RWCOW_pointer<Impl>
*
>
(
_dont_use_this_use_pimpl
.get() )); }
145
shared_ptr<void>
_dont_use_this_use_pimpl
;
146
};
148
150
std::ostream &
operator<<
( std::ostream & str,
const
PoolItemBest
& obj );
151
153
}
// namespace zypp
155
#endif // ZYPP_POOLITEMBEST_H
zypp
PoolItemBest.h
Generated by
1.8.1