libzypp  11.13.5
WhatObsoletes.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_SAT_WHATOBSOLETES_H
13 #define ZYPP_SAT_WHATOBSOLETES_H
14 
15 #include <iosfwd>
16 #include <vector>
17 
18 #include "zypp/sat/WhatProvides.h"
19 
21 namespace zypp
22 {
23 
24  namespace sat
25  {
26 
28  //
29  // CLASS NAME : WhatObsoletes
30  //
36  class WhatObsoletes : public SolvIterMixin<WhatObsoletes,detail::WhatProvidesIterator>,
37  protected detail::PoolMember
38  {
39  public:
41  typedef unsigned size_type;
42 
43  public:
46  : _begin( 0 )
47  {}
48 
50  explicit
51  WhatObsoletes( Solvable item_r );
52 
54  explicit
55  WhatObsoletes( const PoolItem & item_r );
56 
58  explicit
59  WhatObsoletes( const ResObject_constPtr item_r );
60 
62  template <class _Iterator>
63  WhatObsoletes( _Iterator begin, _Iterator end )
64  : _begin( 0 )
65  {
66  for_( it, begin, end )
67  ctorAdd( *it );
68  ctorDone();
69  }
70 
71  public:
73  bool empty() const
74  { return ! ( _begin && *_begin ); }
75 
77  size_type size() const;
78 
79  public:
81 
84  { return const_iterator( _begin ); }
85 
88  { return const_iterator(); }
89 
90  private:
91  void ctorAdd( const PoolItem & item_r );
92  void ctorAdd( ResObject_constPtr item_r );
93  void ctorAdd( Solvable item_r );
94  void ctorDone();
95 
96  private:
98  shared_ptr<void> _private;
99  };
101 
103  std::ostream & operator<<( std::ostream & str, const WhatObsoletes & obj );
104 
106  } // namespace sat
109 } // namespace zypp
111 #endif // ZYPP_SAT_WHATOBSOLETES_H