diff --git a/CloudObjects/SDK/ObjectRetriever.php b/CloudObjects/SDK/ObjectRetriever.php index 42ec61b..266e6b1 100644 --- a/CloudObjects/SDK/ObjectRetriever.php +++ b/CloudObjects/SDK/ObjectRetriever.php @@ -29,6 +29,7 @@ class ObjectRetriever implements CustomCacheAndLogInterface { private $options; private $cache; private $objects; + private $defaultReader; const CO_API_URL = 'https://api.cloudobjects.net/'; @@ -107,6 +108,22 @@ class ObjectRetriever implements CustomCacheAndLogInterface { $this->client = new Client($options); } + /** + * Set a default reader for CloudObject instances. + */ + public function setDefaultReader(NodeReader $reader) : self { + $this->defaultReader = $reader; + + return $this; + } + + /** + * Get the default reader for CloudObject instances. + */ + public function getDefaultReader() : NodeReader { + return $this->defaultReader; + } + public function logInfoWithTime($message, $ts) { if (isset($this->logger)) $this->logger->info($message, [ 'elapsed_ms' => round((microtime(true) - $ts) * 1000) ]); @@ -179,7 +196,14 @@ class ObjectRetriever implements CustomCacheAndLogInterface { return null; } - return new CloudObject($coid, $node); + $object = new CloudObject($coid, $node); + + if ($this->defaultReader) { + // Initialize CloudObject with default reader if it is set + $object->setReader($this->defaultReader); + } + + return $object; } /**