HEX
Server: Apache
System: Linux dinesh8189 5.15.98-grsec-sharedvalley-2.lc.el8.x86_64 #1 SMP Thu Mar 9 09:07:30 -03 2023 x86_64
User: cgmgerenciamento1 (814285)
PHP: 8.1.26
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/watched_file.rb
require 'puppet/util/watcher'

# Monitor a given file for changes on a periodic interval. Changes are detected
# by looking for a change in the file ctime.
class Puppet::Util::WatchedFile
  # @!attribute [r] filename
  #   @return [String] The fully qualified path to the file.
  attr_reader :filename

  # @param filename [String] The fully qualified path to the file.
  # @param timer [Puppet::Util::Watcher::Timer] The polling interval for checking for file
  #   changes. Setting the timeout to a negative value will treat the file as
  #   always changed. Defaults to `Puppet[:filetimeout]`
  def initialize(filename, timer = Puppet::Util::Watcher::Timer.new(Puppet[:filetimeout]))
    @filename = filename
    @timer = timer

    @info = Puppet::Util::Watcher::PeriodicWatcher.new(
      Puppet::Util::Watcher::Common.file_ctime_change_watcher(@filename),
      timer)
  end

  # @return [true, false] If the file has changed since it was last checked.
  def changed?
    @info.changed?
  end

  # Allow this to be used as the name of the file being watched in various
  # other methods (such as Puppet::FileSystem.exist?)
  def to_str
    @filename
  end

  def to_s
    "<WatchedFile: filename = #{@filename}, timeout = #{@timer.timeout}>"
  end
end