libzypp 17.35.11
SolvableSpec.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
11#ifndef ZYPP_SAT_SOLVABLESPEC_H
12#define ZYPP_SAT_SOLVABLESPEC_H
13
14#include <iosfwd>
15
16#include <zypp-core/Globals.h>
17#include <zypp/base/PtrTypes.h>
18#include <zypp-core/base/InputStream>
19#include <zypp/base/String.h>
20
22
24namespace zypp
25{
27 namespace sat
28 {
45 {
46 public:
49
52
53 SolvableSpec(const SolvableSpec &) = default;
55 SolvableSpec &operator=(const SolvableSpec &) = default;
57
58 public:
61
64
69 bool addIdenticalInstalledToo() const;
71
72 public:
74 void parse( const C_Str & spec_r );
75
77 void parseFrom( const InputStream & istr_r );
78
80 template <class TIterator>
81 void parseFrom( TIterator begin, TIterator end )
82 { for_( it, begin, end ) parse( *it ); }
83
85 void splitParseFrom( const C_Str & multispec_r );
86
87 public:
93 bool contains( const sat::Solvable & solv_r ) const;
95 template <class Derived>
97 { return contains( solv_r.satSolvable() ); }
98
100 bool dirty() const;
101
107 void setDirty() const;
108
109 public:
111 bool empty() const;
112
114 bool containsIdent( const IdString & ident_r ) const;
115
117 bool containsProvides( const Capability & provides_r ) const;
118
119 public:
120 class Impl;
121 private:
123 friend std::ostream & operator<<( std::ostream & str, const SolvableSpec & obj );
124 };
125
127 std::ostream & operator<<( std::ostream & str, const SolvableSpec & obj );
128
129 } // namespace sat
131} // namespace zypp
133#endif // ZYPP_SAT_SOLVABLESPEC_H
RepoManager implementation.
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Definition AutoDispose.h:95
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string.
Definition String.h:91
A sat capability.
Definition Capability.h:63
Access to the sat-pools string space.
Definition IdString.h:44
Helper to create and pass std::istream.
Definition inputstream.h:57
Define a set of Solvables by ident and provides.
friend std::ostream & operator<<(std::ostream &str, const SolvableSpec &obj)
void parse(const C_Str &spec_r)
Parse and add spec from a string (IDENT or provides:CAPABILITY`).
bool dirty() const
Whether the cache is needed and dirty.
SolvableSpec(SolvableSpec &&) noexcept=default
bool containsIdent(const IdString &ident_r) const
Whether ident_r has been added to the specs (mainly for parser tests).
SolvableSpec(const SolvableSpec &)=default
void splitParseFrom(const C_Str &multispec_r)
Convenience using str::splitEscaped(", \t") to parse multiple specs from one line.
bool contains(const SolvableType< Derived > &solv_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
RWCOW_pointer< Impl > _pimpl
Implementation class.
bool addIdenticalInstalledToo() const
Extend the provides set to include idential installed items as well.
bool contains(const sat::Solvable &solv_r) const
Test whether solv_r matches the spec.
bool containsProvides(const Capability &provides_r) const
Whether provides_r has been added to the sepcs (mainly for parser tests).
bool empty() const
Whether neither idents nor provides are set.
SolvableSpec()
Default ctor.
void setDirty() const
Explicitly flag the cache as dirty, so it will be rebuilt on the next request.
void addProvides(Capability provides_r)
A all sat::Solvable matching this provides_r.
void addIdent(IdString ident_r)
Add all sat::Solvable with this ident_r.
void parseFrom(const InputStream &istr_r)
Parse file istr_r and add its specs (one per line, #-comments).
A Solvable object within the sat Pool.
Definition Solvable.h:54
String related utilities and Regular expression matching.
std::ostream & operator<<(std::ostream &str, const FileConflicts &obj)
Easy-to use interface to the ZYPP dependency resolver.
Provides API related macros.
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
Definition Easy.h:28