provider_selection.h
Go to the documentation of this file.
/*
* Copyright © 2012-2013 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Authored by: Thomas Voß <thomas.voss@canonical.com>
*/
#ifndef LOCATION_SERVICE_COM_LOMIRI_PROVIDER_SELECTION_H_
#define LOCATION_SERVICE_COM_LOMIRI_PROVIDER_SELECTION_H_
#include <com/lomiri/location/provider.h>
#include <memory>
namespace com
{
namespace lomiri
{
namespace location
{
struct ProviderSelection
{
inline Provider::Features to_feature_flags() const
{
Provider::Features flags = Provider::Features::none;
if (position_updates_provider)
flags = flags | Provider::Features::position;
if (heading_updates_provider)
flags = flags | Provider::Features::heading;
if(velocity_updates_provider)
flags = flags | Provider::Features::velocity;
return flags;
}
std::shared_ptr<Provider> position_updates_provider;
std::shared_ptr<Provider> heading_updates_provider;
std::shared_ptr<Provider> velocity_updates_provider;
};
inline bool operator==(const ProviderSelection& lhs, const ProviderSelection& rhs)
{
return lhs.position_updates_provider == rhs.position_updates_provider &&
lhs.heading_updates_provider == rhs.heading_updates_provider &&
lhs.velocity_updates_provider == rhs.velocity_updates_provider;
}
}
}
}
#endif // LOCATION_SERVICE_COM_LOMIRI_PROVIDER_SELECTION_H_
com::lomiri::location::Provider::Features
Features
Enumerates the known features that can be supported by providers.
Definition provider.h:54
com::lomiri::location::Provider::Features::none
@ none
The provider does not support any feature.
Definition provider.h:55
com::lomiri::location::Provider::Features::position
@ position
The provider features position updates.
Definition provider.h:56
com::lomiri::location::Provider::Features::velocity
@ velocity
The provider features velocity updates.
Definition provider.h:57
com::lomiri::location::Provider::Features::heading
@ heading
The provider features heading updates.
Definition provider.h:58
com::lomiri::location
Definition accuracy.h:28
com::lomiri::location::operator==
bool operator==(const ProviderSelection &lhs, const ProviderSelection &rhs)
Definition provider_selection.h:52
com::lomiri
Definition accuracy.h:26
com
Definition accuracy.h:24
provider.h
com::lomiri::location::ProviderSelection
Definition provider_selection.h:32
com::lomiri::location::ProviderSelection::to_feature_flags
Provider::Features to_feature_flags() const
Definition provider_selection.h:33
com::lomiri::location::ProviderSelection::heading_updates_provider
std::shared_ptr< Provider > heading_updates_provider
Definition provider_selection.h:48
com::lomiri::location::ProviderSelection::position_updates_provider
std::shared_ptr< Provider > position_updates_provider
Definition provider_selection.h:47
com::lomiri::location::ProviderSelection::velocity_updates_provider
std::shared_ptr< Provider > velocity_updates_provider
Definition provider_selection.h:49