27 inline Capability autoCapability(
const Capabilities & provides_r )
29 static const Capability autopattern(
"autopattern()" );
30 for (
const auto & cap : provides_r )
31 if ( cap.matches( autopattern ) == CapMatch::yes )
49 using PatternMap = std::map<Pattern::constPtr, DefaultIntegral<bool, false>>;
50 using size_type = PatternMap::size_type;
51 using value_type = PatternMap::key_type;
69 expandIncludes( unprocessed );
70 expandExtending( unprocessed );
73 }
while( (unprocessed = nextUnprocessed()) );
79 const_iterator begin()
const
82 const_iterator end()
const
102 for_( it, c.begin(), c.end() )
104 expandInclude( Capability( it->c_str() ) );
109 void expandInclude(
const Capability & include_r )
111 sat::WhatProvides w( include_r );
112 for_( it, w.begin(), w.end() )
123 for_( it, pool.byKindBegin<Pattern>(), pool.byKindEnd<Pattern>() )
125 expandIfExtends( pat_r, *it );
130 void expandIfExtends(
const Pattern::constPtr & pat_r,
const PoolItem & extending_r )
134 for_( it, c.begin(), c.end() )
136 if ( providedBy( pat_r, Capability( it->c_str() ) ) )
151 sat::Solvable pat( pat_r->satSolvable() );
152 sat::WhatProvides w( extends_r );
153 for_( it, w.begin(), w.end() )
294 result.
get().insert(
c.begin(),
c.end() );
317 inline void dependsSet( sat::Solvable depKeeper_r, Pattern::ContentsSet & collect_r )
319 dependsSetDoCollect( depKeeper_r, Dep::REQUIRES, collect_r.req );
320 dependsSetDoCollect( depKeeper_r, Dep::RECOMMENDS, collect_r.rec ),
321 dependsSetDoCollect( depKeeper_r, Dep::SUGGESTS, collect_r.sug );
325 inline bool isPatternsPackage( sat::Solvable depKeeper_r )
327 static const Capability indicator(
"pattern()" );
328 return depKeeper_r.provides().matches( indicator );
339 std::set<sat::Solvable>
recTodo;
340 std::set<sat::Solvable> allDone;
344 std::set<sat::Solvable>
reqTodo;
383 if ( ! allDone.insert(
depKeeper ).second )
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Container of Capability (currently read only).
Access to the sat-pools string space.
constexpr bool empty() const
Whether the string is empty.
'Language[_Country]' codes.
Contents core() const
Ui hint: Required Packages.
NameList extends() const
Ui hint: patterns this one extends.
std::string category(const Locale &lang_r=Locale()) const
TraitsType::constPtrType constPtr
Contents depends(bool includeSuggests_r=true) const
Ui hint: Dependent packages.
sat::SolvableSet Contents
Pattern(const sat::Solvable &solvable_r)
Ctor.
std::string order() const
void contentsSet(ContentsSet &collect_r, bool recursively_r=false) const
Dependency based content set (does not evaluate includes/extends relation).
sat::Solvable autoPackage() const
The corresponding patterns- package if isAutoPattern.
NameList includes() const
Ui hint: included patterns.
sat::ArrayAttr< IdString, IdString > NameList
Contents contents(bool includeSuggests_r=true) const
The collection of packages associated with this pattern.
bool isAutoPattern() const
This patterns is auto-defined by a patterns- package.
Combining sat::Solvable and ResStatus.
Base for resolvable objects.
static ResPool instance()
Singleton ctor.
LookupAttr::TransformIterator based container to retrieve list attributes.
static const SolvAttr icon
static const SolvAttr isvisible
static const SolvAttr category
static const SolvAttr isdefault
static const SolvAttr extends
static const SolvAttr script
static const SolvAttr order
static const SolvAttr includes
Solvable set wrapper to allow adding additional convenience iterators.
Container & get()
The set.
A Solvable object within the sat Pool.
Container of Solvable providing a Capability (read only).
intrusive_ptr< Selectable > Ptr
Easy-to use interface to the ZYPP dependency resolver.
MapKVIteratorTraits< TMap >::Key_const_iterator make_map_key_begin(const TMap &map_r)
Convenience to create the key iterator from container::begin()
filter_iterator< TFilter, typename TContainer::const_iterator > make_filter_begin(TFilter f, const TContainer &c)
Convenience to create filter_iterator from container::begin().
MapKVIteratorTraits< TMap >::Key_const_iterator make_map_key_end(const TMap &map_r)
Convenience to create the key iterator from container::end()
std::unordered_set< Capability > CapabilitySet
filter_iterator< TFilter, typename TContainer::const_iterator > make_filter_end(TFilter f, const TContainer &c)
Convenience to create filter_iterator from container::end().
Enumeration class of dependency types.
transform_iterator< GetPairFirst< typename MapType::value_type >, typename MapType::const_iterator > Key_const_iterator
The key iterator type.
Contents req
required content set
Contents sug
suggested content set
Contents rec
recommended content set
Capabilities provides() const
bool lookupBoolAttribute(const SolvAttr &attr) const
std::string lookupStrAttribute(const SolvAttr &attr) const
Solvable satSolvable() const
Return the corresponding sat::Solvable.
Repository repository() const
#define for_(IT, BEG, END)
Convenient for-loops using iterator.
#define IMPL_PTR_TYPE(NAME)