1*a1a3b679SAndreas Boehler<?php 2*a1a3b679SAndreas Boehler 3*a1a3b679SAndreas Boehlernamespace Sabre\CalDAV\Backend; 4*a1a3b679SAndreas Boehler 5*a1a3b679SAndreas Boehleruse Sabre\CalDAV\Xml\Notification\NotificationInterface; 6*a1a3b679SAndreas Boehler 7*a1a3b679SAndreas Boehler/** 8*a1a3b679SAndreas Boehler * Adds caldav notification support to a backend. 9*a1a3b679SAndreas Boehler * 10*a1a3b679SAndreas Boehler * Note: This feature is experimental, and may change in between different 11*a1a3b679SAndreas Boehler * SabreDAV versions. 12*a1a3b679SAndreas Boehler * 13*a1a3b679SAndreas Boehler * Notifications are defined at: 14*a1a3b679SAndreas Boehler * http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk/doc/Extensions/caldav-notifications.txt 15*a1a3b679SAndreas Boehler * 16*a1a3b679SAndreas Boehler * These notifications are basically a list of server-generated notifications 17*a1a3b679SAndreas Boehler * displayed to the user. Users can dismiss notifications by deleting them. 18*a1a3b679SAndreas Boehler * 19*a1a3b679SAndreas Boehler * The primary usecase is to allow for calendar-sharing. 20*a1a3b679SAndreas Boehler * 21*a1a3b679SAndreas Boehler * @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/). 22*a1a3b679SAndreas Boehler * @author Evert Pot (http://evertpot.com/) 23*a1a3b679SAndreas Boehler * @license http://sabre.io/license/ Modified BSD License 24*a1a3b679SAndreas Boehler */ 25*a1a3b679SAndreas Boehlerinterface NotificationSupport extends BackendInterface { 26*a1a3b679SAndreas Boehler 27*a1a3b679SAndreas Boehler /** 28*a1a3b679SAndreas Boehler * Returns a list of notifications for a given principal url. 29*a1a3b679SAndreas Boehler * 30*a1a3b679SAndreas Boehler * @param string $principalUri 31*a1a3b679SAndreas Boehler * @return NotificationInterface[] 32*a1a3b679SAndreas Boehler */ 33*a1a3b679SAndreas Boehler function getNotificationsForPrincipal($principalUri); 34*a1a3b679SAndreas Boehler 35*a1a3b679SAndreas Boehler /** 36*a1a3b679SAndreas Boehler * This deletes a specific notifcation. 37*a1a3b679SAndreas Boehler * 38*a1a3b679SAndreas Boehler * This may be called by a client once it deems a notification handled. 39*a1a3b679SAndreas Boehler * 40*a1a3b679SAndreas Boehler * @param string $principalUri 41*a1a3b679SAndreas Boehler * @param NotificationInterface $notification 42*a1a3b679SAndreas Boehler * @return void 43*a1a3b679SAndreas Boehler */ 44*a1a3b679SAndreas Boehler function deleteNotification($principalUri, NotificationInterface $notification); 45*a1a3b679SAndreas Boehler 46*a1a3b679SAndreas Boehler} 47