Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
FSFolder is a file-system-based implementation of Folder.
FSFolder.c is reasonably compact: 347 lines of code. This has been made
possible by offloading as much as possible, e.g. directory iteration into
FSDirHandle.c (286 lines of code, lots of OS-specific stuff).
We should continue to try to put stuff elsewhere, because Folder will tend to
be the class where OS interaction routines accumulate first. For instance, I
think we'll need a Stat class soon. That way, we can have a single method,
Folder_Stat(), instead of methods like Folder_Is_Directory(),
Folder_File_Length(), Folder_Num_Hard_Links(), and so on.
In order to address thread safety for FSFolder, we'll need to make the
"entries" Hash thread safe (as we will for all Folder subclasses). Aside from
that and reference counting, I think it's pretty close.