;;;----- 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
;;;--------------------------------------------------------------------------
;;; 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.
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.
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.