168 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
namespace Magento\Shipping\Model\Rate\Result;
 | 
						|
 | 
						|
/**
 | 
						|
 * ProxyDeferred class for @see \Magento\Shipping\Model\Rate\Result
 | 
						|
 */
 | 
						|
class ProxyDeferred extends \Magento\Shipping\Model\Rate\Result implements \Magento\Framework\ObjectManager\NoninterceptableInterface
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Proxied instance
 | 
						|
     *
 | 
						|
     * @var string
 | 
						|
     */
 | 
						|
    private $instance = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Deferred to wait for
 | 
						|
     *
 | 
						|
     * @var string
 | 
						|
     */
 | 
						|
    private $deferred = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * ProxyDeferred constructor
 | 
						|
     *
 | 
						|
     * @param \Magento\Framework\ObjectManager\DefinitionFactory $objectManager
 | 
						|
     */
 | 
						|
    public function __construct(\Magento\Framework\Async\DeferredInterface $deferred)
 | 
						|
    {
 | 
						|
        $this->deferred = $deferred;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Serialize only the instance
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public function __sleep()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return ['instance'];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Clone proxied instance
 | 
						|
     */
 | 
						|
    public function __clone()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        $this->instance = clone $this->instance;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get proxied instance
 | 
						|
     *
 | 
						|
     * @return \Magento\Shipping\Model\Rate\Result
 | 
						|
     */
 | 
						|
    private function wait()
 | 
						|
    {
 | 
						|
        if (!$this->instance) {
 | 
						|
            $this->instance = $this->deferred->get();
 | 
						|
            if (!$this->instance instanceof \Magento\Shipping\Model\Rate\Result) {
 | 
						|
                throw new \RuntimeException('Wrong instance returned by deferred');
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $this->instance;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function reset()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->reset();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function setError($error)
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->setError($error);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function getError()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->getError();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function append($result)
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->append($result);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function getAllRates()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->getAllRates();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function getRateById($id)
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->getRateById($id);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function getRatesByCarrier($carrier)
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->getRatesByCarrier($carrier);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function asArray()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->asArray();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function getCheapestRate()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->getCheapestRate();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function sortRatesByPrice()
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->sortRatesByPrice();
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritDoc
 | 
						|
     */
 | 
						|
    public function updateRatePrice($packageCount)
 | 
						|
    {
 | 
						|
        $this->wait();
 | 
						|
        return $this->instance->updateRatePrice($packageCount);
 | 
						|
    }
 | 
						|
}
 |