Package org.apache.zookeeper.common
Class FileChangeWatcher
- java.lang.Object
-
- org.apache.zookeeper.common.FileChangeWatcher
-
public final class FileChangeWatcher extends Object
Instances of this class can be used to watch a directory for file changes. When a file is added to, deleted from, or is modified in the given directory, the callback provided by the user will be called from a background thread. Some things to keep in mind:- The callback should be thread-safe.
- Changes that happen around the time the thread is started may be missed.
- There is a delay between a file changing and the callback firing.
- The watch is not recursive - changes to subdirectories will not trigger a callback.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFileChangeWatcher.State
-
Constructor Summary
Constructors Constructor Description FileChangeWatcher(Path dirPath, Consumer<WatchEvent<?>> callback)Creates a watcher that watchesdirPathand invokescallbackon changes.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FileChangeWatcher.StategetState()Returns the currentFileChangeWatcher.State.voidstart()Tells the background thread to start.voidstop()Tells the background thread to stop.
-
-
-
Constructor Detail
-
FileChangeWatcher
public FileChangeWatcher(Path dirPath, Consumer<WatchEvent<?>> callback) throws IOException
Creates a watcher that watchesdirPathand invokescallbackon changes.- Parameters:
dirPath- the directory to watch.callback- the callback to invoke with events.event.kind()will return the type of event, andevent.context()will return the filename relative todirPath.- Throws:
IOException- if there is an error creating the WatchService.
-
-
Method Detail
-
getState
public FileChangeWatcher.State getState()
Returns the currentFileChangeWatcher.State.- Returns:
- the current state.
-
start
public void start()
Tells the background thread to start. Does not wait for it to be running. Calling this method more than once has no effect.
-
stop
public void stop()
Tells the background thread to stop. Does not wait for it to exit.
-
-