/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/utils/eh_types.h

Go to the documentation of this file.
00001 #ifndef __EH_TYPES_H__
00002 #define __EH_TYPES_H__
00003 
00004 #define API_ENTRY
00005 /*
00006 typedef struct
00007 {
00008    char *var_name;
00009 }
00010 Class_Desc;
00011 */
00012 typedef char* Class_Desc;
00013 
00014 #define _CD( type ) type##_Class_Desc
00015 #define CLASS( type ) \
00016    static Class_Desc _CD( type ) = G_STRINGIFY(type) ; typedef struct tag_##type
00017 
00018 //   static Class_Desc _CD( type ) = { #type } ; typedef struct tag_##type
00019 
00020 #define DERIVED_CLASS( base_type , type ) \
00021    static Class_Desc _CD( type ) = G_STRINGIFY(type) ; typedef struct tag##base_type type
00022 
00023 //   static Class_Desc _CD( type ) = { #type } ; typedef struct tag##base_type type
00024 
00025 #define USE_MY_VTABLE
00026 #if defined( USE_MY_VTABLE )
00027 
00028 #define NEW_OBJECT( type , obj ) \
00029    ( obj = (type)eh_malloc( sizeof(*obj),G_STRINGIFY(type),__FILE__ , __LINE__ ) )
00030 //   ( obj = (type)eh_malloc( sizeof(*obj),&_CD(type),__FILE__ , __LINE__ ) )
00031 #define FREE_OBJECT( obj ) ( *(void**)&obj = eh_free( obj ) )
00032 
00033 #else
00034 
00035 #define NEW_OBJECT( type , obj ) ( obj = g_new( type , 1 ) )
00036 #define FREE_OBJECT( obj ) ( g_free( obj ) )
00037 
00038 #endif
00039 
00040 #define new_handle( Handle ) typedef struct tag_##Handle *Handle
00041 #define derived_handle( Base_handle , Handle ) typedef struct tag_##Base_handle *Handle
00042 
00043 #endif
00044 

Generated on Fri Jan 4 18:04:16 2008 for sedflux by  doxygen 1.5.2