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\ClientProtocolHandler;
12
13use FreeDSx\Ldap\Exception\OperationException;
14use FreeDSx\Ldap\Exception\UnsolicitedNotificationException;
15use FreeDSx\Ldap\Protocol\LdapMessageResponse;
16
17/**
18 * Handles request specific protocol communication details.
19 *
20 * @internal
21 * @author Chad Sikorra <Chad.Sikorra@gmail.com>
22 */
23interface RequestHandlerInterface
24{
25    /**
26     * Pass a request to the specific handler and return a response (if applicable).
27     *
28     * @throws UnsolicitedNotificationException
29     * @throws OperationException
30     */
31    public function handleRequest(ClientProtocolContext $context): ?LdapMessageResponse;
32}
33