Enabled Pool to handle automatic soft-locks,
[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_Ptr( 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_Ptr 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
70   ResPool::size_type ResPool::knownRepositoriesSize() const
71   { return _pimpl->knownRepositoriesSize(); }
72
73   ResPool::repository_iterator ResPool::knownRepositoriesBegin() const
74   { return _pimpl->knownRepositoriesBegin(); }
75
76   ResPool::repository_iterator ResPool::knownRepositoriesEnd() const
77   { return _pimpl->knownRepositoriesEnd(); }
78
79
80   bool ResPool::autoSoftLocksEmpty() const
81   { return _pimpl->autoSoftLocks().empty(); }
82
83   ResPool::size_type ResPool::autoSoftLocksSize() const
84   { return _pimpl->autoSoftLocks().size(); }
85
86   ResPool::autoSoftLocks_iterator ResPool::autoSoftLocksBegin() const
87   { return _pimpl->autoSoftLocks().begin(); }
88
89   ResPool::autoSoftLocks_iterator ResPool::autoSoftLocksEnd() const
90   { return _pimpl->autoSoftLocks().end(); }
91
92   void ResPool::setAutoSoftLocks( const AutoSoftLocks & newLocks_r )
93   { _pimpl->setAutoSoftLocks( newLocks_r ); }
94
95   void ResPool::getActiveSoftLocks( AutoSoftLocks & activeLocks_r )
96   { _pimpl->getActiveSoftLocks( activeLocks_r ); }
97
98   const pool::PoolTraits::ItemContainerT & ResPool::store() const
99   { return _pimpl->store(); }
100
101   const pool::PoolTraits::Id2ItemT & ResPool::id2item() const
102   { return _pimpl->id2item(); }
103
104   ///////////////////////////////////////////////////////////////////
105   //
106   // Forward to sat::Pool:
107   //
108   ///////////////////////////////////////////////////////////////////
109   void ResPool::setRequestedLocales( const LocaleSet & locales_r )
110   { sat::Pool::instance().setRequestedLocales( locales_r ); }
111
112   bool ResPool::addRequestedLocale( const Locale & locale_r )
113   { return sat::Pool::instance().addRequestedLocale( locale_r ); }
114
115   bool ResPool::eraseRequestedLocale( const Locale & locale_r )
116   { return sat::Pool::instance().eraseRequestedLocale( locale_r ); }
117
118   const LocaleSet & ResPool::getRequestedLocales() const
119   { return sat::Pool::instance().getRequestedLocales(); }
120
121   bool ResPool::isRequestedLocale( const Locale & locale_r ) const
122   { return sat::Pool::instance().isRequestedLocale( locale_r ); }
123
124   const LocaleSet & ResPool::getAvailableLocales() const
125   { return sat::Pool::instance().getAvailableLocales(); }
126
127   bool ResPool::isAvailableLocale( const Locale & locale_r ) const
128   { return sat::Pool::instance().isAvailableLocale( locale_r ); }
129
130   /******************************************************************
131   **
132   **    FUNCTION NAME : operator<<
133   **    FUNCTION TYPE : std::ostream &
134   */
135   std::ostream & operator<<( std::ostream & str, const ResPool & obj )
136   {
137     return dumpPoolStats( str << "ResPool " << sat::Pool::instance() << endl << "  ",
138                           obj.begin(), obj.end() );
139   }
140
141   /////////////////////////////////////////////////////////////////
142 } // namespace zypp
143 ///////////////////////////////////////////////////////////////////