Next Previous Contents

41. SLclass_set_string_function


Set a data type's string representation callback


int SLclass_set_string_function (cl, sfun)

   SLang_Class_Type *cl
   char *(*sfun) (unsigned char, VOID_STAR);

The SLclass_set_string_function routine is used to define a callback function, sfun, that that will be used when a string representation of an object of the data type represented by cl is needed. cl must have already been obtained via a call to SLclass_allocate_class. When called, sfun will be passed two arguments: a unsigned char which represents the data type, and the address of the object for which a string represetation is required. The callback function must return a malloced string.

Upon success, SLclass_set_string_function returns zero, or upon error it returns -1.


A callback function that handles both SLANG_STRING_TYPE and SLANG_INT_TYPE variables looks like:

     char *string_and_int_callback (unsigned char type, VOID_STAR addr)
        char buf[64];

        switch (type)
             case SLANG_STRING_TYPE:
               return SLmake_string (*(char **)addr);
             case SLANG_INTEGER_TYPE:
               sprintf (buf, "%d", *(int *)addr);
               return SLmake_string (buf);
        return NULL;

The default string callback simply returns the name of the data type.

See Also

SLclass_allocate_class, SLclass_register_class

Next Previous Contents