lomiri-location-service  ..
An aggregating location service providing positioning and geocoding capabilities to applications.
com::lomiri::location::Provider Class Reference

The Provider class is the abstract base of all positioning providers. More...

#include <provider.h>

+ Inheritance diagram for com::lomiri::location::Provider:
+ Collaboration diagram for com::lomiri::location::Provider:

Classes

class  Controller
 Facade for controlling the state of position/heading/velocity updates. More...
 
struct  Updates
 Wraps all updates that can be delivered by a provider. More...
 

Public Types

enum  Features : std::size_t {
  Features::none = 0,
  Features::position = 1 << 0,
  Features::velocity = 1 << 1,
  Features::heading = 1 << 2
}
 Enumerates the known features that can be supported by providers. More...
 
enum  Requirements : std::size_t {
  Requirements::none = 0,
  Requirements::satellites = 1 << 0,
  Requirements::cell_network = 1 << 1,
  Requirements::data_network = 1 << 2,
  Requirements::monetary_spending = 1 << 3
}
 Enumerates the requirements of a provider implementation. More...
 
typedef std::shared_ptr< ProviderPtr
 

Public Member Functions

virtual ~Provider ()=default
 
 Provider (const Provider &)=delete
 
Provideroperator= (const Provider &)=delete
 
virtual const Updatesupdates () const
 Provides non-mutable access to this provider's updates. More...
 
virtual const Controller::Ptrstate_controller () const
 Access to the controller facade of this provider instance. More...
 
virtual bool supports (const Features &f) const
 Checks if the provider supports a specific feature. More...
 
virtual bool requires (const Requirements &r) const
 Checks if the provider has got a specific requirement. More...
 
virtual bool matches_criteria (const Criteria &criteria)
 Checks if a provider satisfies a set of accuracy criteria. More...
 
virtual void on_wifi_and_cell_reporting_state_changed (WifiAndCellIdReportingState state)
 Called by the engine whenever the wifi and cell ID reporting state changes. More...
 
virtual void on_reference_location_updated (const Update< Position > &position)
 Called by the engine whenever the reference location changed. More...
 
virtual void on_reference_velocity_updated (const Update< Velocity > &velocity)
 Called by the engine whenever the reference velocity changed. More...
 
virtual void on_reference_heading_updated (const Update< Heading > &heading)
 Called by the engine whenever the reference heading changed. More...
 

Protected Member Functions

 Provider (const Features &features=Features::none, const Requirements &requirements=Requirements::none)
 
virtual Updatesmutable_updates ()
 
virtual void start_position_updates ()
 Implementation-specific, empty by default. More...
 
virtual void stop_position_updates ()
 Implementation-specific, empty by default. More...
 
virtual void start_heading_updates ()
 Implementation-specific, empty by default. More...
 
virtual void stop_heading_updates ()
 Implementation-specific, empty by default. More...
 
virtual void start_velocity_updates ()
 Implementation-specific, empty by default. More...
 
virtual void stop_velocity_updates ()
 Implementation-specific, empty by default. More...
 

Detailed Description

The Provider class is the abstract base of all positioning providers.

Definition at line 45 of file provider.h.

Member Typedef Documentation

◆ Ptr

Definition at line 48 of file provider.h.

Member Enumeration Documentation

◆ Features

enum com::lomiri::location::Provider::Features : std::size_t
strong

Enumerates the known features that can be supported by providers.

Enumerator
none 

The provider does not support any feature.

position 

The provider features position updates.

velocity 

The provider features velocity updates.

heading 

The provider features heading updates.

Definition at line 53 of file provider.h.

◆ Requirements

Enumerates the requirements of a provider implementation.

Enumerator
none 

The provider does not require anything.

satellites 

The provider requires satellites to be visible.

cell_network 

The provider requires a cell-network to work correctly.

data_network 

The provider requires a data-network to work correctly.

monetary_spending 

Using the provider results in monetary cost.

Definition at line 64 of file provider.h.

Constructor & Destructor Documentation

◆ ~Provider()

virtual com::lomiri::location::Provider::~Provider ( )
virtualdefault

◆ Provider() [1/2]

