20#ifndef PALUDIS_GUARD_PALUDIS_REPOSITORY_FACTORY_HH
21#define PALUDIS_GUARD_PALUDIS_REPOSITORY_FACTORY_HH 1
23#include <paludis/repository_factory-fwd.hh>
27#include <paludis/util/wrapped_forward_iterator.hh>
40 public Singleton<RepositoryFactory>
42 friend class Singleton<RepositoryFactory>;
51 typedef std::function<std::string (
const std::string &)> KeyFunction;
53 typedef std::function<const std::shared_ptr<Repository>(
58 typedef std::function<const std::shared_ptr<const RepositoryNameSet> (
61 )> DependenciesFunction;
68 typedef std::function<int (
71 )> ImportanceFunction;
91 const std::shared_ptr<Repository>
create(
93 const KeyFunction & key_function
104 const KeyFunction & key_function
115 const KeyFunction & key_function
126 const KeyFunction & key_function
146 const NameFunction & name_function,
147 const ImportanceFunction & importance_function,
148 const CreateFunction & create_function,
149 const DependenciesFunction & dependencies_function
152 struct ConstIteratorTag;
158 template <typename RepositoryClass_>
159 void register_repositories(const RepositoryClass_ * const, RepositoryFactory * const);
161 extern template class
Pimp<RepositoryFactory>;
Definition environment.hh:203
void add_repository_format(const std::shared_ptr< const Set< std::string > > &formats, const NameFunction &name_function, const ImportanceFunction &importance_function, const CreateFunction &create_function, const DependenciesFunction &dependencies_function)
const std::shared_ptr< Repository > create(Environment *const env, const KeyFunction &key_function) const PALUDIS_ATTRIBUTE((warn_unused_result))
const RepositoryName name(const Environment *const env, const KeyFunction &key_function) const PALUDIS_ATTRIBUTE((warn_unused_result))
int importance(const Environment *const env, const KeyFunction &key_function) const PALUDIS_ATTRIBUTE((warn_unused_result))
const std::shared_ptr< const RepositoryNameSet > dependencies(const Environment *const env, const KeyFunction &key_function) const PALUDIS_ATTRIBUTE((warn_unused_result))
Definition singleton.hh:45
Definition wrapped_forward_iterator.hh:42
WrappedValue< RepositoryNameTag > RepositoryName
Definition name-fwd.hh:105
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24