lomiri-location-service
..
An aggregating location service providing positioning and geocoding capabilities to applications.
provider_selection.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_LOMIRI_PROVIDER_SELECTION_H_
19
#define LOCATION_SERVICE_COM_LOMIRI_PROVIDER_SELECTION_H_
20
21
#include <
com/lomiri/location/provider.h
>
22
23
#include <memory>
24
25
namespace
com
26
{
27
namespace
lomiri
28
{
29
namespace
location
30
{
31
struct
ProviderSelection
32
{
33
inline
Provider::Features
to_feature_flags
()
const
34
{
35
Provider::Features
flags =
Provider::Features::none
;
36
37
if
(
position_updates_provider
)
38
flags = flags |
Provider::Features::position
;
39
if
(
heading_updates_provider
)
40
flags = flags |
Provider::Features::heading
;
41
if
(
velocity_updates_provider
)
42
flags = flags |
Provider::Features::velocity
;
43
44
return
flags;
45
}
46
47
std::shared_ptr<Provider>
position_updates_provider
;
48
std::shared_ptr<Provider>
heading_updates_provider
;
49
std::shared_ptr<Provider>
velocity_updates_provider
;
50
};
51
52
inline
bool
operator==
(
const
ProviderSelection
& lhs,
const
ProviderSelection
& rhs)
53
{
54
return
lhs.
position_updates_provider
== rhs.
position_updates_provider
&&
55
lhs.
heading_updates_provider
== rhs.
heading_updates_provider
&&
56
lhs.
velocity_updates_provider
== rhs.
velocity_updates_provider
;
57
}
58
}
59
}
60
}
61
62
#endif // LOCATION_SERVICE_COM_LOMIRI_PROVIDER_SELECTION_H_
com::lomiri::location::ProviderSelection::position_updates_provider
std::shared_ptr< Provider > position_updates_provider
Definition:
provider_selection.h:47
com::lomiri::location::Provider::Features::heading
@ heading
The provider features heading updates.
com::lomiri::location::ProviderSelection::heading_updates_provider
std::shared_ptr< Provider > heading_updates_provider
Definition:
provider_selection.h:48
com::lomiri::location::operator==
bool operator==(const ProviderSelection &lhs, const ProviderSelection &rhs)
Definition:
provider_selection.h:52
com::lomiri::location::ProviderSelection::to_feature_flags
Provider::Features to_feature_flags() const
Definition:
provider_selection.h:33
com::lomiri::location::Provider::Features::none
@ none
The provider does not support any feature.
com::lomiri::location::Provider::Features::velocity
@ velocity
The provider features velocity updates.
com::lomiri::location::ProviderSelection
Definition:
provider_selection.h:31
provider.h
com
Definition:
accuracy.h:23
com::lomiri::location::Provider::Features::position
@ position
The provider features position updates.
com::lomiri::location::Provider::Features
Features
Enumerates the known features that can be supported by providers.
Definition:
provider.h:53
com::lomiri::location::ProviderSelection::velocity_updates_provider
std::shared_ptr< Provider > velocity_updates_provider
Definition:
provider_selection.h:49
include
location_service
com
lomiri
location
provider_selection.h
Generated on Fri Nov 10 2023 18:26:46 for lomiri-location-service by
1.8.17