/** * propagate changes */ public function propagate() { $updater = $this->getUpdater(); if (!$updater) { return; } $updater->propagate($this->backend->getId(), $this->getPrivateUri(), $this->getUserId()); }
/** * @param IBackend $backend * @param string $privateUri * @param string $userId * @return null|ICalendar */ protected function getRemoteAndDeleteIfNecessary(IBackend $backend, $privateUri, $userId) { $calendarAPI = $backend->getCalendarAPI(); $msg = 'CalendarManager \'' . $backend->getId() . '\'::'; $msg .= '\'' . $privateUri . '\' of \'' . $userId . '\''; try { return $calendarAPI->find($privateUri, $userId); } catch (DoesNotExistException $ex) { $msg .= 'is not available, deleting from cache'; $this->logger->debug($msg); $this->removeFromCache($backend->getId(), $privateUri, $userId); return null; } catch (MultipleObjectsReturnedException $ex) { $msg .= 'available multiple times (please check backend!) '; $msg .= 'deleting from cache'; $this->logger->debug($msg); $this->removeFromCache($backend->getId(), $privateUri, $userId); return null; } catch (TemporarilyNotAvailableException $ex) { $msg .= 'temporarily not available, skipping for now'; $this->logger->debug($msg); return null; } catch (CorruptDataException $ex) { $msg .= 'is corrupted on backend, deleting from cache'; $this->logger->debug($msg); $this->removeFromCache($backend->getId(), $privateUri, $userId); return null; } }