mapping files to objects
cwg@DeepEddy.Com
cwg@DeepEddy.Com
Tue, 06 May 1997 11:40:11 -0500
--==_Exmh_417284588P
Content-Type: text/plain; charset=us-ascii
In the interest of getting something that is (a) implementable on top of the
Unix file system and (b) has semantics that can be expanded to The Right
Thing (tm) later, I'd like to make a modest proposal (no, we aren't going to
eat our young).
1) Let's take the CL path objects and add the notion of a file type to the
object. This file type would *not* appear in the printed representation of
the path, but would instead by set and read by accessor functions. This type
could then be mapped into a MIME type or a MacOS style owner/type pair.
Initially, I thought it should be a MIME type, but then my stupidity passed
and I realized that it should be a CLOS class. *duh*. This class would have
a method for determining the MIME type or any other foreign typing system
necessary.
2) Since a Unix file system doesn't have these semantics in it, let's define a
facility which allows one to define mappings between Unix paths and the above
defined classes. A similar facility should be defined between MIME types and
classes.
(def-unix-extension-map "tar"
:class 'tarball)
(def-mime-type-map "application/x-tar"
:class 'tarball)
(def-unix-directory-map "/var/spool/mail"
:contains-class 'mbox)
(def-unix-filename-map "README"
:class 'text-file)
(def-unix-extension-map "lisp"
:class 'lisp-source-code)
lisp-source-code and mbox are probably built on text-file with additional
methods for handling lisp source and the broken Unix mailfile format.
3) It now becomes nearly trivial to write the function that I previously
proposed to map from a pathname to an object representing that file.
4) When/if we write our own file system, this can be implemented natively so
that all files would have a class associated with them. Our file system
wouldn't need real extensions so we'd do away with that baggage, but it should
still support some form of soft deletion and versioning.
5) Even if we never develop a working Object-Oriented store, we're already
well ahead of the rest of the universe in our file type information (and, most
importantly, it gives me the hooks that I want to start writing a
well-integrated mail system).
Comments?
Chris
--
Chris Garrigues O- cwg@DeepEddy.Com
Deep Eddy Internet Consulting +1 512 432 4046
609 Deep Eddy Avenue
Austin, TX 78703-4513 http://www.DeepEddy.Com/~cwg/
--==_Exmh_417284588P
Content-Type: application/pgp-signature
-----BEGIN PGP MESSAGE-----
Version: 2.6.2
iQB1AwUBM29e5JaQnaaFII2dAQFB7AL7B+tDvTjz8xYI+Hrm7JweNPpM8/m3FMA+
l4AzKXPPXDiPOvQiiMppj4UFP8mdblEU4zz+ayX2WJgvR4tEIvxxDJLh4EC4i7J1
5qN7sTqLpxmYdbL5R+62BwAaDDRSYmuU
=1BGi
-----END PGP MESSAGE-----
--==_Exmh_417284588P--