ubuntu-location-service: /build/location-service-git/src/location-service/include/location_service/com/ubuntu/location/provider_selection_policy.h Source File

ubuntu-location-service .. An aggregating location service providing positioning and geocoding capabilities to applications.

provider_selection_policy.h
Go to the documentation of this file.
1 /*
2 * Copyright © 2012-2013 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Thomas Voß <thomas.voss@canonical.com>
17 */
18 #ifndef LOCATION_SERVICE_COM_UBUNTU_PROVIDER_SELECTION_POLICY_H_
19 #define LOCATION_SERVICE_COM_UBUNTU_PROVIDER_SELECTION_POLICY_H_
20
21 #include <com/ubuntu/location/provider_enumerator.h>
22 #include <com/ubuntu/location/provider_selection.h>
23
24 #include <memory>
25
26 namespace com
27 {
28 namespace ubuntu
29 {
30 namespace location
31 {
32 struct Criteria;
33 class Engine;
34
35 class ProviderSelectionPolicy
36 {
37 public:
38 typedef std::shared_ptr<ProviderSelectionPolicy> Ptr;
39
40 static const Provider::Ptr& null_provider();
41
42 ProviderSelectionPolicy(const ProviderSelectionPolicy&) = delete;
43 ProviderSelectionPolicy& operator=(const ProviderSelectionPolicy&) = delete;
44 virtual ~ProviderSelectionPolicy() = default;
45
46 virtual ProviderSelection determine_provider_selection_for_criteria(
47 const Criteria& criteria,
48 const ProviderEnumerator& enumerator) = 0;
49
50 protected:
51 ProviderSelectionPolicy() = default;
52 };
53 }
54 }
55 }
56
57 #endif // LOCATION_SERVICE_COM_UBUNTU_PROVIDER_SELECTION_POLICY_H_
com::ubuntu::location::ProviderEnumerator
Definition: provider_enumerator.h:32
com::ubuntu::location::ProviderSelectionPolicy
Definition: provider_selection_policy.h:36
com::ubuntu::location::ProviderSelectionPolicy::~ProviderSelectionPolicy
virtual ~ProviderSelectionPolicy()=default
com::ubuntu::location::ProviderSelectionPolicy::determine_provider_selection_for_criteria
virtual ProviderSelection determine_provider_selection_for_criteria(const Criteria &criteria, const ProviderEnumerator &enumerator)=0
com::ubuntu::location::ProviderSelectionPolicy::ProviderSelectionPolicy
ProviderSelectionPolicy(const ProviderSelectionPolicy &)=delete
com::ubuntu::location::ProviderSelectionPolicy::operator=
ProviderSelectionPolicy & operator=(const ProviderSelectionPolicy &)=delete
com::ubuntu::location::ProviderSelectionPolicy::Ptr
std::shared_ptr< ProviderSelectionPolicy > Ptr
Definition: provider_selection_policy.h:38
com::ubuntu::location::ProviderSelectionPolicy::ProviderSelectionPolicy
ProviderSelectionPolicy()=default
com::ubuntu::location::ProviderSelectionPolicy::null_provider
static const Provider::Ptr & null_provider()
com::ubuntu::location::Provider::Ptr
std::shared_ptr< Provider > Ptr
Definition: provider.h:48
com
Definition: accuracy.h:24
provider_enumerator.h
provider_selection.h
com::ubuntu::location::Criteria
Summarizes criteria of a client session with respect to functionality and accuracy for position,...
Definition: criteria.h:35
com::ubuntu::location::ProviderSelection
Definition: provider_selection.h:32