_last_cache as $key => $last_submission) { if ($last_submission <= $time) { unset($this->_last_cache[$key]); } } } } /** * Save a value. * * @access public * @param string $value * @param string $namespace * @param string $key * @return bool */ abstract public function setValue($value, $namespace, $key = ''); /** * Load a value. * * @access public * @param string $namespace * @param string $key * @return string */ abstract public function getValue($namespace, $key = ''); /** * Returns up to batch size number of paste ids that have expired * * @access protected * @param int $batchsize * @return array */ abstract protected function _getExpiredPastes($batchsize); /** * Perform a purge of old pastes, at most the given batchsize is deleted. * * @access public * @param int $batchsize */ public function purge($batchsize) { if ($batchsize < 1) { return; } $pastes = $this->_getExpiredPastes($batchsize); if (count($pastes)) { foreach ($pastes as $pasteid) { $this->delete($pasteid); } } } /** * Returns all paste ids * * @access public * @return array */ abstract public function getAllPastes(); /** * Get next free slot for comment from the creation timestamp * * The creation timestamp is usually a unix timestamp in seconds, but if a * comment already exists at that timestamp, a number, separated by a dot is * appended to it and incremented, then the function recurses until a free * slot is found. * * @access protected * @param array $comments * @param int|string $created * @return int|string */ protected function getOpenSlot(array &$comments, $created) { if (array_key_exists($created, $comments)) { $parts = explode('.', (string) $created, 2); if (!array_key_exists(1, $parts)) { $parts[1] = 0; } ++$parts[1]; return $this->getOpenSlot($comments, implode('.', $parts)); } return $created; } }