libzypp  17.35.15
Queue.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
11 #ifndef ZYPP_SAT_QUEUE_H
12 #define ZYPP_SAT_QUEUE_H
13 
14 #include <iosfwd>
15 
16 #include <zypp/Globals.h>
17 #include <zypp/base/PtrTypes.h>
19 
21 namespace zypp
22 {
24  namespace sat
25  {
26  class Queue;
27  using SolvableQueue = Queue;
28  using StringQueue = Queue;
29 
36  {
37  public:
38  using size_type = unsigned int;
40  using const_iterator = const value_type *;
41 
42  public:
44  Queue();
45 
47  ~Queue();
48 
49  bool empty() const;
50  size_type size() const;
51  const_iterator begin() const;
52  const_iterator end() const;
53 
55  const_iterator find( value_type val_r ) const;
56 
58  bool contains( value_type val_r ) const
59  { return( find( val_r ) != end() ); }
60 
62  value_type first() const;
63 
65  value_type last() const;
66 
70  const value_type & at( size_type idx_r ) const;
71 
75  value_type & at( size_type idx_r );
76 
78  const value_type & operator[]( size_type idx_r ) const;
79 
81  value_type & operator[]( size_type idx_r );
82 
84  void clear();
85 
87  void remove( value_type val_r );
88 
90  void push( value_type val_r );
92  void push_back( value_type val_r )
93  { push( val_r ); }
94 
96  void pushUnique( value_type val_r );
97 
99  value_type pop();
102  { return pop(); }
103 
105  void push_front( value_type val_r );
106 
108  value_type pop_front();
109 
110  public:
111  operator detail::CQueue *();
112  operator const detail::CQueue *() const
113  { return _pimpl.get(); }
114  private:
116  };
117 
119  std::ostream & operator<<( std::ostream & str, const Queue & obj ) ZYPP_API;
120 
122  std::ostream & dumpOn( std::ostream & str, const Queue & obj ) ZYPP_API;
123 
125  bool operator==( const Queue & lhs, const Queue & rhs ) ZYPP_API;
126 
128  inline bool operator!=( const Queue & lhs, const Queue & rhs )
129  { return !( lhs == rhs ); }
130 
131  } // namespace sat
133 
135  template<> sat::detail::CQueue * rwcowClone<sat::detail::CQueue>( const sat::detail::CQueue * rhs );
136 
137 } // namespace zypp
139 #endif // ZYPP_SAT_QUEUE_H
value_type pop_back()
Definition: Queue.h:101
const value_type * const_iterator
Definition: Queue.h:40
bool operator==(const Map &lhs, const Map &rhs)
Definition: Map.cc:125
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
String related utilities and Regular expression matching.
detail::IdType value_type
Definition: Queue.h:39
int IdType
Generic Id type.
Definition: PoolMember.h:104
unsigned int size_type
Definition: Queue.h:38
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition: ResTraits.h:93
RWCOW_pointer< detail::CQueue > _pimpl
Pointer to implementation.
Definition: Queue.h:115
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
void push_back(value_type val_r)
Definition: Queue.h:92
Libsolv Id queue wrapper.
Definition: Queue.h:35
bool contains(value_type val_r) const
Return whether the Queue contais at lest one element with value val_r.
Definition: Queue.h:58
bool operator!=(const Queue &lhs, const Queue &rhs)
Definition: Queue.h:128
::s_Queue CQueue
Wrapped libsolv C data type exposed as backdoor.
Definition: PoolMember.h:62
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19
SolvableIdType size_type
Definition: PoolMember.h:126