* */ trait ManagesTransportCallbacks { /** @var callable(string, ?Uuid): void */ protected $messageListener; /** @var callable(Uuid): void */ protected $sessionEndListener; /** @var callable(Uuid): array}> */ protected $outgoingMessagesProvider; /** @var callable(Uuid): array> */ protected $pendingRequestsProvider; /** @var callable(int, Uuid): Response>|Error|null */ protected $responseFinder; /** @var callable(FiberSuspend|null, ?Uuid): void */ protected $fiberYieldHandler; public function onMessage(callable $listener): void { $this->messageListener = $listener; } public function onSessionEnd(callable $listener): void { $this->sessionEndListener = $listener; } public function setOutgoingMessagesProvider(callable $provider): void { $this->outgoingMessagesProvider = $provider; } public function setPendingRequestsProvider(callable $provider): void { $this->pendingRequestsProvider = $provider; } /** * @param callable(int, Uuid):(Response>|Error|null) $finder */ public function setResponseFinder(callable $finder): void { $this->responseFinder = $finder; } /** * @param callable(FiberSuspend|null, ?Uuid): void $handler */ public function setFiberYieldHandler(callable $handler): void { $this->fiberYieldHandler = $handler; } }