[BACK]Return to sample.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan / Kclass

Annotation of OpenXM/src/kan96xx/Kan/Kclass/sample.c, Revision 1.1

1.1     ! maekawa     1: /* Kclass/sample.c   sample new class. */
        !             2: /* How to add a new class to sm1.
        !             3:    1. create a new file Kclass/newclass-name.c and change
        !             4:       Makefile
        !             5:    2. Define new tags in kclass.h and put your prototypes.
        !             6:        (Note. CMO is defined to be 1024 in stackm.h
        !             7:         So, CMO+cmotag is used for the etag for raw cmo object.
        !             8:         This should be changed near future.)
        !             9:    3. Add entry points of your functions for newclass to kclass.c
        !            10: */
        !            11: #include <stdio.h>
        !            12: #include "../datatype.h"
        !            13: #include "../stackm.h"
        !            14: #include "../extern.h"
        !            15: #include "../gradedset.h"
        !            16: #include "../extern2.h"
        !            17: #include "../kclass.h"
        !            18:
        !            19:
        !            20: /* Data conversion function : see KclassDataConversion*/
        !            21: struct object KpoSampleClass(struct object *obp) {
        !            22:   struct object rob;
        !            23:   struct object *newobp;
        !            24:   rob.tag = Sclass;
        !            25:   rob.lc.ival = CLASSNAME_sampleClass;
        !            26:   newobp = (struct object *) sGC_malloc(sizeof(struct object));
        !            27:   /* Yes! You can call KpoSampleClass(&localVar) */
        !            28:   if (newobp == NULL) errorKan1("%s\n","Kclass/sample.c, no more memory.");
        !            29:   *newobp = *obp;
        !            30:   rob.rc.voidp = newobp;
        !            31:   return(rob);
        !            32: }
        !            33: /* cf. KopSampleClass() in kclass.h */
        !            34:
        !            35: /* Printing function : see fprintClass */
        !            36: void fprintSampleClass(FILE *fp,struct object *op)
        !            37: {
        !            38:   printObject(*op,0,fp);
        !            39: }
        !            40:
        !            41: /* Comparison function : see classEqualQ */
        !            42: int eqSampleClass(struct object *ob1, struct object *ob2)
        !            43: {
        !            44:   return(KooEqualQ(*ob1,*ob2));
        !            45: }
        !            46:
        !            47: /* Addition : see Kclass_ooAdd */
        !            48:
        !            49:
        !            50:
        !            51:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>