~ci-train-bot/location-service/location-service-ubuntu-yakkety-1895

« back to all changes in this revision

Viewing changes to include/location_service/com/ubuntu/location/service/permission_manager.h

  • Committer: Thomas Voß
  • Date: 2013-05-28 14:20:45 UTC
  • Revision ID: thomas.voss@canonical.com-20130528142045-kq5umqdmm4o53vwk
Initial push.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_PERMISSION_MANAGER_H_
 
2
#define LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_PERMISSION_MANAGER_H_
 
3
 
 
4
#include "com/ubuntu/location/channel.h"
 
5
#include "com/ubuntu/location/provider_selection_policy.h"
 
6
 
 
7
#include <functional>
 
8
 
 
9
namespace com
 
10
{
 
11
namespace ubuntu
 
12
{
 
13
namespace location
 
14
{
 
15
namespace service
 
16
{
 
17
struct Credentials
 
18
{
 
19
    pid_t pid;
 
20
    uid_t uid;
 
21
};
 
22
 
 
23
class PermissionManager
 
24
{
 
25
public:
 
26
    typedef std::shared_ptr<PermissionManager> Ptr;
 
27
 
 
28
    enum class Result
 
29
    {
 
30
        granted,
 
31
        rejected
 
32
    };
 
33
 
 
34
    virtual ~PermissionManager() = default;
 
35
    PermissionManager(const PermissionManager&) = delete;
 
36
    PermissionManager& operator=(const PermissionManager&) = delete;
 
37
 
 
38
    virtual Result check_permission_for_credentials(
 
39
        const Criteria& criteria,
 
40
        const Credentials& credentials) = 0;
 
41
    
 
42
protected:
 
43
    PermissionManager() = default;
 
44
};
 
45
}
 
46
}
 
47
}
 
48
}
 
49
#endif // LOCATION_SERVICE_COM_UBUNTU_LOCATION_SERVICE_PERMISSION_MANAGER_H_