Lines 0.00% 0 / 4
Functions and Methods 0.00% 0 / 3
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
ExposuresReleasedHandler 0.00% 0 / 4 0.00% 0 / 3 20 0.00% 0 / 1
 __construct 0.00% 0 / 1 0.00% 0 / 1 2
 handledMessageClass 0.00% 0 / 1 0.00% 0 / 1 2
 handle 0.00% 0 / 2 0.00% 0 / 1 6
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Broker\Message;
6
7use Stewart\Runtime\Broker\Exposure\ExposureLink;
8use Stewart\Runtime\Broker\WorkerHandle;
9use Stewart\Runtime\Ipc\Message\ExposuresReleased;
10use Stewart\Runtime\Ipc\Message\WorkerMessage;
11
12/** @implements WorkerMessageHandler<ExposuresReleased> */
13final readonly class ExposuresReleasedHandler implements WorkerMessageHandler
14{
15    public function __construct(private ExposureLink $exposures) {}
16
17    public function handledMessageClass(): string
18    {
19        return ExposuresReleased::class;
20    }
21
22    /** @param ExposuresReleased $message */
23    public function handle(WorkerHandle $handle, WorkerMessage $message): void
24    {
25        if ($message->scope->appId !== null) {
26            $this->exposures->orphanExposuresOfApp($message->scope->appId);
27        }
28    }
29}