public function getData($gid)
{
// Check list cache.
if (($list = $this->_getListCache()) !== null && !isset($list[$gid])) {
throw new Horde_Exception_NotFound();
}
// Check "exists" cache.
if ($this->_checkExistsCache($gid) === false) {
throw new Horde_Exception_NotFound();
}
// Check data cache.
$sig = $this->_sig('data_' . $gid);
try {
if ($data = $this->_cache->get($sig, 0)) {
return @unserialize($data);
}
} catch (Horde_Cache_Exception $e) {
}
// Retrieve data.
$data = $this->_getData($gid);
// Update data cache.
try {
$this->_cache->set($sig, serialize($data));
} catch (Horde_Cache_Exception $e) {
}
return $data;
}