Basic caching for dir result

This commit is contained in:
Robin Appelman 2013-03-03 23:03:33 +01:00
commit 7f2eb4db32
2 changed files with 78 additions and 4 deletions

View file

@ -12,6 +12,9 @@ class Server {
const CLIENT = 'smbclient';
const LOCALE = 'en_US.UTF-8';
const CACHING_ENABLED = true;
const CACHING_DISABLED = true;
/**
* @var string $host
*/
@ -27,15 +30,21 @@ class Server {
*/
private $password;
/**
* @var bool $caching
*/
private $caching;
/**
* @param string $host
* @param string $user
* @param string $password
*/
public function __construct($host, $user, $password) {
public function __construct($host, $user, $password, $caching = self::CACHING_ENABLED) {
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->caching = $caching;
}
/**
@ -55,7 +64,7 @@ class Server {
/**
* @return string
*/
public function getPassword(){
public function getPassword() {
return $this->password;
}
@ -74,7 +83,7 @@ class Server {
$shareNames = $cmd->run(null);
$shares = array();
foreach ($shareNames as $name => $description) {
$shares[] = new Share($this, $name);
$shares[] = $this->getShare($name);
}
return $shares;
}
@ -84,6 +93,10 @@ class Server {
* @return Share
*/
public function getShare($name) {
return new Share($this, $name);
if ($this->caching === self::CACHING_ENABLED) {
return new CachingShare($this, $name);
} else {
return new Share($this, $name);
}
}
}