Lines 0.00% 0 / 3
Functions and Methods 0.00% 0 / 3
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
ExposedEntitySyncedHandler 0.00% 0 / 3 0.00% 0 / 3 12 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 / 1 0.00% 0 / 1 2
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Worker\Message;
6
7use Stewart\Runtime\Ipc\Message\BrokerMessage;
8use Stewart\Runtime\Ipc\Message\ExposedEntitySynced;
9use Stewart\Runtime\Worker\Exposure\ExposedHandleRegistry;
10
11/** @implements BrokerMessageHandler<ExposedEntitySynced> */
12final readonly class ExposedEntitySyncedHandler implements BrokerMessageHandler
13{
14    public function __construct(private ExposedHandleRegistry $handles) {}
15
16    public function handledMessageClass(): string
17    {
18        return ExposedEntitySynced::class;
19    }
20
21    /** @param ExposedEntitySynced $message */
22    public function handle(BrokerMessage $message): void
23    {
24        $this->handles->applySnapshot($message->scope, $message->key, $message->snapshot);
25    }
26}