public function getSoftDeleted()
{
if (empty($this->_status[self::HIGHESTMODSEQ])) {
// non-CONDSTORE server, we actually already have this data without
// having to search the server again. If we don't have an entry in
// $this->_flags, the message was not returned in the latest query,
// so it is either deleted or outside the range.
$good_uids = array_keys($this->_flags);
$messages = array_diff(array_keys($this->_messages), $this->_removed);
$soft = array_diff($messages, $good_uids);
// Now remove them so we don't return them again next time, and we
// don't need to remember them since once they are SOFTDELETED, we
// no longer care about any changes to the message.
foreach ($soft as $id) {
unset($this->_messages[$id]);
}
return $soft;
} else {
return $this->_softDeleted;
}
}