1<?php
2/**
3 * This file is part of the FreeDSx LDAP package.
4 *
5 * (c) Chad Sikorra <Chad.Sikorra@gmail.com>
6 *
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
9 */
10
11namespace FreeDSx\Ldap\Protocol\ServerProtocolHandler;
12
13use FreeDSx\Ldap\Exception\OperationException;
14use FreeDSx\Ldap\Protocol\LdapMessageRequest;
15use FreeDSx\Ldap\Protocol\Queue\ServerQueue;
16use FreeDSx\Ldap\Server\RequestHandler\RequestHandlerInterface;
17use FreeDSx\Ldap\Server\Token\TokenInterface;
18
19/**
20 * Handles request specific protocol communication details.
21 *
22 * @internal
23 * @author Chad Sikorra <Chad.Sikorra@gmail.com>
24 */
25interface ServerProtocolHandlerInterface
26{
27    /**
28     * Handle protocol actions specific to the request received.
29     *
30     * @throws OperationException
31     */
32    public function handleRequest(LdapMessageRequest $message, TokenInterface $token, RequestHandlerInterface $dispatcher, ServerQueue $queue, array $options): void;
33}
34