1
#include "com/ubuntu/location/engine.h"
5
namespace cul = com::ubuntu::location;
8
const std::set<cul::Provider::Ptr>& initial_providers,
9
const cul::ProviderSelectionPolicy::Ptr& provider_selection_policy)
10
: providers(initial_providers),
11
provider_selection_policy(provider_selection_policy)
13
if (!provider_selection_policy)
14
std::runtime_error("Cannot construct an engine given a null ProviderSelectionPolicy");
17
cul::ProviderSelection cul::Engine::determine_provider_selection_for_criteria(const cul::Criteria& criteria)
19
return provider_selection_policy->determine_provider_selection_from_set_for_criteria(criteria, providers);
22
bool cul::Engine::has_provider(const cul::Provider::Ptr& provider) noexcept
24
return providers.count(provider) > 0;
27
void cul::Engine::add_provider(const cul::Provider::Ptr& provider)
30
throw std::runtime_error("Cannot add null provider");
32
providers.insert(provider);
35
void cul::Engine::remove_provider(const cul::Provider::Ptr& provider) noexcept
37
providers.erase(provider);