1
#ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SKELETON_H_
2
#define LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SKELETON_H_
4
#include "com/ubuntu/location/service/interface.h"
5
#include "com/ubuntu/location/service/permission_manager.h"
6
#include "com/ubuntu/location/service/session/interface.h"
8
#include <org/freedesktop/dbus/dbus.h>
9
#include <org/freedesktop/dbus/skeleton.h>
10
#include <org/freedesktop/dbus/types/object_path.h>
20
class Skeleton : public org::freedesktop::dbus::Skeleton<com::ubuntu::location::service::Interface>,
21
public std::enable_shared_from_this<Skeleton>
24
typedef std::shared_ptr<Skeleton> Ptr;
26
Skeleton(const dbus::Bus::Ptr& connection, const PermissionManager::Ptr& permission_manager);
30
struct SessionWrapper;
32
void handle_create_session_for_criteria(DBusMessage* msg);
33
void remove_session(const std::shared_ptr<SessionWrapper>& session);
35
PermissionManager::Ptr permission_manager;
37
dbus::Object::Ptr object;
39
std::map<dbus::types::ObjectPath, std::shared_ptr<SessionWrapper>> session_store;
45
#endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_SKELETON_H_