Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Core
    • Labels:
      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. TestFSFolder.c
          2 kB
          Marvin Humphrey
        2. TestFSFolder.bp
          0.7 kB
          Marvin Humphrey
        3. TestFolderCommon.c
          19 kB
          Marvin Humphrey
        4. TestFolderCommon.bp
          1 kB
          Marvin Humphrey
        5. FSFolder.pm
          0.9 kB
          Marvin Humphrey
        6. FSFolder.c
          8 kB
          Marvin Humphrey
        7. FSFolder.bp
          2 kB
          Marvin Humphrey
        8. fsfolder_support.diff
          3 kB
          Marvin Humphrey

          Activity

            People

            • Assignee:
              creamyg Marvin Humphrey
              Reporter:
              creamyg Marvin Humphrey
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: