* objects.h: Removed slots direct_supers and direct_slots from the
[bpt/guile.git] / libguile / objects.h
index 3de1b5f..727e293 100644 (file)
  *
  * An example of an operator class is the class <tk-command>.
  */
-#define SCM_METACLASS_STANDARD_LAYOUT "pwpw"
+#define SCM_METACLASS_STANDARD_LAYOUT ""
 struct scm_metaclass_standard {
   SCM layout;
   SCM vcell;
   SCM vtable;
   SCM print;
-  SCM direct_supers;
-  SCM direct_slots;
 };
 
-#define SCM_METACLASS_OPERATOR_LAYOUT "pwpwpwpwpwpw"
+#define SCM_METACLASS_OPERATOR_LAYOUT "popopopo"
 struct scm_metaclass_operator {
   SCM layout;
   SCM vcell;
   SCM vtable;
   SCM print;
-  SCM direct_supers;
-  SCM direct_slots;
   SCM proc0;
   SCM proc1;
   SCM proc2;
@@ -162,7 +158,7 @@ struct scm_metaclass_operator {
  *
  * An example of an entity class is the class of generic methods.
  */
-#define SCM_ENTITY_LAYOUT "pwpwpwpw"
+#define SCM_ENTITY_LAYOUT "popopopo"
 typedef struct scm_entity {
   SCM proc0;
   SCM proc1;
@@ -173,6 +169,13 @@ typedef struct scm_entity {
 extern SCM scm_metaclass_standard;
 extern SCM scm_metaclass_operator;
 
+extern SCM scm_entity_p (SCM obj);
+extern SCM scm_set_object_procedure_x (SCM obj, SCM procs);
+extern SCM scm_make_class_object (SCM metaclass, SCM layout);
+extern SCM scm_make_subclass_object (SCM class, SCM layout);
+
+extern SCM scm_i_make_class_object (SCM metaclass, SCM layout_string,
+                                   unsigned long flags);
 extern void scm_init_objects SCM_P ((void));
 
 #endif /* OBJECTSH */