18 #ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_ENGINE_H_
19 #define LOCATION_SERVICE_COM_UBUNTU_LOCATION_ENGINE_H_
21 #include "com/ubuntu/location/criteria.h"
22 #include "com/ubuntu/location/provider.h"
23 #include "com/ubuntu/location/provider_selection_policy.h"
36 typedef std::shared_ptr<Engine> Ptr;
38 Engine(
const std::set<Provider::Ptr>& initial_providers,
39 const ProviderSelectionPolicy::Ptr& provider_selection_policy);
42 virtual ~
Engine() =
default;
46 virtual bool has_provider(
const Provider::Ptr& provider) noexcept;
47 virtual void add_provider(
const Provider::Ptr& provider);
48 virtual void remove_provider(
const Provider::Ptr& provider) noexcept;
51 std::set<Provider::Ptr> providers;
52 ProviderSelectionPolicy::Ptr provider_selection_policy;
58 #endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_ENGINE_H_