- fixed ResPoolManager insert/erase to follow Impl pointer.
[platform/upstream/libzypp.git] / zypp / pool / PoolImpl.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/pool/PoolImpl.h
10  *
11 */
12 #ifndef ZYPP_POOL_POOLIMPL_H
13 #define ZYPP_POOL_POOLIMPL_H
14
15 #include <iosfwd>
16
17 #include "zypp/pool/PoolTraits.h"
18
19 ///////////////////////////////////////////////////////////////////
20 namespace zypp
21 { /////////////////////////////////////////////////////////////////
22   ///////////////////////////////////////////////////////////////////
23   namespace pool
24   { /////////////////////////////////////////////////////////////////
25
26     ///////////////////////////////////////////////////////////////////
27     //
28     //  CLASS NAME : PoolImpl
29     //
30     /** */
31     class PoolImpl
32     {
33       friend std::ostream & operator<<( std::ostream & str, const PoolImpl & obj );
34
35     public:
36     /** */
37     typedef PoolTraits::Item           Item;
38     typedef PoolTraits::ContainerT     ContainerT;
39     typedef PoolTraits::size_type      size_type;
40     typedef PoolTraits::iterator       iterator;
41     typedef PoolTraits::const_iterator const_iterator;
42     typedef PoolTraits::Inserter       Inserter;
43     typedef PoolTraits::Deleter        Deleter;
44
45     public:
46       /** Default ctor */
47       PoolImpl();
48       /** Dtor */
49       ~PoolImpl();
50
51     public:
52       /**  */
53       ContainerT & store()
54       { return _store; }
55       /**  */
56       const ContainerT & store() const
57       { return _store; }
58
59       /**  */
60       bool empty() const
61       { return _store.empty(); }
62       /**  */
63       size_type size() const
64       { return _store.size(); }
65
66       /** */
67       iterator begin()
68       { return _store.begin(); }
69       /** */
70       const_iterator begin() const
71       { return _store.begin(); }
72
73       /** */
74       iterator end()
75       { return _store.end(); }
76       /** */
77       const_iterator end() const
78       { return _store.end(); }
79
80       /** */
81       void clear()
82       { return _store.clear(); }
83
84     public:
85       /** */
86       ContainerT _store;
87     };
88     ///////////////////////////////////////////////////////////////////
89
90     /** \relates PoolImpl Stream output */
91     std::ostream & operator<<( std::ostream & str, const PoolImpl & obj );
92
93     /////////////////////////////////////////////////////////////////
94   } // namespace pool
95   ///////////////////////////////////////////////////////////////////
96   /////////////////////////////////////////////////////////////////
97 } // namespace zypp
98 ///////////////////////////////////////////////////////////////////
99 #endif // ZYPP_POOL_POOLIMPL_H