blob: f82f0b3af02d522b8212d00c2dc5851bb22ef86d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#pragma once
#include "application/api_application.h"
#include <set>
#include "syscb/api_syscb.h"
/* implements non-platform-specific methods of api_application.
You can derive your Application implementation from this to ease your life */
class ApplicationBase : public api_application
{
public:
ApplicationBase();
~ApplicationBase();
/* call this (and check the return value) before doing your own initialization */
int Initialize();
/* and call this after doing your own shutdown */
void Shutdown();
void SetDataPath(nx_uri_t data_path);
void SetPermission(GUID feature);
void RemovePermission(GUID permission);
void SetDeviceID(nx_string_t device_id);
void EnableAllPermissions();
void ClearPermissions();
void NotifyPermissions(api_syscb *system_callbacks); /* pass in the syscb API to avoid a dependency */
void DumpPermissions(); /* dumps permissions list to the log file */
protected:
/* api_application implementation */
int Application_GetDataPath(nx_uri_t *path);
int Application_GetPermission(GUID feature);
int Application_GetFeature(GUID feature);
void Application_SetFeature(GUID feature);
int Application_GetDeviceID(nx_string_t *value);
private:
typedef std::set<GUID> FeatureList;
FeatureList features;
FeatureList permissions;
bool all_permissions_enabled; /* bypass for developer/QA testing */
nx_uri_t data_path;
nx_string_t device_id;
};
|