All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jp.nephy.kchroner.plugin.PluginFileWatcher.kt Maven / Gradle / Ivy

package jp.nephy.kchroner.plugin

import io.methvin.watcher.DirectoryChangeEvent
import io.methvin.watcher.DirectoryWatcher
import jp.nephy.kchroner.KChroner
import java.io.Closeable
import java.nio.file.Path

private val logger = KChroner.logger("KChroner.PluginFileWatcher")

class PluginFileWatcher private constructor(private val watcher: DirectoryWatcher): Closeable {
    companion object {
        fun build(directory: Path, listener: (DirectoryChangeEvent) -> Unit): PluginFileWatcher {
            return PluginFileWatcher(DirectoryWatcher.builder().path(directory).listener(listener).build())
        }
    }

    fun start() {
        logger.debug { "PluginFileWatcherが開始されました." }
        watcher.watchAsync()
    }

    override fun close() {
        watcher.close()
        logger.debug { "PluginFileWatcherが終了しました." }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy