summaryrefslogtreecommitdiffstats
path: root/apps/files_external/3rdparty/icewind/smb/src/INotifyHandler.php
blob: c3ee3ffe8cf81652e14978ab6782be2daa1d91ba (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();

	/**
	 * 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 $callback
	 */
	public function listen($callback);

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