1<?php
2
3namespace Sabre\CalDAV\Xml\Notification;
4
5use Sabre\Xml\Writer;
6use Sabre\Xml\XmlSerializable;
7
8/**
9 * This interface reflects a single notification type.
10 *
11 * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
12 * @author Evert Pot (http://evertpot.com/)
13 * @license http://sabre.io/license/ Modified BSD License
14 */
15interface NotificationInterface extends XmlSerializable {
16
17    /**
18     * This method serializes the entire notification, as it is used in the
19     * response body.
20     *
21     * @param Writer $writer
22     * @return void
23     */
24    function xmlSerializeFull(Writer $writer);
25
26    /**
27     * Returns a unique id for this notification
28     *
29     * This is just the base url. This should generally be some kind of unique
30     * id.
31     *
32     * @return string
33     */
34    function getId();
35
36    /**
37     * Returns the ETag for this notification.
38     *
39     * The ETag must be surrounded by literal double-quotes.
40     *
41     * @return string
42     */
43    function getETag();
44
45}
46