libzypp 17.31.23
Locks.h
Go to the documentation of this file.
1#ifndef ZYPP_LOCKS_H
2#define ZYPP_LOCKS_H
3
4#include <zypp/ResPool.h>
5#include <zypp/Pathname.h>
6#include <zypp/PoolQuery.h>
7#include <zypp/ZConfig.h>
8
9namespace zypp
10{
18 class Locks
19 {
20 public:
21 typedef std::list<PoolQuery> LockList;
22 typedef LockList::const_iterator const_iterator;
23 typedef LockList::size_type size_type;
24 public:
25 class Impl;
26
31 static Locks& instance();
32
33 const_iterator begin() const;
34 const_iterator end() const;
35 LockList::size_type size() const;
36 bool empty() const;
37
47 void addLock( const PoolQuery& query );
48
53 void addLock( const IdString& ident_r );
54
59 void addLock( const ResKind& kind_r, const IdString& name_r );
60
65 void addLock( const ResKind& kind_r, const C_Str& name_r );
66
73 void removeLock( const PoolQuery& query );
74
81 void removeLock( const IdString& ident_r );
82
89 void removeLock( const ResKind& kind_r, const IdString& name_r );
90 void removeLock( const ResKind& kind_r, const C_Str & name_r );
91
97 void readAndApply( const Pathname& file = ZConfig::instance().locksFile() );
98
103 void read( const Pathname& file = ZConfig::instance().locksFile() );
104
108 void apply() const;
109
115 void save( const Pathname& file = ZConfig::instance().locksFile() );
116
122 void merge();
123
129 bool existEmpty() const;
130
137 void removeEmpty();
138
143 void removeDuplicates();
145 private:
146 Locks();
147
149
150 };
151}
152
153#endif
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string.
Definition: String.h:91
Access to the sat-pools string space.
Definition: IdString.h:43
Singleton class which manipulate with locks file and apply locks on pool.
Definition: Locks.h:19
void removeEmpty()
Call callback for each empty lock.
Definition: Locks.cc:320
void apply() const
Applies locks in stable list (locks which is not changed during session).
Definition: Locks.cc:173
void merge()
Merges toAdd and ToRemove list to stable list.
Definition: Locks.cc:447
void save(const Pathname &file=ZConfig::instance().locksFile())
Merges toAdd and ToRemove list to stable list and save that stable list to file.
Definition: Locks.cc:466
const_iterator end() const
Definition: Locks.cc:105
void addLock(const PoolQuery &query)
TODO add: toBeAdded{Begin,End,Size,Empty} toBeRemoved{Begin,End,Size,Empty}.
Definition: Locks.cc:180
bool empty() const
Definition: Locks.cc:111
LockList::const_iterator const_iterator
Definition: Locks.h:22
std::list< PoolQuery > LockList
Definition: Locks.h:21
void readAndApply(const Pathname &file=ZConfig::instance().locksFile())
Optimalized version of read and apply.
Definition: Locks.cc:147
void removeDuplicates()
Delete all query duplicate in loaded locks.
Definition: Locks.cc:492
LockList::size_type size_type
Definition: Locks.h:23
const_iterator begin() const
Definition: Locks.cc:102
LockList::size_type size() const
Definition: Locks.cc:108
void removeLock(const PoolQuery &query)
unlocks by result of query and add to toRemove.
Definition: Locks.cc:221
bool existEmpty() const
Gets true if some lock doesn't lock any object in pool This can happen e.g.
Definition: Locks.cc:263
RW_pointer< Impl, rw_pointer::Scoped< Impl > > _pimpl
Definition: Locks.h:148
static Locks & instance()
Gets instance of this class.
Definition: Locks.cc:36
void read(const Pathname &file=ZConfig::instance().locksFile())
Read locks from file to list of stable locks (locks which is not changed during session)
Definition: Locks.cc:162
Meta-data query API.
Definition: PoolQuery.h:91
Resolvable kinds.
Definition: ResKind.h:33
static ZConfig & instance()
Singleton ctor.
Definition: ZConfig.cc:922
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:2
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:286