Class FileWatcher
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.perspective.gateway.files.FileWatcher
- All Implemented Interfaces:
Lifecycle
Creates a
WatchService from the injected FileSystem and registers it to the
injected Path to watch. When started, instances of this class will schedule polling tasks
on the injected SchedulerAbstraction to check whether or not the directory represented by
the injected path to watch exists and is a valid directory and if so, will start watching that
directory and will call the injected listener with a FileWatcher.FileWatchEventType.REGISTER event
type and a null path, else it will continue polling until the directory is created or it is shut
down. Once the directory is being watched, if a file was created, modified, or deleted in the
watched directory in between each poll cycle, then the respective FileWatcher.FileWatchEventType will
be passed to the injected listener along with the full path to the file for each watch event
which occurred for that poll cycle. If there is an overflow of events from the FileSystem, the
injected listener will be called with a FileWatcher.FileWatchEventType.OVERFLOW event type and a null
path. This watcher handles the case where the path to watch is deleted while it is being watched.
In this case, it falls back to the above mentioned behavior when the watcher is started up and
the path to watch does not represent a directory or does not exist. If the path to watch is
re-created as a valid directory, the watcher will resume watching the path for changes and will
notify the listener with a FileWatcher.FileWatchEventType.REGISTER event type and a null path.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumRepresents the types of file watch events which may occur -
Constructor Summary
ConstructorsConstructorDescriptionFileWatcher(FileSystem fileSystem, Path pathToWatch, SchedulerAbstraction scheduler, BiConsumer<FileWatcher.FileWatchEventType, Path> listener) The primary constructor for creating instances of theFileWatcher. -
Method Summary
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
Constructor Details
-
FileWatcher
public FileWatcher(@Nonnull FileSystem fileSystem, @Nonnull Path pathToWatch, @Nonnull SchedulerAbstraction scheduler, @Nonnull BiConsumer<FileWatcher.FileWatchEventType, Path> listener) The primary constructor for creating instances of theFileWatcher.- Parameters:
fileSystem- TheFileSystemwhich has the injected path which will be watchedpathToWatch- ThePathto watchscheduler- TheSchedulerAbstractionused to schedule polling taskslistener- TheBiConsumerlistener which will be called when the watcher is registered with the path to watch and for any watch events which occur in the watched path per poll cycle
-
-
Method Details
-
onStartup
protected void onStartup()- Specified by:
onStartupin classAbstractLifecycle
-
onShutdown
protected void onShutdown()- Specified by:
onShutdownin classAbstractLifecycle
-