avoid map in PoolImpl
[platform/upstream/libzypp.git] / zypp / ResPool.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/ResPool.cc
10  *
11 */
12 #include <iostream>
13 //#include "zypp/base/Logger.h"
14
15 #include "zypp/base/SerialNumber.h"
16
17 #include "zypp/ResPool.h"
18 #include "zypp/pool/PoolImpl.h"
19 #include "zypp/pool/PoolStats.h"
20
21 using std::endl;
22
23 ///////////////////////////////////////////////////////////////////
24 namespace zypp
25 { /////////////////////////////////////////////////////////////////
26
27   ///////////////////////////////////////////////////////////////////
28   //
29   //    METHOD NAME : ResPool::instance
30   //    METHOD TYPE : ResPool
31   //
32   ResPool ResPool::instance()
33   {
34     static ResPool _val( pool::PoolTraits::Impl_constPtr( new pool::PoolImpl ) );
35     return _val;
36   }
37
38   ///////////////////////////////////////////////////////////////////
39   //
40   //    METHOD NAME : ResPool::ResPool
41   //    METHOD TYPE : Ctor
42   //
43   ResPool::ResPool( pool::PoolTraits::Impl_constPtr impl_r )
44   : _pimpl( impl_r )
45   {}
46
47   ///////////////////////////////////////////////////////////////////
48   //
49   // Forward to impementation:
50   //
51   ///////////////////////////////////////////////////////////////////
52
53   ResPoolProxy ResPool::proxy() const
54   { return _pimpl->proxy( *this ); }
55
56   const SerialNumber & ResPool::serial() const
57   { return _pimpl->serial(); }
58
59   bool ResPool::empty() const
60   { return _pimpl->empty(); }
61
62   ResPool::size_type ResPool::size() const
63   { return _pimpl->size(); }
64
65
66   PoolItem ResPool::find( const sat::Solvable & slv_r ) const
67   { return _pimpl->find( slv_r ); }
68
69   ResPool::byCapabilityIndex_iterator ResPool::byCapabilityIndexBegin( const std::string & index_r, Dep depType_r ) const
70   { return _pimpl->_caphashfake.begin(); }
71
72   ResPool::byCapabilityIndex_iterator ResPool::byCapabilityIndexEnd( const std::string & index_r, Dep depType_r ) const
73   { return _pimpl->_caphashfake.end(); }
74
75
76   ResPool::size_type ResPool::knownRepositoriesSize() const
77   { return _pimpl->knownRepositories().size(); }
78
79   ResPool::repository_iterator ResPool::knownRepositoriesBegin() const
80   { return _pimpl->knownRepositories().begin(); }
81
82   ResPool::repository_iterator ResPool::knownRepositoriesEnd() const
83   { return _pimpl->knownRepositories().end(); }
84
85
86   void ResPool::setAdditionalRequire( const AdditionalCapabilities & capset ) const
87   { _pimpl->setAdditionalRequire( capset ); }
88   ResPool::AdditionalCapabilities & ResPool::additionalRequire() const
89   { return _pimpl->additionalRequire(); }
90
91   void ResPool::setAdditionalConflict( const AdditionalCapabilities & capset ) const
92   { _pimpl->setAdditionalConflict( capset ); }
93   ResPool::AdditionalCapabilities & ResPool::additionaConflict() const
94   { return _pimpl->additionaConflict(); }
95
96   void ResPool::setAdditionalProvide( const AdditionalCapabilities & capset ) const
97   { _pimpl->setAdditionalProvide( capset ); }
98   ResPool::AdditionalCapabilities & ResPool::additionaProvide() const
99   { return _pimpl->additionaProvide(); }
100
101   const pool::PoolTraits::ItemContainerT & ResPool::store() const
102   { return _pimpl->store(); }
103
104   /******************************************************************
105   **
106   **    FUNCTION NAME : operator<<
107   **    FUNCTION TYPE : std::ostream &
108   */
109   std::ostream & operator<<( std::ostream & str, const ResPool & obj )
110   {
111     dumpPoolStats( str << "ResPool " << sat::Pool::instance() << endl << "  ",
112                             obj.begin(), obj.end() );
113   }
114
115   /////////////////////////////////////////////////////////////////
116 } // namespace zypp
117 ///////////////////////////////////////////////////////////////////