20#ifndef PALUDIS_GUARD_PALUDIS_ENVIRONMENT_FACTORY_HH
21#define PALUDIS_GUARD_PALUDIS_ENVIRONMENT_FACTORY_HH 1
23#include <paludis/environment_factory-fwd.hh>
48 public Singleton<EnvironmentFactory>
50 friend class Singleton<EnvironmentFactory>;
56 ~EnvironmentFactory();
59 typedef std::function<const std::shared_ptr<Environment>(
const std::string &)> CreateFunction;
75 const std::shared_ptr<Environment>
create(
const std::string & spec)
const
88 const CreateFunction & create_function
92 template <
typename EnvironmentClass_>
93 void register_environment(
const EnvironmentClass_ *
const,
EnvironmentFactory *
const);
Definition environment_factory.hh:49
void add_environment_format(const std::shared_ptr< const Set< std::string > > &formats, const CreateFunction &create_function)
const std::shared_ptr< Environment > create(const std::string &spec) const PALUDIS_ATTRIBUTE((warn_unused_result))
Definition singleton.hh:45
#define PALUDIS_ATTRIBUTE(x)
Definition attributes.hh:53
#define PALUDIS_VISIBLE
Definition attributes.hh:59
Definition about_metadata-fwd.hh:24