History log of /haiku/src/servers/launch/Events.cpp
Revision Date Author Comments
# b19b3d9b 28-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

launch_daemon: Refactor handling of ExternalEventSources.

* Refactor ResolveExternalEvent to actually return the resolved event,
not just whether or not one was found, and then skip resolution
in TriggerExternalEvent and ResetStickyExternalEvent, which now
should only be passed ExternalEvents.

* ExternalEventSources now store destination Events, not Jobs,
following on that refactor.

* The second variant of ResolveExternalEvents is dropped,
and instead the Register/Unregister functions are implemented.

* Trigger and ResetSticky are now done in ExternalEventSource,
which now keeps track of whether it has been sticky-triggered
or not, though it does not use this information yet.

These changes should not affect behavior, they largely constitute
a reorganization (though some TODOs are resolved.)

Change-Id: I46a51cac0edb90e90b154ef9c94791cb7a1aad94
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4509
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a77aa747 25-Apr-2018 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added basic logging facility

* The daemon now stores many events in am internal log.
* You can use "launch_roster log" to retrieve it.


# 236e68ef 27-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Check requirements before launching a job.

* They were only launched, but we didn't check if we can actually
launch them.


# f0e23c2b 08-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed missing Event member initialization.

* This fixes targets starting seemingly unconditionally.


# f761076b 08-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed DemandEvent::ToString().

* Reported "event" instead of "demand".


# 5f2abaf7 25-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added network_available event & condition.

* Not yet tested.


# 2e17b650 21-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

BLaunchRoster::ResetStickyEvent() added.

* Used to unflag sticky events that already have been triggered once.


# 0f3fcbe4 17-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added volume_mounted event.

* Triggered whenever a volume is mounted (surprise!).
* There is no way to specify which volume you are interested in for now
(if someone knows a good use case, I'd be willing to add that,
though :-)).


# 7cd19b7e 17-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Implemented sticky events, and registration.

* Sticky events are events that keep their signal raised, ie. even if
a job is initialized afterwards, it will still be triggered.
* Consolidated naming for external events.
* Events are now registered once they are actually being used. This
allows them to allocate the resources they need to do their thing.


# e048384d 13-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: launching on demand now actually works.

* Was broken in two ways: if only the shortcut "on_demand" was used,
the event didn't get created at all due to a bug in
Events::AddOnDemand().
* Furthermore, _LaunchJob() always triggered a demand, but it should
only do this when not called from a target.


# 26f8579d 23-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: GCC4 build fix.


# 35059a54 22-Jul-2015 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Or is also a keyword.


# 2ca4f3f8 17-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Jobs were started before their target.

* A job must not be launched when its target hasn't been launched
yet. This fixes Tracker launching when the mount_server scanned
the initial disk, even though the FirstBootPrompt was showing.
* Jobs are no longer initialized when their target has not been launched
yet. This also means that you cannot talk to a service beforehand in
this case.
* Slight refactoring and clarifying, even added some documentation :-)
* _TriggerJob() is now called _LaunchJob(), and does all the checks for
jobs that _LaunchJobs() does now for targets.


# d94e9c97 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added support for external events.

* Other apps can register events, and the launch_daemon can act on them
when they are triggered.


# 2c756e16 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed job event trigger.

* Always check for events before launching a job unconditionally.
* Correctly check for demand before launching a job.


# f6647de3 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed NULL events.

* Also, events now can actually be NULL when there is an empty "on"
field in the settings.
* This fixes a crash, too.


# 5b6c827e 14-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Outlined basic event mechanism.


# 26f8579d4cac74375a9a8b322a86726242879235 23-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: GCC4 build fix.


# 35059a549cdaae2f085c0a93ea3280f347d562f6 22-Jul-2015 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Or is also a keyword.


# 2ca4f3f81d28b528d479f95e29cf6f936e2c7dc7 17-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Jobs were started before their target.

* A job must not be launched when its target hasn't been launched
yet. This fixes Tracker launching when the mount_server scanned
the initial disk, even though the FirstBootPrompt was showing.
* Jobs are no longer initialized when their target has not been launched
yet. This also means that you cannot talk to a service beforehand in
this case.
* Slight refactoring and clarifying, even added some documentation :-)
* _TriggerJob() is now called _LaunchJob(), and does all the checks for
jobs that _LaunchJobs() does now for targets.


# d94e9c97d269f47313d5134d0d90a62dd9428dae 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added support for external events.

* Other apps can register events, and the launch_daemon can act on them
when they are triggered.


# 2c756e16e0b34223176755f8cb38ebab0c4db89a 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed job event trigger.

* Always check for events before launching a job unconditionally.
* Correctly check for demand before launching a job.


# f6647de349e44b22528cb3d738523e2033287856 16-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed NULL events.

* Also, events now can actually be NULL when there is an empty "on"
field in the settings.
* This fixes a crash, too.


# 5b6c827e828a20bb9d7bb357bdcac799fa51d7df 14-Jul-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Outlined basic event mechanism.