MPQFS is implemented in Objective-C in order to interface with MPQKit. However, because the FUSE user-space library (provided by MacFuse) is a C library, I had to write a thin wrapping layer to convert the C callback functions required by FUSE to Objective-C method invocations. This layer is simplistic enough that I had to disable multi-threading support in MPQFS (I’m not too sure of MPQKit’s thread safety status either).
Well today, a new MacFUSE release introduced an Objective-C framework with well-defined classes and protocols ready to be sub-classed (and delegated) to implement filesystems entirely in Objective-C. I may or may not adopt this framework in MPQFS (don’t change code that works), but I will certainly take a look at its implementation to see if I can improve my implementation in any ways.
I also recommend anyone using MPQFS to grab the new MacFUSE version. It has a short, but always appreciated, list of bug fixes.
