1
#include "com/ubuntu/location/proxy_provider.h"
6
namespace cul = com::ubuntu::location;
8
cul::ProxyProvider::ProxyProvider(const cul::ProviderSelection& selection)
9
: Provider(selection.to_feature_flags()),
10
position_updates_provider(selection.position_updates_provider),
11
heading_updates_provider(selection.heading_updates_provider),
12
velocity_updates_provider(selection.velocity_updates_provider)
16
cul::ProxyProvider::~ProxyProvider() noexcept
20
cul::ChannelConnection cul::ProxyProvider::subscribe_to_position_updates(std::function<void(const cul::Update<cul::Position>&)> f)
22
if (position_updates_provider)
23
return position_updates_provider->subscribe_to_position_updates(f);
24
return ChannelConnection {};
27
cul::ChannelConnection cul::ProxyProvider::subscribe_to_heading_updates(std::function<void(const cul::Update<cul::Heading>&)> f)
29
if (heading_updates_provider)
30
return heading_updates_provider->subscribe_to_heading_updates(f);
31
return ChannelConnection {};
34
cul::ChannelConnection cul::ProxyProvider::subscribe_to_velocity_updates(std::function<void(const cul::Update<cul::Velocity>&)> f)
36
if (velocity_updates_provider)
37
return velocity_updates_provider->subscribe_to_velocity_updates(f);
38
return ChannelConnection {};
41
void cul::ProxyProvider::start_position_updates()
43
if (position_updates_provider)
44
position_updates_provider->state_controller()->start_position_updates();
47
void cul::ProxyProvider::stop_position_updates()
49
if (position_updates_provider)
50
position_updates_provider->state_controller()->stop_position_updates();
53
void cul::ProxyProvider::start_velocity_updates()
55
if (velocity_updates_provider)
56
position_updates_provider->state_controller()->start_velocity_updates();
59
void cul::ProxyProvider::stop_velocity_updates()
61
if (velocity_updates_provider)
62
position_updates_provider->state_controller()->stop_velocity_updates();
65
void cul::ProxyProvider::start_heading_updates()
67
if (heading_updates_provider)
68
position_updates_provider->state_controller()->start_heading_updates();
71
void cul::ProxyProvider::stop_heading_updates()
73
if (heading_updates_provider)
74
position_updates_provider->state_controller()->stop_heading_updates();
b'\\ No newline at end of file'