18 #ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SESSION_INTERFACE_H_
19 #define LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SESSION_INTERFACE_H_
21 #include "com/ubuntu/location/channel.h"
22 #include "com/ubuntu/location/heading.h"
23 #include "com/ubuntu/location/position.h"
24 #include "com/ubuntu/location/provider.h"
25 #include "com/ubuntu/location/update.h"
26 #include "com/ubuntu/location/velocity.h"
28 #include <org/freedesktop/dbus/codec.h>
29 #include <org/freedesktop/dbus/traits/service.h>
30 #include <org/freedesktop/dbus/types/object_path.h>
49 inline static const std::string& name()
51 static const std::string s
58 typedef void ResultType;
60 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
67 inline static const std::string& name()
69 static const std::string s
76 typedef void ResultType;
78 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
85 inline static const std::string& name()
87 static const std::string s
94 typedef void ResultType;
96 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
103 inline static const std::string& name()
105 static const std::string s
107 "StartPositionUpdates"
112 typedef void ResultType;
114 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
121 inline static const std::string& name()
123 static const std::string s
125 "StopPositionUpdates"
130 typedef void ResultType;
132 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
139 inline static const std::string& name()
141 static const std::string s
143 "StartVelocityUpdates"
148 typedef void ResultType;
150 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
157 inline static const std::string& name()
159 static const std::string s
161 "StopVelocityUpdates"
166 typedef void ResultType;
168 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
175 inline static const std::string& name()
177 static const std::string s
179 "StartHeadingUpdates"
184 typedef void ResultType;
186 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
193 inline static const std::string& name()
195 static const std::string s
202 typedef void ResultType;
204 inline static const std::chrono::milliseconds default_timeout() {
return std::chrono::seconds{1}; }
209 struct ErrorParsingUpdate {
inline static std::string name() {
return "com.ubuntu.location.Service.Session.ErrorParsingUpdate"; } };
210 struct ErrorStartingUpdate {
inline static std::string name() {
return "com.ubuntu.location.Service.Session.ErrorStartingUpdate"; } };
213 typedef std::shared_ptr<Interface> Ptr;
219 virtual const org::freedesktop::dbus::types::ObjectPath& path() const = 0;
221 ChannelConnection install_position_updates_handler(std::function<
void(const
Update<
Position>&)> handler);
222 ChannelConnection install_velocity_updates_handler(std::function<
void(const
Update<
Velocity>&)> handler);
223 ChannelConnection install_heading_updates_handler(std::function<
void(const
Update<
Heading>&)> handler);
225 virtual
void start_position_updates() = 0;
226 virtual
void stop_position_updates() noexcept = 0;
227 virtual
void start_velocity_updates() = 0;
228 virtual
void stop_velocity_updates() noexcept = 0;
229 virtual
void start_heading_updates() = 0;
230 virtual
void stop_heading_updates() noexcept = 0;
241 std::unique_ptr<Private> d;
250 namespace freedesktop
257 struct Service<com::ubuntu::location::service::session::Interface>
259 static const std::string& interface_name()
261 static const std::string s
263 "com.ubuntu.location.Service.Session"
273 #include "com/ubuntu/location/codec.h"
275 #endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SESSION_INTERFACE_H_