com::lomiri::location::Provider::Provider ( const Provider )
delete

◆ Provider() [2/2]

com::lomiri::location::Provider::Provider ( const Features features = Features::none,
const Requirements requirements = Requirements::none 
)
explicitprotected

Member Function Documentation

◆ matches_criteria()

virtual bool com::lomiri::location::Provider::matches_criteria ( const Criteria criteria)
virtual

Checks if a provider satisfies a set of accuracy criteria.

Parameters
[in]criteriaThe criteria to check.
Returns
true iff the provider satisfies the given criteria.

Reimplemented in com::lomiri::location::FusionProvider.

◆ mutable_updates()

virtual Updates& com::lomiri::location::Provider::mutable_updates ( )
protectedvirtual

◆ on_reference_heading_updated()

virtual void com::lomiri::location::Provider::on_reference_heading_updated ( const Update< Heading > &  heading)
virtual

Called by the engine whenever the reference heading changed.

Parameters
headingThe new reference heading.

Reimplemented in com::lomiri::location::FusionProvider.

◆ on_reference_location_updated()

virtual void com::lomiri::location::Provider::on_reference_location_updated ( const Update< Position > &  position)
virtual

Called by the engine whenever the reference location changed.

Parameters
positionThe new reference location.

Reimplemented in com::lomiri::location::FusionProvider.

◆ on_reference_velocity_updated()

virtual void com::lomiri::location::Provider::on_reference_velocity_updated ( const Update< Velocity > &  velocity)
virtual

Called by the engine whenever the reference velocity changed.

Parameters
velocityThe new reference velocity.

Reimplemented in com::lomiri::location::FusionProvider.

◆ on_wifi_and_cell_reporting_state_changed()

virtual void com::lomiri::location::Provider::on_wifi_and_cell_reporting_state_changed ( WifiAndCellIdReportingState  state)
virtual

Called by the engine whenever the wifi and cell ID reporting state changes.

Parameters
stateThe new state.

Reimplemented in com::lomiri::location::FusionProvider.

◆ operator=()

Provider& com::lomiri::location::Provider::operator= ( const Provider )
delete

◆ requires()

virtual bool com::lomiri::location::Provider::requires ( const Requirements r) const
virtual

Checks if the provider has got a specific requirement.

Parameters
rRequirement to test for.
Returns
true iff the provider has the specific requirement.

◆ start_heading_updates()

virtual void com::lomiri::location::Provider::start_heading_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ start_position_updates()

virtual void com::lomiri::location::Provider::start_position_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ start_velocity_updates()

virtual void com::lomiri::location::Provider::start_velocity_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ state_controller()

virtual const Controller::Ptr& com::lomiri::location::Provider::state_controller ( ) const
virtual

Access to the controller facade of this provider instance.

◆ stop_heading_updates()

virtual void com::lomiri::location::Provider::stop_heading_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ stop_position_updates()

virtual void com::lomiri::location::Provider::stop_position_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ stop_velocity_updates()

virtual void com::lomiri::location::Provider::stop_velocity_updates ( )
protectedvirtual

Implementation-specific, empty by default.

Reimplemented in com::lomiri::location::FusionProvider, and com::lomiri::location::ProxyProvider.

◆ supports()

virtual bool com::lomiri::location::Provider::supports ( const Features f) const
virtual

Checks if the provider supports a specific feature.

Parameters
fFeature to test for
Returns
true iff the provider supports the feature.

◆ updates()

virtual const Updates& com::lomiri::location::Provider::updates ( ) const
virtual

Provides non-mutable access to this provider's updates.

Returns
A non-mutable reference to the updates.

Member Data Documentation

◆ controller

Controller::Ptr com::lomiri::location::Provider::controller = Controller::Ptr{}

Definition at line 279 of file provider.h.

◆ features

Features com::lomiri::location::Provider::features = Features::none

Definition at line 276 of file provider.h.

◆ requirements

Requirements com::lomiri::location::Provider::requirements = Requirements::none

Definition at line 277 of file provider.h.

◆ updates

Updates com::lomiri::location::Provider::updates

Definition at line 278 of file provider.h.


The documentation for this class was generated from the following file: