xref: /haiku/headers/private/storage/PathMonitor.h (revision f75a7bf508f3156d63a14f8fd77c5e0ca4d08c42)
1 /*
2  * Copyright 2007-2008, Haiku Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _PATH_MONITOR_H
6 #define _PATH_MONITOR_H
7 
8 
9 #include <NodeMonitor.h>
10 
11 
12 // additional flags (combined with those in NodeMonitor.h)
13 #define	B_WATCH_FILES_ONLY		0x0100
14 #define B_WATCH_RECURSIVELY		0x0200
15 #define	B_WATCH_FOLDERS_ONLY	0x0400
16 // NOTE: B_WATCH_RECURSIVELY usually implies to watch for file changes as well,
17 // if that is not desired, add B_WATCH_FOLDERS_ONLY to the flags.
18 
19 #define B_PATH_MONITOR		'_PMN'
20 
21 namespace BPrivate {
22 
23 class BPathMonitor {
24 public:
25 	static	status_t			StartWatching(const char* path, uint32 flags,
26 									BMessenger target);
27 
28 	static	status_t			StopWatching(const char* path,
29 									BMessenger target);
30 	static	status_t			StopWatching(BMessenger target);
31 
32 private:
33 								BPathMonitor();
34 								~BPathMonitor();
35 
36 	static	status_t			_InitLockerIfNeeded();
37 	static	status_t			_InitLooperIfNeeded();
38 };
39 
40 }	// namespace BPrivate
41 
42 #endif	// _PATH_MONITOR_H
43