t

com.swoval.files

PathWatcher

trait PathWatcher[T] extends Observable[T] with AutoCloseable

Watches directories for file changes. The api permits recursive watching of directories unlike the java.nio.file.WatchService. Some of the behavior may vary by platform due to fundamental differences in the underlying file event apis. For example, Linux doesn't support recursive directory monitoring via inotify, so it's possible in rare cases to miss file events for newly created files in newly created directories. On OSX, it is difficult to disambiguate file creation and modify events, so the Event.Kind is best effort, but should not be relied upon to accurately reflect the state of the file.

Linear Supertypes
AutoCloseable, Observable[T], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PathWatcher
  2. AutoCloseable
  3. Observable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def addObserver(observer: Observer[_ >: T]): Int

    Add an observer of events.

    Add an observer of events.

    observer

    the observer to add

    returns

    the handle to the observer.

    Definition Classes
    Observable
  2. abstract def close(): Unit

    Catch any exceptions in subclasses.

    Catch any exceptions in subclasses.

    Definition Classes
    PathWatcher → AutoCloseable
  3. abstract def register(path: Path, maxDepth: Int): Either[IOException, Boolean]

    Register a path to monitor for file events.

    Register a path to monitor for file events. The watcher will only watch child subdirectories up to maxDepth. For example, with a directory structure like /foo/bar/baz, if we register the path /foo/ with maxDepth 0, we will be notified for any files that are created, updated or deleted in foo, but not bar. If we increase maxDepth to 1, then the files in /foo/bar are monitored, but not the files in /foo/bar/baz.

    path

    the directory to watch for file events

    maxDepth

    the maximum maxDepth of subdirectories to watch

    returns

    an com.swoval.functional.Either containing the result of the registration or an IOException if registration fails. This method should be idempotent and return true the first time the directory is registered or when the depth is changed. Otherwise it should return false.

  4. abstract def removeObserver(handle: Int): Unit

    Remove an observer.

    Remove an observer.

    handle

    the handle that was returned by addObserver

    Definition Classes
    Observable
  5. abstract def unregister(path: Path): Unit

    Stop watching a path.

    Stop watching a path.

    path

    the path to remove from monitoring

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AutoCloseable

Inherited from Observable[T]

Inherited from AnyRef

Inherited from Any

Ungrouped