-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
111 lines (110 loc) · 5.26 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#+SEQ_TODO: TODO ACTIVE DONE
* General
** TODO [#C] Organize error handling code. :Enhancement:
Some places use error reporting infrastructure, but some use g_return_*.
** DONE [#C] Turn off debug message output by default. :Feature:
CLOSED: [2009-09-14 Mon 20:13]
** DONE [#B] Add static keyword to all private functions. :Bug:
CLOSED: [2009-09-13 Sun 15:15]
** TODO [#C] Seperate private and public APIs. :Enhancement:
** DONE [#A] Make components thread-safe. :Bug:
CLOSED: [2009-09-15 Tue 21:34]
** DONE [#C] Clean up the code according to a coding standard. :Enhancement:
CLOSED: [2009-10-03 Sat 23:52]
** DONE [#A] Stop casting function pointers! :Bug:
CLOSED: [2009-09-19 Sat 15:28]
** DONE [#A] It's probably scanning the same file multiple times! :Enhancement:
CLOSED: [2009-09-28 Mon 17:34]
Wait until trie is implemented.
** TODO [#C] Reduce memory footprints. :Enhancement:
** DONE [#A] Convert filenames to/from UTF-8 after/before disk operation. :Bug:
CLOSED: [2009-10-06 Tue 18:18]
** TODO [#C] Allow pausing the whole system. :Feature:
There might be cases where the watching directory is on an external drive,
and the drive is unmounted. Falcon shouldn't generate DELETED event in this
case, instead it should just pause monitoring. How to handle the case where
the device is not mounted when Falcon is started?
* Handler
** DONE [#B] Handle changed event. :Feature:
CLOSED: [2009-09-14 Mon 20:12]
** DONE [#B] Allow user to pass a userdata to the custom handlers. :Feature:
CLOSED: [2009-09-15 Tue 21:24]
* Walker
** DONE [#A] Create object when walking. :Bug:
CLOSED: [2009-09-11 Fri 23:55]
** DONE [#B] Allow watching a single directory and its descendants. :Feature:
CLOSED: [2009-09-17 Thu 12:42]
Also allow user to stop watching a descendant of a watched directory. Set
watchability in the walker, if the config says that we should watch then
watch it, otherwise the watchability setting should be the same as its parent
directory.
** TODO [#B] Sadly that the system is still not fast enough. :Enhancement:
Don't open the same file multiple times, avoid stat() overhead. Pass the dirp
around.
* Cache
** DONE [#A] Implement trie and use it to store objects. :Enhancement:
CLOSED: [2009-09-28 Mon 17:34]
This will greatly reduce the time spent on scanning. Currently the speed
sucks.
** DONE [#A] Create our own binary file format. :Bug:
CLOSED: [2009-10-06 Tue 18:18]
** TODO [#C] Maybe we should switch to reentrant lock. :Enhancement:
* Falcon
** DONE [#B] Implement the main function. :Feature:
CLOSED: [2009-09-13 Sun 14:40]
** DONE [#B] Implement add_dir function. :Feature:
CLOSED: [2009-09-12 Sat 00:19]
** DONE [#C] Allow setting the watching flag of an object. :Feature:
CLOSED: [2009-09-19 Sat 16:00]
If it's a directory, should propagate the watchability flag to its
descendents.
** DONE [#B] Shutdown the system clearly, including clearing all the memory. :Bug:
CLOSED: [2009-09-13 Sun 15:16]
** TODO [#C] Dynamically control the size of the thread pool. :Enhancement:
** DONE [#B] Check if the system is initialized first in every function. :Enhancement:
CLOSED: [2009-09-19 Sat 15:44]
** DONE [#A] Fix changing watchability flag. :Bug:
CLOSED: [2009-10-03 Sat 22:39]
Need to recursively change all its descendants.
** DONE [#A] Implement delete function. :Feature:
CLOSED: [2009-10-08 Thu 11:54]
Deletes the object and all its descendants from the cache, watcher, and the
currently pending queue (make sure that it's not in one of the walker).
** TODO [#B] Possible optimization in falcon_push(). :Enhancement:
Maybe we don't need to check if the object is already in the pending queue.
** TODO [#C] Combine the common part of the public functions. :Enhancement:
** DONE [#A] Not scanning delete items correctly. :Bug:
CLOSED: [2009-10-08 Thu 16:11]
* Watcher
** DONE [#B] Implement watcher. :Feature:
CLOSED: [2009-09-15 Tue 18:35]
** TODO [#A] Fix memory leak of monitors. :Bug:
** DONE [#A] Delegate the handling to a walker. :Enhancement:
CLOSED: [2009-09-19 Sat 23:31]
Don't handle changes by itself.
** DONE [#A] Newly created sub-directories are not watched. :Bug:
CLOSED: [2009-09-20 Sun 13:29]
** DONE [#A] Normalize path before handing it to the walker. :Bug:
CLOSED: [2009-09-20 Sun 13:20]
If it's an absolute path, do nothing. Otherwise, get the path relative to the
current working directory.
* Config
** DONE [#B] Implement config loader. :Feature:
CLOSED: [2009-09-17 Thu 02:08]
** DONE [#B] Implement config writer. :Feature:
CLOSED: [2009-09-17 Thu 02:08]
* Events
** DONE [#B] Allow users to register a handler for all events. :Feature:
CLOSED: [2009-09-15 Tue 20:25]
* Object
** DONE [#C] We do need the accessors, we also need it for the name. :Enhancement:
CLOSED: [2009-10-03 Sat 23:37]
* Trie
** DONE [#A] Implement trie_foreach with depth-first traversal. :Feature:
CLOSED: [2009-09-28 Mon 17:34]
* Filter
** DONE [#A] Implement filter. :Feature:
CLOSED: [2009-10-29 Thu 00:51]
** TODO [#C] After unregisteration, rescan the directory. :Enhancement:
* Testing
** TODO [#C] Write unit tests. :Enhancement: