18 #ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_PROVIDER_FACTORY_H_
19 #define LOCATION_SERVICE_COM_UBUNTU_LOCATION_PROVIDER_FACTORY_H_
21 #include "com/ubuntu/location/configuration.h"
22 #include "com/ubuntu/location/provider.h"
41 typedef com::ubuntu::location::Configuration Configuration;
42 typedef std::function<Provider::Ptr(const Configuration&)> Factory;
46 void add_factory_for_name(
const std::string& name,
const Factory& factory);
48 Provider::Ptr create_provider_for_name_with_config(
const std::string& name,
const Configuration& config);
50 void enumerate(
const std::function<
void(
const std::string&,
const Factory&)>& enumerator);
60 std::map<std::string, Factory> factory_store;
66 #endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_PROVIDER_FACTORY_H_