launch_daemon: Added support for external events.

* Other apps can register events, and the launch_daemon can act on them
  when they are triggered.
This commit is contained in:
Axel Dörfler
2015-07-22 20:45:24 +02:00
parent 2c756e16e0
commit d94e9c97d2
6 changed files with 487 additions and 7 deletions
+4 -1
View File
@@ -22,12 +22,15 @@ namespace BPrivate {
#define B_LAUNCH_DAEMON_PORT_NAME "system:launch_daemon"
// message constants
// Message constants
enum {
B_GET_LAUNCH_DATA = 'lnda',
B_LAUNCH_TARGET = 'lntg',
B_LAUNCH_SESSION = 'lnse',
B_REGISTER_SESSION_DAEMON = 'lnrs',
B_REGISTER_LAUNCH_EVENT = 'lnre',
B_UNREGISTER_LAUNCH_EVENT = 'lnue',
B_NOTIFY_LAUNCH_EVENT = 'lnne',
};
+9
View File
@@ -30,12 +30,21 @@ public:
status_t StartSession(const char* login);
status_t RegisterEvent(const BMessenger& source,
const char* name);
status_t UnregisterEvent(const BMessenger& source,
const char* name);
status_t NotifyEvent(const BMessenger& source,
const char* name);
class Private;
private:
friend class Private;
void _InitMessenger();
status_t _UpdateEvent(uint32 what,
const BMessenger& source, const char* name);
private:
BMessenger fMessenger;