X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/aa14a4cddcb96b681d5c19a2ec8bad382f43b264..54fa3df9560fe739b5fe20ca561749092cef0fd5:/src/class-finalize-proto.lisp diff --git a/src/class-finalize-proto.lisp b/src/class-finalize-proto.lisp index c7de255..fcb8686 100644 --- a/src/class-finalize-proto.lisp +++ b/src/class-finalize-proto.lisp @@ -7,7 +7,7 @@ ;;;----- Licensing notice --------------------------------------------------- ;;; -;;; This file is part of the Sensble Object Design, an object system for C. +;;; This file is part of the Sensible Object Design, an object system for C. ;;; ;;; SOD is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -28,10 +28,12 @@ ;;;-------------------------------------------------------------------------- ;;; Protocol definition. +(export 'compute-cpl) (defgeneric compute-cpl (class) (:documentation "Returns the class precedence list for CLASS.")) +(export 'compute-chains) (defgeneric compute-chains (class) (:documentation "Compute the layout chains for CLASS. @@ -50,6 +52,15 @@ If the chains are ill-formed (i.e., not distinct) then an error is signalled.")) +(export 'guess-metaclass) +(defgeneric guess-metaclass (class) + (:documentation + "Determine a suitable metaclass for the CLASS. + + The default behaviour is to choose the most specific metaclass of any of + the direct superclasses of CLASS, or to signal an error if that failed.")) + +(export 'check-sod-class) (defgeneric check-sod-class (class) (:documentation "Check the CLASS for validity. @@ -73,6 +84,7 @@ Returns true if all is well; false (and signals errors) if anything was wrong.")) +(export 'finalize-sod-class) (defgeneric finalize-sod-class (class) (:documentation "Computes all of the gory details about a class.