1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #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;
-
- };
|