<?php namespace React\Dns\Query; use React\Dns\Model\Message; class CachedExecutor implements ExecutorInterface { private $executor; private $cache; public function __construct(ExecutorInterface $executor, RecordCache $cache) { $this->executor = $executor; $this->cache = $cache; } public function query($nameserver, Query $query) { $executor = $this->executor; $cache = $this->cache; return $this->cache ->lookup($query) ->then( function ($cachedRecords) use ($query) { return Message::createResponseWithAnswersForQuery($query, $cachedRecords); }, function () use ($executor, $cache, $nameserver, $query) { return $executor ->query($nameserver, $query) ->then(function ($response) use ($cache, $query) { $cache->storeResponseMessage($query->currentTime, $response); return $response; }); } ); } /** * @deprecated unused, exists for BC only */ public function buildResponse(Query $query, array $cachedRecords) { return Message::createResponseWithAnswersForQuery($query, $cachedRecords); } /** * @deprecated unused, exists for BC only */ protected function generateId() { return mt_rand(0, 0xffff); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
CachedExecutor.php | File | 1.48 KB | 0644 |
|
CancellationException.php | File | 93 B | 0644 |
|
Executor.php | File | 5.06 KB | 0644 |
|
ExecutorInterface.php | File | 121 B | 0644 |
|
HostsFileExecutor.php | File | 3 KB | 0644 |
|
Query.php | File | 344 B | 0644 |
|
RecordBag.php | File | 545 B | 0644 |
|
RecordCache.php | File | 2.03 KB | 0644 |
|
RetryExecutor.php | File | 1.15 KB | 0644 |
|
TimeoutException.php | File | 81 B | 0644 |
|
TimeoutExecutor.php | File | 913 B | 0644 |
|