18#ifndef LOCATION_SERVICE_COM_LOMIRI_LOCATION_SERVICE_SKELETON_H_
19#define LOCATION_SERVICE_COM_LOMIRI_LOCATION_SERVICE_SKELETON_H_
25#include <core/dbus/dbus.h>
26#include <core/dbus/object.h>
27#include <core/dbus/property.h>
28#include <core/dbus/service_watcher.h>
29#include <core/dbus/skeleton.h>
31#include <core/dbus/interfaces/properties.h>
45 public std::enable_shared_from_this<Skeleton>
48 typedef std::shared_ptr<Skeleton>
Ptr;
53 typedef std::shared_ptr<CredentialsResolver>
Ptr;
94 typedef std::shared_ptr<ObjectPathGenerator>
Ptr;
139 void handle_create_session_for_criteria(const
core::
dbus::Message::
Ptr& msg);
143 bool add_to_session_store_for_path(
144 const
core::
dbus::types::ObjectPath& path,
145 std::unique_ptr<
core::
dbus::ServiceWatcher> watcher,
149 void remove_from_session_store_for_path(const
core::
dbus::types::ObjectPath& path);
151 void add_client_application(const std::
string& app_id);
152 void remove_client_application(const std::
string& app_id);
157 void on_does_satellite_based_positioning_changed(
bool value);
159 void on_does_report_cell_and_wifi_ids_changed(
bool value);
161 void on_is_online_changed(
bool value);
162 void on_client_applications_changed(const std::vector<std::
string>& value);
173 core::
dbus::interfaces::Properties::Signals::PropertiesChanged,
174 core::
dbus::interfaces::Properties::Signals::PropertiesChanged::ArgumentType
175 >::
Ptr properties_changed;
180 std::shared_ptr< core::dbus::Property<Interface::Properties::State> >
state;
183 std::shared_ptr< core::dbus::Property<Interface::Properties::IsOnline> >
is_online;
201 std::unique_ptr<core::dbus::ServiceWatcher> watcher;
202 std::shared_ptr<session::Interface> session;
205 std::map<dbus::types::ObjectPath, Element> session_store;
The Interface class models the primary interface to the location service.
std::shared_ptr< PermissionManager > Ptr
std::shared_ptr< Skeleton > Ptr
std::shared_ptr< core::dbus::Property< Interface::Properties::State > > state
std::shared_ptr< core::dbus::Property< Interface::Properties::IsOnline > > is_online
core::ScopedConnection client_applications
std::shared_ptr< core::dbus::Property< Interface::Properties::DoesReportCellAndWifiIds > > does_report_cell_and_wifi_ids
core::Property< State > & mutable_state()
core::ScopedConnection does_satellite_based_positioning
std::shared_ptr< core::dbus::Property< Interface::Properties::VisibleSpaceVehicles > > visible_space_vehicles
core::ScopedConnection does_report_cell_and_wifi_ids
core::ScopedConnection is_online
std::shared_ptr< core::dbus::Property< Interface::Properties::ClientApplications > > client_applications
core::ScopedConnection state
std::shared_ptr< core::dbus::Property< Interface::Properties::DoesSatelliteBasedPositioning > > does_satellite_based_positioning
Skeleton(const Configuration &configuration)
State
State enumerates the known states of the service.
A space-vehicle as visible to providers.
Credentials of a remote session.
PermissionManager::Ptr permission_manager
CredentialsResolver::Ptr credentials_resolver
core::dbus::Bus::Ptr incoming
ObjectPathGenerator::Ptr object_path_generator
core::dbus::Bus::Ptr outgoing
CredentialsResolver()=default
virtual Credentials resolve_credentials_for_incoming_message(const core::dbus::Message::Ptr &msg)=0
std::shared_ptr< CredentialsResolver > Ptr
virtual ~CredentialsResolver()=default
Credentials resolve_credentials_for_incoming_message(const core::dbus::Message::Ptr &msg)
std::function< std::string(pid_t)> AppArmorProfileResolver
DBusDaemonCredentialsResolver(const core::dbus::Bus::Ptr &bus, AppArmorProfileResolver app_armor_profile_resolver)
static AppArmorProfileResolver libapparmor_profile_resolver()
AppArmorProfileResolver app_armor_profile_resolver
virtual ~ObjectPathGenerator()=default
virtual core::dbus::types::ObjectPath object_path_for_caller_credentials(const Credentials &credentials)
std::shared_ptr< ObjectPathGenerator > Ptr
ObjectPathGenerator()=default