A class responsible for scanning a directory, and maintaining a cache of its state (files and timestamps). Changes in the cache can be retrieved throughGetOutstandingChanges(). Changes will be reported for any change in the cached state even between runs of the process.