Пример #1
0
 /**
  * @param string $backendId
  * @param string $privateUri
  * @param string $userId
  */
 public function remove($backendId, $privateUri, $userId)
 {
     $cache = $this->backends->getCache();
     $calendar = $cache->findByPrivateUri($backendId, $privateUri, $userId);
     $objectCache = $calendar->getBackend()->getObjectCache($calendar);
     $objectCache->clear();
     $cache->deleteByUris([['backendId' => $backendId, 'privateUri' => $privateUri, 'userId' => $userId]]);
 }
 /**
  * @param IBackendCollection $backends
  */
 public function __construct(IBackendCollection $backends)
 {
     $this->backends = $backends;
     $this->cache = $backends->getCache();
     $this->updater = $backends->getUpdater();
     $this->watcher = $backends->getWatcher();
 }
Пример #3
0
 /**
  * remove deleted calendars from cache
  * @param string $userId
  */
 public function clean($userId)
 {
     /** @var IBackend $backend */
     foreach ($this->backends as $backend) {
         $backendId = $backend->getId();
         $calendarAPI = $backend->getCalendarAPI();
         $cache = $this->backends->getCache();
         $list = $calendarAPI->listAll($userId);
         $cached = $cache->listAllByBackend($backendId, $userId);
         $cList = [];
         foreach ($cached as $c) {
             $cList[] = $c['privateuri'];
         }
         $deletedOnBackend = array_diff($cList, $list);
         $uris = [];
         foreach ($deletedOnBackend as $toDelete) {
             $uris[] = ['backendId' => $backendId, 'privateUri' => $toDelete, 'userId' => $userId];
         }
         $cache->deleteByUris($uris);
     }
 }
Пример #4
0
 /**
  * @param IBackendCollection $backends
  * @param ILogger $logger
  */
 public function __construct(IBackendCollection $backends, ILogger $logger)
 {
     $this->backends = $backends;
     $this->cache = $backends->getCache();
     $this->logger = $logger;
 }