# Passenger::FileChangeChecker Class Reference

A utility class for checking for file changes. More...

`#include <FileChangeChecker.h>`

List of all members.

## Public Member Functions
| FileChangeChecker (unsigned int maxSize=0)
| Create a FileChangeChecker object.
bool | changed (const string &filename, unsigned int throttleRate=0)
| Checks whether, since the last call to changed() with this filename, the file's timestamp has changed or whether the file has been created or removed.
void | setMaxSize (unsigned int maxSize)
| Change the maximum size of the internal file list.
bool | knows (const string &filename) const
| Returns whether `filename` is in the internal file list.

## Detailed Description

A utility class for checking for file changes.

Example:

     FileChangeChecker checker;
     checker.changed("foo.txt");   // false
     writeToFile("foo.txt");
     checker.changed("foo.txt");   // true
     checker.changed("foo.txt");   // false

FileChangeChecker uses stat() to retrieve file information. It also supports throttling in order to limit the number of actual stat() calls. This can improve performance on systems where disk I/O is a problem.

## Constructor & Destructor Documentation

Passenger::FileChangeChecker::FileChangeChecker | ( | unsigned int | maxSize = `0` | ) | `[inline]`

Create a FileChangeChecker object.

Parameters:

  | maxSize | The maximum size of the internal file list. A size of 0 means unlimited.

## Member Function Documentation

bool Passenger::FileChangeChecker::changed | ( | const string & | filename,
|  | unsigned int | throttleRate = `0` |
| ) |  |  | `[inline]`

Checks whether, since the last call to changed() with this filename, the file's timestamp has changed or whether the file has been created or removed.

If the stat() call fails for any other reason (e.g. the directory is not readable) then this method will return false.

If this method was called with this filename for the first time, or if information about this file has since been removed from the internal file list, then this method will return whether the file is stat()-able. That is, if the file doesn't exist then it will return false, but if the directory is not readable then it will also return false.

Parameters:

  | filename | The file to check. Note that two different filename strings are treated as two different files, so you should use absolute filenames if you change working directory often.
  | throttleRate | When set to a non-zero value, throttling will be enabled. stat() will be called at most once per throttleRate seconds.

Exceptions:

  | TimeRetrievalException | Something went wrong while retrieving the system time.
  | boost::thread_interrupted |

void Passenger::FileChangeChecker::setMaxSize | ( | unsigned int | maxSize | ) | `[inline]`

Change the maximum size of the internal file list.

A size of 0 means unlimited.

The documentation for this class was generated from the following file:

- FileChangeChecker.h