Welcome to mirror list, hosted at ThFree Co, Russian Federation.

INotifyHandler.php « src « smb « icewind « 3rdparty « files_external « apps - github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e964a15fa37df47e08b79214aa1180f873eb6423 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/**
 * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl>
 * This file is licensed under the Licensed under the MIT license:
 * http://opensource.org/licenses/MIT
 *
 */

namespace Icewind\SMB;

interface INotifyHandler {
	// https://msdn.microsoft.com/en-us/library/dn392331.aspx
	const NOTIFY_ADDED = 1;
	const NOTIFY_REMOVED = 2;
	const NOTIFY_MODIFIED = 3;
	const NOTIFY_RENAMED_OLD = 4;
	const NOTIFY_RENAMED_NEW = 5;
	const NOTIFY_ADDED_STREAM = 6;
	const NOTIFY_REMOVED_STREAM = 7;
	const NOTIFY_MODIFIED_STREAM = 8;
	const NOTIFY_REMOVED_BY_DELETE = 9;

	/**
	 * Get all changes detected since the start of the notify process or the last call to getChanges
	 *
	 * @return Change[]
	 */
	public function getChanges(): array;

	/**
	 * Listen actively to all incoming changes
	 *
	 * Note that this is a blocking process and will cause the process to block forever if not explicitly terminated
	 *
	 * @param callable(Change):?bool $callback
	 */
	public function listen(callable $callback): void;

	/**
	 * Stop listening for changes
	 *
	 * Note that any pending changes will be discarded
	 */
	public function stop(): void;
}