Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • Core
    • 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.

      Attachments

        1. fsfolder_support.diff
          3 kB
          Marvin Humphrey
        2. FSFolder.bp
          2 kB
          Marvin Humphrey
        3. FSFolder.c
          8 kB
          Marvin Humphrey
        4. FSFolder.pm
          0.9 kB
          Marvin Humphrey
        5. TestFolderCommon.bp
          1 kB
          Marvin Humphrey
        6. TestFolderCommon.c
          19 kB
          Marvin Humphrey
        7. TestFSFolder.bp
          0.7 kB
          Marvin Humphrey
        8. TestFSFolder.c
          2 kB
          Marvin Humphrey

        Activity

          People

            marvin Marvin Humphrey
            marvin Marvin Humphrey
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: