server 0.0.1
basicserverinfrastructure

src/interface/class.c File Reference

#include <stdarg.h>
#include <stdlib.h>
#include <assert.h>
#include "class.h"
#include "interface/class.h"
Include dependency graph for class.c:

Go to the source code of this file.

Functions

void * classNew (class_ptr class,...)
void classDelete (void **object)
void * classClone (void *_object)

Function Documentation

void* classClone ( void *  _object)

Definition at line 42 of file class.c.

{
        class_ptr class  = class_getClass(_object);
        void *    object = calloc(1, class->object_size + sizeof(void*));

        * (class_ptr *)object = class;
        object += sizeof(void*);

#undef clone
        CALL(object, Class, clone, _object);

        return object;
}

Here is the call graph for this function:

void classDelete ( void **  object)

Definition at line 33 of file class.c.

{
        CALL(*object, Class, dtor);

        free(*object - sizeof(void*));
        *object = NULL;
}
void* classNew ( class_ptr  class,
  ... 
)

Definition at line 15 of file class.c.

{
        void * object = calloc(1, class->object_size + sizeof(void*));
        va_list params;

        if (class->init)        class->init();

        * (class_ptr *)object = class;
        object += sizeof(void*);

        va_start(params, class);
        CALL(object, Class, ctor, &params);
        va_end(params);

        return object;
}
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines