001 /* obj.h - Interface to module for object oriented
002 programming in C. */
003
004 struct class {
005 int size; /* size of data */
006 int nbr_methods;
007 void (**method)();
008 };
009
010 typedef struct class CLASS;
011
012 typedef struct {
013 void *data;
014 CLASS *class;
015 } OBJECT;
016
017 void new_class(CLASS *class, CLASS *super_class,
018 int nbr_methods, int size);
019 void reg_method(CLASS *class, int mth, void (*fcn)());
020 void new_object(OBJECT *obj, CLASS *class);
021 void message(OBJECT *obj, int msg, ...);
022 void free_object(OBJECT *obj);
023 void free_class(CLASS *class);