libzypp  17.16.0
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 
9 namespace zypp
10 {
18  class Locks
19  {
20  public:
21  typedef std::list<PoolQuery> LockList;
22  typedef LockList::const_iterator const_iterator;
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
static ZConfig & instance()
Singleton ctor.
Definition: Resolver.cc:124
void removeEmpty()
Call callback for each empty lock.
Definition: Locks.cc:321
bool existEmpty() const
Gets true if some lock doesn't lock any object in pool This can happen e.g.
Definition: Locks.cc:264
LockList::size_type size() const
Definition: Locks.cc:109
Access to the sat-pools string space.
Definition: IdString.h:41
const_iterator begin() const
Definition: Locks.cc:103
RW_pointer< Impl, rw_pointer::Scoped< Impl > > _pimpl
Definition: Locks.h:148
void addLock(const PoolQuery &query)
TODO add: toBeAdded{Begin,End,Size,Empty} toBeRemoved{Begin,End,Size,Empty}.
Definition: Locks.cc:181
Singleton class which manipulate with locks file and apply locks on pool.
Definition: Locks.h:18
std::list< PoolQuery > LockList
Definition: Locks.h:21
void removeDuplicates()
Delete all query duplicate in loaded locks.
Definition: Locks.cc:489
const_iterator end() const
Definition: Locks.cc:106
void apply() const
Applies locks in stable list (locks which is not changed during session).
Definition: Locks.cc:174
static Locks & instance()
Gets instance of this class.
Definition: Locks.cc:37
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string.
Definition: String.h:90
void merge()
Merges toAdd and ToRemove list to stable list.
Definition: Locks.cc:444
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:463
void readAndApply(const Pathname &file=ZConfig::instance().locksFile())
Optimalized version of read and apply.
Definition: Locks.cc:148
SolvableIdType size_type
Definition: PoolMember.h:126
bool empty() const
Definition: Locks.cc:112
Meta-data query API.
Definition: PoolQuery.h:90
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:285
LockList::size_type size_type
Definition: Locks.h:23
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:163
void removeLock(const PoolQuery &query)
unlocks by result of query and add to toRemove.
Definition: Locks.cc:222
LockList::const_iterator const_iterator
Definition: Locks.h:22
Resolvable kinds.
Definition: ResKind.h:32
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1