/** * Deletes old events from the container. * * <p>This method is called before calling {@link filterEvents} * or {@link filterMultipleEvents} to delete all expired events * from the container.</p> * * @access public * * @return bool true on success, false otherwise. * */ public function cleanEvents() { $fileName = $this->getFileName(); $containerData = @file($fileName); if (empty($containerData)) { return true; } $handle = @fopen($fileName, 'a+'); if (!$handle) { return false; } $time = parent::cleanEvents(); @ignore_user_abort(true); flock($handle, LOCK_EX); ftruncate($handle, 0); foreach ($containerData as $row) { list($dummy, $dummy, $dummy, $endTime, $dummy) = explode($this->separator, $row, 5); $endTime = (double) $endTime; if ($endTime >= $time) { fwrite($handle, $row); } } flock($handle, LOCK_UN); fclose($handle); @ignore_user_abort(false); return true; }
/** * Deletes old events from the database. * * <p>This method is called before calling {@link filterEvents} * or {@link filterMultipleEvents} to delete all expired events * from the database.</p> * * @access public * * @return bool true on success, false otherwise. * */ public function cleanEvents() { $connection =& $this->getConnection(); $time = parent::cleanEvents(); $sqlQuery = ' DELETE FROM `' . XOAD_EVENTS_TABLE_NAME . '` WHERE `endTime` < ' . $this->escapeString($time, $connection) . ' '; $connection->query($sqlQuery); $this->closeConnection($connection); return true; }