src/Pure/General/file_watcher.scala
changeset 64859 e600cfdc9e97
parent 64858 e31cf6eaecb8
child 64867 e7220f4de11f
equal deleted inserted replaced
64858:e31cf6eaecb8 64859:e600cfdc9e97
    24 }
    24 }
    25 
    25 
    26 object File_Watcher
    26 object File_Watcher
    27 {
    27 {
    28   val none: File_Watcher = new File_Watcher
    28   val none: File_Watcher = new File_Watcher
       
    29   {
       
    30     override def toString: String = "File_Watcher.none"
       
    31   }
    29 
    32 
    30   def apply(handle: Set[JFile] => Unit, delay: => Time = Time.seconds(0.5)): File_Watcher =
    33   def apply(handle: Set[JFile] => Unit, delay: => Time = Time.seconds(0.5)): File_Watcher =
    31     if (Platform.is_windows) none else new Impl(handle, delay)
    34     if (Platform.is_windows) none else new Impl(handle, delay)
    32 
    35 
    33 
    36 
    39 
    42 
    40   class Impl private[File_Watcher](handle: Set[JFile] => Unit, delay: Time) extends File_Watcher
    43   class Impl private[File_Watcher](handle: Set[JFile] => Unit, delay: Time) extends File_Watcher
    41   {
    44   {
    42     private val state = Synchronized(File_Watcher.State())
    45     private val state = Synchronized(File_Watcher.State())
    43     private val watcher = FileSystems.getDefault.newWatchService()
    46     private val watcher = FileSystems.getDefault.newWatchService()
       
    47 
       
    48     override def toString: String =
       
    49       state.value.dirs.keySet.mkString("File_Watcher(", ", ", ")")
    44 
    50 
    45 
    51 
    46     /* registered directories */
    52     /* registered directories */
    47 
    53 
    48     override def register(dir: JFile): Unit =
    54     override def register(dir: JFile): Unit =