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\Server; 13 14use FreeDSx\Ldap\Exception\RuntimeException; 15use FreeDSx\Ldap\Server\RequestHandler\PagingHandlerInterface; 16use FreeDSx\Ldap\Server\RequestHandler\RequestHandlerInterface; 17use FreeDSx\Ldap\Server\RequestHandler\RootDseHandlerInterface; 18 19/** 20 * Responsible for instantiating classes needed by the core server logic. 21 * 22 * @author Chad Sikorra <Chad.Sikorra@gmail.com> 23 */ 24interface HandlerFactoryInterface 25{ 26 /** 27 * @return RequestHandlerInterface 28 * @throws RuntimeException 29 */ 30 public function makeRequestHandler(): RequestHandlerInterface; 31 32 /** 33 * @return RootDseHandlerInterface|null 34 * @throws RuntimeException 35 */ 36 public function makeRootDseHandler(): ?RootDseHandlerInterface; 37 38 /** 39 * @return PagingHandlerInterface|null 40 * @throws RuntimeException 41 */ 42 public function makePagingHandler(): ?PagingHandlerInterface; 43} 44