PRF-File System
Olle Israelsson, Software
Developer
The PRF-File System --- A substitute for resource file with unlimited resource
number
Content
What is the PRF-file system
The PRF-file system (Pseudo Resource Files) is a substitute for resource files
that don't have any limit in number of resources (except disk size), have shorter
access time and (in the final version) can be used cross-platform.
The PRF-file system has some limitations in the writing resources. It has been constructing
to prefer quick reading and not quick writing. So the PRF-file system is substitute
but not a replacement of resource files.
I began developing the PRF-file system as a part of an application. Since it might
be useful for others, I have decided to make it public. I hope the PRF-file system
will provide some benefits to the developer community.
The current version of the PRF-file is only developmental, so I hope that you are
patient about error and mistakes. By making it public I have already gotten very
useful comments.
For more information, check out the PRF
Home Page.
Features of PRF that the resource manager lacks
- 32-bit resource indexes and IDs
- Unlimited number of resources
The only limitation is the disk size.
- Shorter access time
Is about 10 times quicker than ordinary resources. A speed test application (with
source code) is included in the PRF-file package.
- Transparent (application-defined) compression/decompression of resources
Just pass a pointer to the compression or decompression procedure to PRF-file system
and the resources will be transparently compressed and decompressed.
- Opened files can be accessed by indexes, like CountTypes and GetIndType.
- Resources are stored in the data fork
Windoze versions are planned for cross platform development.
- Resource information can be extracted without loading the resource
You can get information about the resource name, ID, size etc. without actually loading
the file.
- Resource type manipulation
A set of rutines to manipulate resource types, changing name, removing all resources
of a type, and alias resource type (I don't know how useful it is; more than one
resource type can share the same resource, e.g., if 'DAT1' and 'DAT2' are aliases
then DAT1 128 will be the same as DAT2 128.
Other features of PRF
- File cache system that enable shorter access time and make it able to open files
that are larger then the free RAM memory
- File references, like the window's and control's reference
- The PRF-file don't have to start from the beginning
It might be possible in final version to store PRF-data in the data fork of the application
and thus forming a cross-platform application resource file.
- Extensive error checking
The PRF-file system should not create any crashes as long as error codes are checked
carefully.
- Rutines for low memory situations.
The PRF-file system include a rutine for shrinking the file cache during lack of
memory situations.
- Built-in support for resource-file to PRF-file conversion.
- As similar to ordinary resources as possible.
- Resources can be purgeable or locked.
- No inits or shared-libraries needed
To use PRF-files you have to include the PRF-library within your application. No
inits or shared-libraries are needed.
PRFFile SDK
Package content
- Libraries, interfaces and header for CodeWarrior (68K and PPC) and Think Pascal.
- Documentation (not in final form)
- PRFViewer --- and application for viewing and converting PRF-files
Similar to ResEdit but much simpler.
- PRFBenchMarks --- a test application
The PRFBenchMarks application lets you compare the speed of PRF-resources and ordinary
resource. Source code is included for verification.
- Classes for TCL
- Sample codes (currently only a few)
- Tuturials
How to get it
The latest version of PRFFile SDK is available at Programmer's
Alley at Pascal Central. Version 0.4 of the SDK is mirrored
at plantecohost.harvard.edu.
If you have any comments or suggestions, please don't hesitate to e-mail
me.
I hope you will be patient with any mistakes, errors, etc.. The documentation is
still incomplete. If you are a C-programmer (even though this is a Pascal programmer
forum), then there might be errors in the header (or be badly done). I'm not using
C myself, so any improvement would be appreciated.
If you have any questions or suggestions, don't hesitate to contact me. Any comments
will encourage me to improve the PRF file system.
If want to have new updates by e-mail, let
me know.
Copyright © 1997 Olle Israelsson
Updated: 14 Mar 1997