20 _providers.insert_or_assign ( namespaceId, provider );
27 return iter->second->isSatisfied ( value );
34 pool.get()->nscallbackdata =
this;
36 p.second->attach(
pool);
43 provider.second->checkDirty(
pool );
49 provider.second->prepare(
pool );
55 p.second->onReset(
pool );
61 if ( self && self->handleNamespace( lhs, rhs ) )
Mediator managing the collection of NamespaceProviders for a Pool.
bool handleNamespace(detail::IdType namespaceId, detail::IdType value) const
The entry point for the libsolv namespace callback.
static detail::IdType libsolv_callback(detail::CPool *, void *data, detail::IdType lhs, detail::IdType rhs)
The static C-style callback for libsolv.
void checkDirty(Pool &pool) override
Probe external state.
std::unordered_map< detail::IdType, std::shared_ptr< NamespaceProvider > > _providers
Internal map of IDs to their respective providers.
void prepare(Pool &pool) override
void onReset(Pool &pool) override
void attach(Pool &pool) override
void registerProvider(detail::IdType namespaceId, std::shared_ptr< NamespaceProvider > provider)
Register a provider for a specific namespace.
Orchestrator for a libsolv pool instance.
zypp::sat::detail::CPool CPool
zypp::sat::detail::IdType IdType
This file contains private API, this might break at any time between releases.