xref: /plugin/davcal/vendor/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php (revision a1a3b6794e0e143a4a8b51d3185ce2d339be61ab)
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