somVaBuf_create - Example Code

C EXAMPLE

#include <somobj.h>

void f1(SOMObject obj, Environment *ev)
{
        char *msg;
        va_list start_val;
        somVaBuf vb;
        char *msg1 = "Good Morning";

        vb = (somVaBuf)somVaBuf_create(NULL, 0);
        somVaBuf_add(vb, (char *)&obj, tk_pointer);
                                            /* target for _set_msg */
        somVaBuf_add(vb, (char *)&ev, tk_pointer);
                                                  /* next argument */
        somVaBuf_add(vb, (char *)&msg1, tk_pointer);
                                                 /* final argument */
        somVaBuf_get_valist(vb, &start_val);

        /* dispatch _set_msg on object */
        SOMObject_somDispatch(
                obj,       /* target for somDispatch */
                0,         /* says ignore dispatched method result */
                somIdFromString("_set_msg"), /* the somId for _set_msg */
                start_val); /* target and args for _set_msg */

        /* dispatch _get_msg on obj:   */
        /* Get a fresh copy of the va_list    */
        somVaBuf_get_valist(vb, &start_val);
        SOMObject_somDispatch(
                obj,
                (somToken *)&msg,
                           /* address to store dispatched result */
                somIdFromString("_get_msg"),
                start_val); /* target and arguments for _get_msg */
        printf("%s\n", msg);
        somVaBuf_destroy(vb);
}

C++ EXAMPLE

#include <somobj.h>

void f1(SOMObject obj, Environment *ev)
{
        char *msg;
        va_list start_val;
        somVaBuf vb;
        char *msg1 = "Good Morning";

        vb = (somVaBuf)somVaBuf_create(NULL, 0);
        somVaBuf_add(vb, (char *)&obj, tk_pointer);
                                                /* target for _set_msg */
        somVaBuf_add(vb, (char *)&ev, tk_pointer);
                                                      /* next argument */
        somVaBuf_add(vb, (char *)&msg1, tk_pointer);
                                                     /* final argument */
        somVaBuf_get_valist(vb, &start_val);

        /* dispatch _set_msg on obj: */
        obj->SOMObject_somDispatch(
                0,         /* says ignore the dispatched method result */
                somIdFromString("_set_msg"), /* the somId for _set_msg */
                start_val);   /* the target and arguments for _set_msg */

        /* dispatch _get_msg on obj:   */
        /* Get a fresh copy of the va_list    */
        somVaBuf_get_valist(vb, &start_val);
        obj->SOMObject_somDispatch(
                (somToken *)&msg,
                           /* address to hold dispatched method result */
                somIdFromString("_get_msg"),
                start_val);   /* the target and arguments for _get_msg */
        printf("%s\n", msg);
        somVaBuf_destroy(vb);
}


[Back: somVaBuf_create - Related Information]
[Next: somVaBuf_create - Topics]