<?php /** * * Controls access to the storage backend class where a file is stored. * */ class ProxyStorageBackend extends StorageBackend { private $storageBackend; /** * Receives the file's storage backend and instantiates the appropriate * object. */ public function __construct($storageBackend) { $CC_CONFIG = Config::getConfig(); // The storage backend in the airtime.conf directly corresponds to // the name of the class that implements it, so we can create the // right backend object dynamically: if ($storageBackend == "file") { $this->storageBackend = new FileStorageBackend(); } else { $this->storageBackend = new $storageBackend($CC_CONFIG[$storageBackend]); } } public function getAbsoluteFilePath($resourceId) { return $this->storageBackend->getAbsoluteFilePath($resourceId); } public function getDownloadURLs($resourceId, $contentDispositionFilename) { return $this->storageBackend->getDownloadURLs($resourceId, $contentDispositionFilename); } public function deletePhysicalFile($resourceId) { $this->storageBackend->deletePhysicalFile($resourceId); } public function deleteAllCloudFileObjects() { $this->storageBackend->deleteAllCloudFileObjects(); } public function getFilePrefix() { return $this->storageBackend->getFilePrefix(); } }