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\ServerProtocolHandler; 13 14use FreeDSx\Ldap\Exception\OperationException; 15use FreeDSx\Ldap\Protocol\LdapMessageRequest; 16use FreeDSx\Ldap\Protocol\Queue\ServerQueue; 17use FreeDSx\Ldap\Server\RequestHandler\RequestHandlerInterface; 18use FreeDSx\Ldap\Server\Token\TokenInterface; 19use FreeDSx\Socket\Exception\ConnectionException; 20 21/** 22 * Handles request specific protocol communication details. 23 * 24 * @internal 25 * @author Chad Sikorra <Chad.Sikorra@gmail.com> 26 */ 27interface ServerProtocolHandlerInterface 28{ 29 /** 30 * Handle protocol actions specific to the request received. 31 * 32 * @throws OperationException 33 * @throws ConnectionException 34 */ 35 public function handleRequest(LdapMessageRequest $message, TokenInterface $token, RequestHandlerInterface $dispatcher, ServerQueue $queue, array $options): void; 36} 37