_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 postdate. * * @access protected * @param array $comments * @param int|string $postdate * @return int|string */ protected function getOpenSlot(array &$comments, $postdate) { if (array_key_exists($postdate, $comments)) { $parts = explode('.', (string) $postdate, 2); if (!array_key_exists(1, $parts)) { $parts[1] = 0; } ++$parts[1]; return $this->getOpenSlot($comments, implode('.', $parts)); } return $postdate; } /** * Upgrade pre-version 1 pastes with attachment to version 1 format. * * @access protected * @static * @param array $paste * @return array */ protected static function upgradePreV1Format(array $paste) { if (array_key_exists('attachment', $paste['meta'])) { $paste['attachment'] = $paste['meta']['attachment']; unset($paste['meta']['attachment']); if (array_key_exists('attachmentname', $paste['meta'])) { $paste['attachmentname'] = $paste['meta']['attachmentname']; unset($paste['meta']['attachmentname']); } } return $paste; } }