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; 12 13use FreeDSx\Asn1\Type\AbstractType; 14use FreeDSx\Ldap\Control\Control; 15use FreeDSx\Ldap\Operation\Request\RequestInterface; 16 17/** 18 * The LDAP Message envelope PDU. This represents a message as a request to LDAP. 19 * 20 * @see LdapMessage 21 * @author Chad Sikorra <Chad.Sikorra@gmail.com> 22 */ 23class LdapMessageRequest extends LdapMessage 24{ 25 /** 26 * @var RequestInterface 27 */ 28 protected $request; 29 30 /** 31 * @param int $messageId 32 * @param RequestInterface $request 33 * @param Control ...$controls 34 */ 35 public function __construct(int $messageId, RequestInterface $request, Control ...$controls) 36 { 37 $this->request = $request; 38 parent::__construct($messageId, ...$controls); 39 } 40 41 /** 42 * @return RequestInterface 43 */ 44 public function getRequest(): RequestInterface 45 { 46 return $this->request; 47 } 48 49 /** 50 * @return AbstractType 51 */ 52 protected function getOperationAsn1(): AbstractType 53 { 54 return $this->request->toAsn1(); 55 } 56} 57