00001
00002 #ifndef __sm_marshal_MARSHAL_H__
00003 #define __sm_marshal_MARSHAL_H__
00004
00005 #include <glib-object.h>
00006
00007 G_BEGIN_DECLS
00008
00009 #ifdef G_ENABLE_DEBUG
00010 #define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
00011 #define g_marshal_value_peek_char(v) g_value_get_char (v)
00012 #define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
00013 #define g_marshal_value_peek_int(v) g_value_get_int (v)
00014 #define g_marshal_value_peek_uint(v) g_value_get_uint (v)
00015 #define g_marshal_value_peek_long(v) g_value_get_long (v)
00016 #define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
00017 #define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
00018 #define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
00019 #define g_marshal_value_peek_enum(v) g_value_get_enum (v)
00020 #define g_marshal_value_peek_flags(v) g_value_get_flags (v)
00021 #define g_marshal_value_peek_float(v) g_value_get_float (v)
00022 #define g_marshal_value_peek_double(v) g_value_get_double (v)
00023 #define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
00024 #define g_marshal_value_peek_param(v) g_value_get_param (v)
00025 #define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
00026 #define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
00027 #define g_marshal_value_peek_object(v) g_value_get_object (v)
00028 #else
00029
00030
00031
00032
00033 #define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
00034 #define g_marshal_value_peek_char(v) (v)->data[0].v_int
00035 #define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
00036 #define g_marshal_value_peek_int(v) (v)->data[0].v_int
00037 #define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
00038 #define g_marshal_value_peek_long(v) (v)->data[0].v_long
00039 #define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
00040 #define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
00041 #define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
00042 #define g_marshal_value_peek_enum(v) (v)->data[0].v_long
00043 #define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
00044 #define g_marshal_value_peek_float(v) (v)->data[0].v_float
00045 #define g_marshal_value_peek_double(v) (v)->data[0].v_double
00046 #define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
00047 #define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
00048 #define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
00049 #define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
00050 #define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
00051 #endif
00052
00053
00054
00055 extern void sm_marshal_VOID__STRING_BOXED (GClosure *closure,
00056 GValue *return_value,
00057 guint n_param_values,
00058 const GValue *param_values,
00059 gpointer invocation_hint,
00060 gpointer marshal_data);
00061 void
00062 sm_marshal_VOID__STRING_BOXED (GClosure *closure,
00063 GValue *return_value,
00064 guint n_param_values,
00065 const GValue *param_values,
00066 gpointer invocation_hint,
00067 gpointer marshal_data)
00068 {
00069 typedef void (*GMarshalFunc_VOID__STRING_BOXED) (gpointer data1,
00070 gpointer arg_1,
00071 gpointer arg_2,
00072 gpointer data2);
00073 register GMarshalFunc_VOID__STRING_BOXED callback;
00074 register GCClosure *cc = (GCClosure*) closure;
00075 register gpointer data1, data2;
00076
00077 g_return_if_fail (n_param_values == 3);
00078
00079 if (G_CCLOSURE_SWAP_DATA (closure))
00080 {
00081 data1 = closure->data;
00082 data2 = g_value_peek_pointer (param_values + 0);
00083 }
00084 else
00085 {
00086 data1 = g_value_peek_pointer (param_values + 0);
00087 data2 = closure->data;
00088 }
00089 callback = (GMarshalFunc_VOID__STRING_BOXED) (marshal_data ? marshal_data : cc->callback);
00090
00091 callback (data1,
00092 g_marshal_value_peek_string (param_values + 1),
00093 g_marshal_value_peek_boxed (param_values + 2),
00094 data2);
00095 }
00096
00097 G_END_DECLS
00098
00099 #endif
00100