1<?php
2
3/**
4 * This file is part of the FreeDSx LDAP package.
5 *
6 * (c) Chad Sikorra <Chad.Sikorra@gmail.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace FreeDSx\Ldap\Protocol\ClientProtocolHandler;
13
14use FreeDSx\Ldap\Exception\OperationException;
15use FreeDSx\Ldap\Exception\UnsolicitedNotificationException;
16use FreeDSx\Ldap\Protocol\LdapMessageResponse;
17
18/**
19 * Handles request specific protocol communication details.
20 *
21 * @internal
22 * @author Chad Sikorra <Chad.Sikorra@gmail.com>
23 */
24interface RequestHandlerInterface
25{
26    /**
27     * Pass a request to the specific handler and return a response (if applicable).
28     *
29     * @throws UnsolicitedNotificationException
30     * @throws OperationException
31     */
32    public function handleRequest(ClientProtocolContext $context): ?LdapMessageResponse;
33}
34