Watcher prototype » History » Version 8
Greg Burri, 08/04/2009 10:15 AM
1 | 1 | Greg Burri | h1. Watcher prototype |
---|---|---|---|
2 | |||
3 | 2 | Greg Burri | The cache file structure store all the hashes of the shared files. If a file is added or removed from a shared directory (or a subfolder) it should be added or removed from the cache. |
4 | |||
5 | As far as I know there is no way to watch changes recursively of a folder tree. The QT class _QFileSystemWatcher_ cannot watch recursively. |
||
6 | |||
7 | The only way to synchronize is to periodically scan all the shared data and compare to the cached one. It can be a bit CPU consumer so it should be done with a low priority thread and maybe with a pause between each file hashing. |
||
8 | 3 | Greg Burri | |
9 | 6 | Greg Burri | h2. Native solution |
10 | 1 | Greg Burri | |
11 | 8 | Greg Burri | h3. Linux : inotify |
12 | 1 | Greg Burri | |
13 | 8 | Greg Burri | On Linux it exists a function called "inotify":http://linux.die.net/man/7/inotify |
14 | |||
15 | 5 | Greg Burri | |
16 | 6 | Greg Burri | h3. Windows : FindFirstChangeNotification |
17 | 5 | Greg Burri | |
18 | On Windows a directory and its subtree can be watched, see : http://msdn.microsoft.com/en-us/library/aa365261%28VS.85%29.aspx |
||
19 | 7 | Greg Burri | There is a simple function called _ReadDirectoryChangesW_ : http://msdn.microsoft.com/en-us/library/aa365465%28VS.85%29.aspx |