libzypp 17.31.23
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/base/PtrTypes.h>
18
20namespace zypp
21{
23 namespace sat
24 {
25 class Queue;
28
34 class Queue
35 {
36 public:
37 typedef unsigned size_type;
39 typedef const value_type* const_iterator;
40
41 public:
43 Queue();
44
46 ~Queue();
47
48 bool empty() const;
49 size_type size() const;
50 const_iterator begin() const;
51 const_iterator end() const;
52
54 const_iterator find( value_type val_r ) const;
55
57 bool contains( value_type val_r ) const
58 { return( find( val_r ) != end() ); }
59
61 value_type first() const;
62
64 value_type last() const;
65
69 const value_type & at( size_type idx_r ) const;
70
74 value_type & at( size_type idx_r );
75
77 const value_type & operator[]( size_type idx_r ) const;
78
81
83 void clear();
84
86 void remove( value_type val_r );
87
89 void push( value_type val_r );
91 void push_back( value_type val_r )
92 { push( val_r ); }
93
95 void pushUnique( value_type val_r );
96
101 { return pop(); }
102
104 void push_front( value_type val_r );
105
108
109 public:
110 operator detail::CQueue *();
111 operator const detail::CQueue *() const
112 { return _pimpl.get(); }
113 private:
115 };
116
118 std::ostream & operator<<( std::ostream & str, const Queue & obj );
119
121 std::ostream & dumpOn( std::ostream & str, const Queue & obj );
122
124 bool operator==( const Queue & lhs, const Queue & rhs );
125
127 inline bool operator!=( const Queue & lhs, const Queue & rhs )
128 { return !( lhs == rhs ); }
129
130 } // namespace sat
132
135
136} // namespace zypp
138#endif // ZYPP_SAT_QUEUE_H
Libsolv Id queue wrapper.
Definition: Queue.h:35
const_iterator find(value_type val_r) const
Return iterator to the 1st occurance of val_r or end.
Definition: Queue.cc:58
value_type pop_front()
Pop and return the 1st Id from the queue or 0 if empty.
Definition: Queue.cc:115
void push_back(value_type val_r)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: Queue.h:91
RWCOW_pointer< detail::CQueue > _pimpl
Pointer to implementation.
Definition: Queue.h:114
void remove(value_type val_r)
Remove all occurances of val_r from the queue.
Definition: Queue.cc:97
value_type first() const
Return the 1st Id in the queue or 0 if empty.
Definition: Queue.cc:66
void push_front(value_type val_r)
Push a value to the beginning off the Queue.
Definition: Queue.cc:112
~Queue()
Dtor.
Definition: Queue.cc:43
size_type size() const
Definition: Queue.cc:49
value_type last() const
Return the last Id in the queue or 0 if empty.
Definition: Queue.cc:73
value_type pop_back()
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition: Queue.h:100
const_iterator end() const
Definition: Queue.cc:55
const value_type * const_iterator
Definition: Queue.h:39
Queue()
Default ctor: empty Queue.
Definition: Queue.cc:39
const_iterator begin() const
Definition: Queue.cc:52
value_type pop()
Pop and return the last Id from the queue or 0 if empty.
Definition: Queue.cc:109
detail::IdType value_type
Definition: Queue.h:38
void clear()
Clear the queue.
Definition: Queue.cc:94
unsigned size_type
Definition: Queue.h:37
const value_type & operator[](size_type idx_r) const
Return the Id at idx_r in the queue (no range check)
Definition: Queue.cc:88
const value_type & at(size_type idx_r) const
Return the Id at idx_r in the queue.
Definition: Queue.cc:82
bool empty() const
Definition: Queue.cc:46
bool operator!=(const Queue &lhs, const Queue &rhs)
Definition: Queue.h:127
void push(value_type val_r)
Push a value to the end off the Queue.
Definition: Queue.cc:103
void pushUnique(value_type val_r)
Push a value if it's not yet in the Queue.
Definition: Queue.cc:106
bool contains(value_type val_r) const
Return whether the Queue contais at lest one element with value val_r.
Definition: Queue.h:57
String related utilities and Regular expression matching.
::s_Queue CQueue
Wrapped libsolv C data type exposed as backdoor.
Definition: PoolMember.h:62
int IdType
Generic Id type.
Definition: PoolMember.h:104
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
Queue SolvableQueue
Queue with Solvable ids.
Definition: Queue.h:26
std::ostream & dumpOn(std::ostream &str, const LocaleSupport &obj)
Queue StringQueue
Queue with String ids.
Definition: Queue.h:27
bool operator==(const Map &lhs, const Map &rhs)
Definition: Map.cc:125
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
sat::detail::CQueue * rwcowClone< sat::detail::CQueue >(const sat::detail::CQueue *rhs)
Definition: Queue.cc:28
RW_pointer supporting 'copy on write' functionality.
Definition: PtrTypes.h:459
const D * get() const
Definition: PtrTypes.h:503