public function getShares(array $cids)
{
$all_shares = $missing_ids = array();
foreach ($cids as $cid) {
if (!isset($this->_shareMap[$cid])) {
$missing_ids[] = $cid;
}
}
if (count($missing_ids)) {
$shares = $this->_getShares($missing_ids);
foreach (array_keys($shares) as $key) {
$this->_cache[$key] = $shares[$key];
$this->_shareMap[$shares[$key]->getId()] = $key;
}
}
foreach ($cids as $cid) {
$all_shares[$this->_shareMap[$cid]] = $this->_cache[$this->_shareMap[$cid]];
}
return $all_shares;
}